hadoop 家族生态圈 小结
上周跟夫君讨论hive部分功能时候,许诺他给他整理一份hadoop 家族的图谱。 铛铛铛铛~~对于大数据,我还是新人。希望 多多指教。
*☼*―――――*☼*―――――*☼*―――――*☼*―――――*☼*―――分隔符――*☼*―――――*☼*―――――*☼*―――――*☼*
第一个图,是学习大数据,应该掌握的一些知识。第二张图,是hadoop家族都有哪些成员。
*☼*―――――*☼*―――――*☼*―――――*☼*―――――*☼*――分割线―――*☼*―――――*☼*―――――*☼*―――――*☼*
上图为简易的hadoop 家族关系图
Hadoop Common:
Hadoop体系最底层的一个模块,为Hadoop各子项目提供各 种工具,如:配置文件和日志操作等。
HDFS:
是Hadoop应用程序中主要的分布式储存系统, HDFS集群包含了一个NameNode(主节点),这个节点负责管理所有文件系统的元数据及存储了真实数据的DataNode(数据节点,可以有很多)。HDFS针对海量数据所设计,所以相比传统文件系统在大批量小文件上的优化,HDFS优化的则是对小批量大型文件的访问和存储。
MapReduce:
是一个软件框架,用以轻松编写处理海量(TB级)数据的并行应用程序,以可靠和容错的方式连接大型集群中上万个节点(商用硬件)。
YARN:
运算资源调度系统。不同用户的不同业务程度运行调度,调配硬件资源。尽可能的服务更多的程序。各节点分为resource manager和node manager角色。YARN 也是个集群。
Hive:
Apache Hive是Hadoop的一个数据仓库系统,促进了数据的综述(将结构化的数据文件映射为一张数据库表)、即席查询以及存储在Hadoop兼容系统中的大型数据集分析。Hive提供完整的SQL查询功能——HiveQL语言,同时当使用这个语言表达一个逻辑变得低效和繁琐时,HiveQL还允许传统的Map/Reduce程序员使用自己定制的Mapper和Reducer。hive类似CloudBase,基于hadoop分布式计算平台上的提供data warehouse的sql功能的一套软件。使得存储在hadoop里面的海量数据 的汇总,即席查询简单化。
Pig:
Apache Pig是一个用于大型数据集分析的平台,它包含了一个用于数据分析应用的高级语言以及评估这些应用的基础设施。Pig应用的闪光特性在于它们的结构经得起大量的并行,也就是说让它们支撑起非常大的数据集。Pig的基础设施层包含了产生Map-Reduce任务的编译器。Pig的语言层当前包含了一个原生语言——Pig Latin,开发的初衷是易于编程和保证可扩展性。
Pig是SQL-like语言,是在MapReduce上构建的一种高级查询语言,把一些运算编译进MapReduce模型的Map和Reduce中,并且用户可以定义自己的功能。Yahoo网格运算部门开发的又一个克隆Google的项目Sawzall。
HBase:
Apache HBase是Hadoop数据库,一个分布式、可扩展的大数据存储。它提供了大数据集上随机和实时的读/写访问,并针对了商用服务器集群上的大型表格做出优化——上百亿行,上千万列。其核心是Google Bigtable论文的开源实现,分布式列式存储。就像Bigtable利用GFS(Google File System)提供的分布式数据存储一样,它是Apache Hadoop在HDFS基础上提供的一个类Bigatable。
ZooKeeper:
Zookeeper是Google的Chubby一个开源的实现。它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、 分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
Sqoop:
Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库中数据导入Hadoop的HDFS中,也可以将HDFS中数据导入关系型数据库中。
Ambari:
Apache Ambari是一个基于web的工具,用于配置、管理和监视Apache Hadoop集群,支持Hadoop HDFS,、Hadoop MapReduce、Hive、HCatalog,、HBase、ZooKeeper、Oozie、Pig和Sqoop。Ambari同样还提供了集群状况仪表盘,比如heatmaps和查看MapReduce、Pig、Hive应用程序的能力,以友好的用户界面对它们的性能特性进行诊断。
Impala:
Impala是处理海量数据的高性能SQL引擎,它的查询可以达到秒及,甚至毫秒级,延迟很低,比Hive、Pig或MapReduce快10到50倍,它的SQL 也是类似于HiveQL的查询语言,他和标准的SQL也是有百分之八十的语法重复,也有自己的扩展一部分。
*☼*―――――*☼*―――――*☼*―――――*☼*―――――*☼*――分割线―――*☼*―――――*☼*―――――*☼*―――――*☼*
注意:
*☼*―――――*☼*―――――*☼*―――――*☼*―――――*☼*――分割线―――*☼*―――――*☼*―――――*☼*―――――*☼*