Hadoop生态系统


摘要:介绍Hadoop生态系统,从Hadoop生态系统有什么成员,成员能做什么和Hadoop生态系统能够提供大数据问题解决方案两方面来认识。

关键词:Hadoop  HDFS  MapReduce   HBase  Hive  Pig

Hadoop生态图,通俗地说,就是Hadoop核心模块和衍生的子项目。

一幅Hadoop生态图,让我想到了两个问题。

问题一:Hadoop生态系统包括哪些成员?每个成员各自扮演什么样的角色?

问题二:从系统论的角度来观察,Hadoop生态系统为我们破解大数据问题可以提供哪些解决方案?

我们先来看问题一。

由图可知 (1)各种浏览器,产生海量的Web数据;(2)Nutch项目,一个快速搜索海量网页的开源项目(3)HDFS,Hadoop分布式文件系统,大数据的存储系统;(4)数据分析和可视化工具;(5)MapReduce,大数据处理系统;(6)非结构化数据采集和处理工具;(7)结构化数据与HDFS之间的交互工具;(8)多样化的MapReduce程序控制工具;(9)数据可视化工具;(10)工作流管理工具;(11)Hadoop生态系统的监管工具;(12)数据序列化处理与任务调度工具;(13)高专业度的Hadoop上层服务工具;(14)在线事务处理存储系统HBase。整个Hadoop生态系统涉及到了大数据收集、大数据存储、大数据处理、大数据分析和大数据应用,从而真正达到寻找和应用大数据价值的目的。(3)和(5)是Hadoop的核心模块,破解了大数据存储和处理的难题。

俗话说,“大道至简”,为了全方位地应用Hadoop形成解决大数据问题的方案,Hadoop周边的子项目或工具,让Hadoop如虎添翼。在此,选取几个细说如下。

1)Pig(http://pig.apache.org/):它是Hadoop的一个扩展,简化了Hadoop的编程,提供了一个高级数据处理语言Pig Latin,并且保持了Hadoop易于扩展与可靠的特征。

2)Hive(http://hive.apache.org/):它是一种类SQL数据仓库基础设施,建立在Hadoop基础上的数据仓库软件包。数据分析师们可以使用一种HiveQL的类SQL语言,发起一个查询实现与Hive的交互。

3)HBase(http://hbase.apache.org/):它是一个可扩展的、分布式的、大数据存储系统。它的设计源自谷歌的Bigtable,旨在支持大表,即包含数十亿级别的行和数百万级别的列。

4)ZooKeeper(http://zookeeper.apache.org/):它是用于构建大型分布式应用的一种协作式服务。它实现了许多在大型分布式应用中常见的服务,如配置管理、命名、同步和组服务。

5)Sqoop(http://sqoop.apache.org/):它是用在关系数据库和Hadoop之间传递数据。简而言之,通过Sqoop,一方面可以把关系数据库中数据导入到HDFS;另一方面也可以把HDFS中的数据导入到关系数据库里。

6)Mahout(http://mahout.apache.org/):它是针对Hadoop实现机器学习算法,包含朴素贝叶斯分类、k-means聚类和协同过滤等算法。

通过对问题一的求解,我们对Hadoop生态图有了整体观,尤其是里面有哪些成员,每个成员能够做什么有了认识。

不管是我们人,还是各种各样的工具,都应该具有解决问题的能力。当如此,才能感受到存在的价值与意义。

Hadoop生态系统的核心模块和衍生项目,实际上都是为解决好大数据问题而诞生、发展和壮大的。比方说,Yahoo是Hadoop的一个重量级用户,它是Hadoop Core和Pig的后台支持者,它有40%的Hadoop作业是使用Pig运行的;Twitter也是Pig的有名用户;Facebook使用Hive处理大量用户数据和日志数据等等。由此启发,面对大数据的问题,不管是管理者,还是开发者,可以考虑Hadoop生态系统来构建解决方案,并且在解决大数据问题的同时,进一步完善Hadoop生态系统

Sourse:

1 http://www.networkworld.com/slideshow/124977/sizing-up-the-hadoop-ecosystem.html#slide1

2 http://developer.51cto.com/art/201311/415639_all.htm

3 http://dongxicheng.org/mapreduce-nextgen/rethinking-hadoop-from-problems-solved/

4 http://blog.nosqlfan.com/html/3675.html


相关内容