1.2 Hadoop 生态
1.2.1 Hadoop 生态简介
Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。具有可靠、高效、可伸缩的特点。
Hadoop 的核心是 YARN,HDFS 和 Mapreduce
下图是 Hadoop 生态系统,集成 spark 生态圈。在未来一段时间内,Hadoop 将于 spark 共存,Hadoop 与 spark 都能部署在 yarn、mesos 的资源管理系统之上
图 1 Hadoop 生态图谱 1
图 2 Hadoop 生态图谱 2
Hadoop 在 2.0 将资源管理从 MapReduce 中独立出来变成通用框架后,就从 1.0 的三层结构演变为了现在的四层架构:
底层——存储层,文件系统 HDFS
中间层(管控层)——资源及数据管理层,YARN 以及 Sentry 等
上层(计算引擎层)——MapReduce、Impala、Spark 等计算引擎
顶层(服务层)——基于 MapReduce、Spark 等计算引擎的高级封装及工具,如 Hive、Pig、Mahout 等等。
图 3 Hadoop 2.0 的四层架构
说明:1. HBase 底层使用 HDFS 作为文件存储。
2. Kudu 是 Cloudera 在 2015 年 10 月才对外公布的新的分布式存储架构,与 HDFS 完全独立。其实现参考了 2012 年 Google 发表的 Spanner 论文。
3. 计算引擎层:Hadoop 在底层共用一份 HDFS 存储,上层有很多个组件分别服务多种应用场景,如:确定性(OLAP)、探索性(如关联)、预测性(如机器学习类)数据分析、数据处理及转化(如 ETL)和 Spark。
表格 1 Hadoop 生态的数据工具列表
功能 | 工具列表 |
---|---|
数据抓取系统 | Nutch |
分布式文件系统 | HDFS |
非结构化数据(日志)收集处理 | fuse, webdav, chukwa, flume, Scribe |
数据导入到 HDFS | Hiho, sqoop |
SQL 操作数据 | Pig, Hive, Jaql |
让你的数据可见 | drilldown, Intellicus |
用高级语言管理你的任务流 | oozie, Cascading |
监控管理工具 | Hue, karmasphere, eclipseplugin, cacti, ganglia |
数据序列化处理与任务调度 | Avro, Zookeeper |
更多构建在 Hadoop 上层的服务 | Mahout, ElasticmapReduce |
OLTP 存储系统 | HBase |
表格 2 开源云计算系统和对应的商用系统简介
开源云计算系统 | 对应的商用 云计算系统 | 简介 |
---|---|---|
Hadoop HDFS~2004 | Google GFS (200310) | 分布式文件系统 |
Hadoop MapReduce~2005 | Google MapReduce (200412) | 基于 YARN 的分布式数据处理模型和执行环境。MAP-REDUCE 映射-规约。 |
Hadoop HBase ~2006 | Google Bigtable (200612) | 分布式、按列存储数据库。2010 年成为 ATP。 |
Hadoop Pig ~2008 | Yahoo 开源,一个高级数据流语言和执行并行计算的框架。2010 年成为 ATP。 | |
Hadoop Hive ~2008 | Facebook 开源,分布式、按列存储的数据仓库。2010 年成为 ATP。 | |
Mahou ~2008 | 一个可拓展的机器学习和数据挖掘库。 | |
Hadoop Avro ~2009 | A data serialization system. 一个序列化数据系统。2010 年成为 ATP。 | |
Chukwa ~2009 | 一个用于管理大型分布式系统的数据采集系统。 | |
Hadoop ZooKeeper ~2010 | Google Chubby (200611) | 分布式、可用性高的协调服务。2011 年成为 ATP。 |
Apache Spark ~2010 | 一个快速,通用的 Hadoop 数据运算引擎。Spark 提供一个简单并且富有表现力的编程模型以支持各式各样的应用,包括 ETL(数据仓库技术),机器学习,数据流处理和图形运算。 | |
Apache Storm~2011 | ||
Hadoop YARN~2012 | YARN 是下一代 MapReduce,即 MR V2。 A framework for job scheduling and cluster resource management. | |
Apache Drill ~2012 | Google's Dremel | 加快 Hadoop 数据查询,帮助支持广泛的数据源、数据格式和查询语言。 |
Apache Flink~2014 | 2008 年是柏林理工大学一个研究性项目。 | |
Ambari | 一款用于配置、管理和监控 Apache Adoop 集群的工具。2022 年初宣布从 Apache 隐退。 | |
Cassandra | A scalable multi-master database with no single points of failure. | |
Sqoop | SQL-to-Hadoop 的简称。主要用于传统数据库与 HADOOP 之间传输数据。 | |
openstack | Amazon S3 Amazon EC2 | 由 NASA( 美国国家航空航天局 )和 Rackspace 合作研发 并 发起的云操作系统。 OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface. |
Eucalyptus | ||
Sector and Sphere | ||
abiquo | ||
MongoDB | 文档数据库 | |
EnomalyECP、 Nimbus、 | ||
Flume | Cloudera 开源,日志收集工具。 |
备注:1. Hadoop 成为一组相关项目的统称。Hadoop 表示已经从 Hadoop 项目脱离。2010 年,Hive/Pig/Azo/Hbase 脱离 Hadoop,成为 Apache 顶级项目 ATP。
计算框架
详见 《 大数据计算框架 》 MapReduce、Spark、Flink、Storm
集群管理
详见 《 大数据集群管理 》 ZooKeeper、YARN、Mesos
1.2.2 Hadoop 生态的编年史
表格 3 Hadoop 生态的编年史
年份 | 事件 |
---|---|
2002 | 10 月,Doug Cutting 和 Mike Cafarella 创建了开源网页爬虫项目 Nutch。 |
2003 | 10 月,Google 发表 Google File System 论文。 |
2004 | 7 月,Doug Cutting 和 Mike Cafarella 在 Nutch 中实现了类似 GFS 的功能,即后来 HDFS 的前身。10 月,Google 发表了 MapReduce 论文。 |
2005 | 2 月,Mike Cafarella 在 Nutch 中实现了 MapReduce 的最初版本。12 月,开源搜索项目 Nutch 移植到新框架,使用 MapReduce 和 NDFS(Nutch Distributed File System ) 来运行,在 20 个节点稳定运行。 |
2006 | 2 月,Hadoop 项目正式启动。 3 月,Yahoo!建设了第一个 Hadoop 集群用于开发。 4 月,第一个 Apache Hadoop 发布。 11 月,HBase 诞生。 |
2007 | 百度开始使用 Hadoop 做离线处理。中国移动开始在“大云”研究中使用 Hadoop 技术。 |
2008 | 淘宝开始投入研究基于 Hadoop 的系统——云梯,并将其用于处理电子商务相关数据。 1 月,Hadoop 成为 Apache 顶级项目。 6 月,Hadoop 的第一个 SQL 框架——Hive 成为了 Hadoop 的子项目。 11 月,Apache Pig 的最初版本发布。 Mahou 诞生,原是 Apache Luent 的子项目。 |
2009 | 7 月 ,Hadoop Core 项目更名为 Hadoop Common; MapReduce 和 Hadoop Distributed File System (HDFS) 成为 Hadoop 项目的独立子项目。Avro 和 Chukwa 成为 Hadoop 新的子项目。 8 月,Hadoop 创始人 Doug Cutting 加入 Cloudera 担任首席架构师。 10 月,首届 Hadoop World 大会在纽约召开。 |
2010 | 5 月,Avro、HBase 脱离 Hadoop 项目,成为 Apache 顶级项目。 9 月,Hive( Facebook)、Pig 脱离 Hadoop,成为 Apache 顶级项目。 Spark 开源。 |
2011 | 1 月,ZooKeeper 脱离 Hadoop,成为 Apache 顶级项目。 3 月,Apache Hadoop 获得 Media Guardian Innovation Awards。 5 月,Mapr Technologies 公司推出分布式文件系统和 MapReduce 引擎——MapR Distribution for Apache Hadoop。 |
2012 | 3 月,企业必须的重要功能 HDFS NameNode HA 被加入 Hadoop 主版本。 8 月,另外一个重要的企业适用功能 YARN 成为 Hadoop 子项目。 10 月,第一个 Hadoop 原生 MPP 查询引擎 Impala 加入到了 Hadoop 生态圈。 |
2013 | |
2014 | 2 月,Spark(2009 年由加州大学伯克利分校的 AMPLab 开发,2010 年成为 Apache 的开源项目)逐渐代替 MapReduce 成为 Hadoop 的缺省执行引擎,并成为 Apache 基金会顶级项目。 |
2015 | 1 月,Facebook 开源前沿深度学习工具“Torch”。 2 月,Hortonworks 和 Pivotal 抱团提出“Open Data Platform”的倡议,受到传统企业如 Microsoft、IBM 等企业支持,但其它两大 Hadoop 厂商 Cloudera 和 MapR 拒绝参与。 4 月,亚马逊启动其机器学习平台 Amazon Machine Learning,这是一项全面的托管服务,让开发者能够轻松使用历史数据开发并部署预测模型。 10 月,Cloudera 公布继 HBase 以后的第一个 Hadoop 原生存储替代方案——Kudu。 11 月,谷歌开源其机器学习平台 TensorFlow。IBM 开源 SystemML 并成为 Apache 官方孵化项目。微软亚洲研究院通过 Github 开源分布式机器学习工具 DMTK。 12 月,Cloudera 发起的 Impala 和 Kudu 项目加入 Apache 孵化器。Facebook 开源针对神经网络研究的服务器“Big Sur”,配有高性能图形处理单元(GPUs),转为深度学习方向设计的芯片。 |
2016 | |
2017 |
备注:截止 2017.10,Apache 顶级项目有 300 多个。
2006 年 1 月,Doug Cutting 加入雅虎,Yahoo!提供一个专门的团队和资源将 Hadoop 发展成一个可在网络上运行的系统。
2006 年 2 月,Apache Hadoop 项目正式启动以支持 MapReduce 和 HDFS 的独立发展。
2006 年 2 月,Yahoo!的网格计算团队采用 Hadoop。
2006 年 3 月,Yahoo!建设了第一个 Hadoop 集群用于开发。
2006 年 4 月,第一个 Apache Hadoop 发布。
2006 年 4 月,在 188 个节点上(每个节点 10GB) 运行排序测试集需要 47.9 个小时。
2006 年 5 月,Yahoo!建立了一个 300 个节点的 Hadoop 研究集群。
2006 年 5 月,在 500 个节点上运行排序测试集需要 42 个小时(硬件配置比 4 月的更好)。
2006 年 11 月,研究集群增加到 600 个节点。
2006 年 11 月,Google 发表了 Bigtable 论文,这最终激发了 HBase 的创建。
2006 年 12 月,排序测试集在 20 个节点上运行 1.8 个小时,100 个节点上运行 3.3 小时,500 个节点上运行 5.2 小时,900 个节点上运行 7.8 个小时。
2007 年 1 月,研究集群增加到 900 个节点。
2007 年 4 月,研究集群增加到两个 1000 个节点的集群。
2007 年 10 月,第一个 Hadoop 用户组会议召开,社区贡献开始急剧上升。
2007 年,百度开始使用 Hadoop 做离线处理。
2007 年,中国移动开始在“大云”研究中使用 Hadoop 技术。
2008 年,淘宝开始投入研究基于 Hadoop 的系统——云梯,并将其用于处理电子商务相关数据。
2008 年 1 月,Hadoop 成为 Apache 顶级项目。
2008 年 2 月,Yahoo!运行了世界上最大的 Hadoop 应用,宣布其搜索引擎产品部署在一个拥有 1 万个内核的 Hadoop 集群上。
2008 年 4 月,在 900 个节点上运行 1TB 排序测试集仅需 209 秒,成为世界最快。
2008 年 6 月,Hadoop 的第一个 SQL 框架——Hive 成为了 Hadoop 的子项目。
2008 年 7 月,Hadoop 打破 1TB 数据排序基准测试记录。Yahoo!的一个 Hadoop 集群用 209 秒完成 1TB 数据的排序 ,比上一年的纪录保持者保持的 297 秒快了将近 90 秒。
2008 年 8 月,第一个 Hadoop 商业化公司 Cloudera 成立。
2008 年 10 月,研究集群每天装载 10TB 的数据。
2008 年 11 月,Apache Pig 的最初版本发布。
2009 年 3 月,17 个集群总共 24000 台机器。36 大数据( http://www.36dsj.com/ )
2009 年 3 月,Cloudera 推出世界上首个 Hadoop 发行版——CDH(Cloudera’s Distribution including Apache Hadoop) 平台,完全由开放源码软件组成。
2009 年 4 月,赢得每分钟排序,59 秒内排序 500GB(在 1400 个节点上) 和 173 分钟内排序 100TB 数据(在 3400 个节点上)。
2009 年 5 月,Yahoo 的团队使用 Hadoop 对 1 TB 的数据进行排序只花了 62 秒时间。
2009 年 6 月,Cloudera 的工程师 Tom White 编写的《Hadoop 权威指南》初版出版,后被誉为 Hadoop 圣经。
2009 年 7 月 ,Hadoop Core 项目更名为 Hadoop Common;
2009 年 7 月 ,MapReduce 和 Hadoop Distributed File System (HDFS) 成为 Hadoop 项目的独立子项目。
2009 年 7 月 ,Avro 和 Chukwa 成为 Hadoop 新的子项目。
2009 年 8 月,Hadoop 创始人 Doug Cutting 加入 Cloudera 担任首席架构师。
2009 年 10 月,首届 Hadoop World 大会在纽约召开。
2010 年 5 月 ,Avro 脱离 Hadoop 项目,成为 Apache 顶级项目。
2010 年 5 月 ,HBase 脱离 Hadoop 项目,成为 Apache 顶级项目。
2010 年 5 月,IBM 提供了基于 Hadoop 的大数据分析软件——InfoSphere BigInsights,包括基础版和企业版。
2010 年 9 月,Hive( Facebook) 脱离 Hadoop,成为 Apache 顶级项目。
2010 年 9 月,Pig 脱离 Hadoop,成为 Apache 顶级项目。
2010 年-2011 年,扩大的 Hadoop 社区忙于建立大量的新组件(Crunch,Sqoop,Flume,Oozie 等) 来扩展 Hadoop 的使用场景和可用性。
2011 年 1 月,ZooKeeper 脱离 Hadoop,成为 Apache 顶级项目。
2011 年 3 月,Apache Hadoop 获得 Media Guardian Innovation Awards 。
2011 年 3 月, Platform Computing 宣布在它的 Symphony 软件中支持 Hadoop MapReduce API。
2011 年 5 月,Mapr Technologies 公司推出分布式文件系统和 MapReduce 引擎——MapR Distribution for Apache Hadoop。
2011 年 5 月,HCatalog 1.0 发布。该项目由 Hortonworks 在 2010 年 3 月份提出,HCatalog 主要用于解决数据存储、元数据的问题,主要解决 HDFS 的瓶颈,它提供了一个地方来存储数据的状态信息,这使得 数据清理和归档工具可以很容易的进行处理。
2011 年 4 月,SGI(Silicon Graphics International) 基于 SGI Rackable 和 CloudRack 服务器产品线提供 Hadoop 优化的解决方案。
2011 年 5 月,EMC 为客户推出一种新的基于开源 Hadoop 解决方案的数据中心设备——GreenPlum HD,以助其满足客户日益增长的数据分析需求并加快利用开源数据分析软件。Greenplum 是 EMC 在 2010 年 7 月收购的一家开源数据仓库公司。
2011 年 5 月,在收购了 Engenio 之后, NetApp 推出与 Hadoop 应用结合的产品 E5400 存储系统。
2011 年 6 月,Calxeda 公司发起了“开拓者行动”,一个由 10 家软件公司组成的团队将为基于 Calxeda 即将推出的 ARM 系统上芯片设计的服务器提供支持。并为 Hadoop 提供低功耗服务器技术。
2011 年 6 月,数据集成供应商 Informatica 发布了其旗舰产品,产品设计初衷是处理当今事务和社会媒体所产生的海量数据,同时支持 Hadoop。
2011 年 7 月,Yahoo!和硅谷风险投资公司 Benchmark Capital 创建了 Hortonworks 公司,旨在让 Hadoop 更加可靠,并让企业用户更容易安装、管理和使用 Hadoop。
2011 年 8 月,Cloudera 公布了一项有益于合作伙伴生态系统的计划——创建一个生态系统,以便硬件供应商、软件供应商以及系统集成商可以一起探索如何使用 Hadoop 更好的洞察数据。
2011 年 8 月,Dell 与 Cloudera 联合推出 Hadoop 解决方案——Cloudera Enterprise。Cloudera Enterprise 基于 Dell PowerEdge C2100 机架服务器以及 Dell PowerConnect 6248 以太网交换机。
2012 年 3 月,企业必须的重要功能 HDFS NameNode HA 被加入 Hadoop 主版本。
2012 年 8 月,另外一个重要的企业适用功能 YARN 成为 Hadoop 子项目。
2012 年 10 月,第一个 Hadoop 原生 MPP 查询引擎 Impala 加入到了 Hadoop 生态圈。
2014 年 2 月,Spark 逐渐代替 MapReduce 成为 Hadoop 的缺省执行引擎,并成为 Apache 基金会顶级项目。
2015 年 2 月,Hortonworks 和 Pivotal 抱团提出“Open Data Platform”的倡议,受到传统企业如 Microsoft、IBM 等企业支持,但其它两大 Hadoop 厂商 Cloudera 和 MapR 拒绝参与。
2015 年 10 月,Cloudera 公布继 HBase 以后的第一个 Hadoop 原生存储替代方案——Kudu。
2015 年 12 月,Cloudera 发起的 Impala 和 Kudu 项目加入 Apache 孵化器。
1.2.3 Hadoop 主流厂商
就对 Hadoop 定位和使用不同,可以将 Hadoop 业界公司划分为四类:
第一梯队:这类公司已经将 Hadoop 当作大数据战略武器。
第二梯队:这类公司将 Hadoop 产品化。
第三梯队:这类公司创造对 Hadoop 整体生态系统产生附加价值的产品。
第四梯队:这类公司消费 Hadoop,并给规模比第一类和第二类小的公司提供基于 Hadoop 的服务。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论