自从2013年下半年开始,hadoop的版本开始了快速的更新换代,这和通信和互联网行业(ICT)的发展是密切相关的。随着移动网络的和宽带网络的覆盖以及数据传输速率的提升,线上的数据有了爆炸式的增长。这种趋势特别体现在大型的电商平台如淘宝、京东、亚马逊,海量数据的存储和处理问题成为了热门话题,在这种形势下分布式的、云化的解决方案应运而生,hadoop作为大型分布式存储和处理的开源框架自然成为了行业里的热点。以下是hadoop的官方简介。
Apache Hadoop软件库是一个框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集。它旨在从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和存储。库本身不是依靠硬件来提供高可用性,而是设计用于检测和处理应用程序层的故障,从而在计算机集群之上提供高可用性服务,每个计算机都可能容易出现故障。
该项目包括以下模块:
- Hadoop Common:支持其他Hadoop模块的常用实用程序。
- Hadoop分布式文件系统(HDFS™):一种分布式文件系统,可提供对应用程序数据的高吞吐量访问。
- Hadoop YARN:作业调度和集群资源管理的框架。
- Hadoop MapReduce:基于YARN的系统,用于并行处理大型数据集。
Apache的其他Hadoop相关项目包括:
- Ambari™:基于Web的工具,用于配置,管理和监控Apache Hadoop集群,包括对Hadoop HDFS,Hadoop MapReduce,Hive,HCatalog,HBase,ZooKeeper,Oozie,Pig和Sqoop的支持。Ambari还提供了一个用于查看群集运行状况的仪表板,例如热图,以及可视化查看MapReduce,Pig和Hive应用程序的功能,以及以用户友好的方式诊断其性能特征的功能。
- Avro™:数据序列化系统。
- Cassandra™:可扩展的多主数据库,没有单点故障。
- Chukwa™:用于管理大型分布式系统的数据收集系统。
- HBase™:可扩展的分布式数据库,支持大型表的结构化数据存储。
- Hive™:一种数据仓库基础架构,提供数据汇总和即席查询。
- Mahout™:可扩展的机器学习和数据挖掘库。
- Pig™:用于并行计算的高级数据流语言和执行框架。
- Spark™:用于Hadoop数据的快速通用计算引擎。Spark提供了一种简单而富有表现力的编程模型,支持广泛的应用程序,包括ETL,机器学习,流处理和图形计算。
- Tez™:基于Hadoop YARN构建的通用数据流编程框架,它提供了一个功能强大且灵活的引擎,可以执行任意DAG任务来处理批量和交互式用例的数据。Tez正在被Hadoop生态系统中的Hive™,Pig™和其他框架以及其他商业软件(例如ETL工具)采用,以取代Hadoop™MapReduce作为底层执行引擎。
- ZooKeeper™:用于分布式应用程序的高性能协调服务。
顺应时代的发展,为了跟上技术更新的节奏,许多数据分析和处理的中小型企业也想搭建一个hadoop生态圈,将其作为今后数据存储和处理的平台的发展方向,因此需要先构建一个实验测试环境,以便今后做系统转移和处理业务的衔接类的工作。这一类企业的集群节点不需要太多,从几台到十几台的样子。在当下行业里hadoop的应用已经成熟,hadoop有非常多的版本,就拿我的大学时代到现在来讲,短短两年学习的hadoop的版本和现在的相比已经有了比较多的改动,到企业中部署需要更加清晰的认识和学习新的技术。在这种情况下,如何去选择hadoop和搭建集群?
通过在互联网上广泛的阅读,我发现了一篇较为清晰的hadoop版本介绍,不过是只更新到2016年底的,后来发现其实不嫌麻烦也可以到hadoop官网上进行详细的了解,hadoop的官网上有每个版本更新的详细信息。
https://www.cnblogs.com/bigdataman/p/6116298.html 北漂程序猿的2.7及以前版本的介绍和推荐,他推荐的是2.6.x版本
而现在已经出来2.8.x、2.9.x和3.x版本,每个版本都新增了功能,但是我不确定是否能用的上,所以在新型和稳定上需要做出考虑。在这里可以大概了解到更新的信息,具体的可参考http://hadoop.apache.org/
2018年8月8日:3.1.1版本可用
这是Apache Hadoop 3.1系列的第一个稳定版本。它包含自3.1.0以来的435个错误修复,改进和增强功能
建议用户阅读自3.1.0以来的主要变化概述。有关自上一个3.1.0版本以来的435个错误修复,改进和其他增强功能的详细信息,请查看发行说明和更新日志,详细说明自3.1.0以来的更改。 2018年5月31日:2.7.7版本可用
这是Apache Hadoop 2.7的维护版本。它涉及CVE-2018-8009。 2018年5月31日:3.0.3版本可用
这是Apache Hadoop 3.0系列的下一个版本。它包含自3.0.2以来的249个错误修复,改进和其他增强功能。
鼓励用户阅读自3.0.2以来的主要变化概述。对于自上次3.0.2版本的249 bug修复,改进和其它增强功能的详细信息,请查看 发布说明安迪 的changelog细节,因为3.0.2的变化。 2018年5月15日:2.8.4版本可用
这是Apache Hadoop 2.8系列的下一个版本。它包含自2.8.3以来的77个错误修复,改进和增强功能。
建议用户阅读Apache Hadoop 2.8的主要功能和改进的主要更改概述。有关自2.8.3版本以来的77个修复,改进和其他增强功能的详细信息,请查看 发行说明和 更改日志。 2018年5月3日:版本2.9.1可用
这是Apache Hadoop 2.9系列的下一个版本。它包含自2.9.0以来的208个错误修复,改进和增强功能。
建议用户阅读Apache Hadoop 2.9的主要功能和改进的主要更改概述。有关自2.9.0发行版以来的208个修复,改进和其他增强功能的详细信息,请查看 发行说明和 更改日志。 2018年4月16日:2.7.6版本可用
这是Apache Hadoop 2.7系列的下一个版本。
有关自上一版本2.7.5以来的46个错误修复和优化的完整列表,请参阅 Hadoop 2.7.6发行说明。它特别使POSIX组支持LDAP组映射服务。 2018年4月6日:3.1.0版本可用
这是Apache Hadoop 3.1系列的第一个版本。它包含自3.0.0以来的768个错误修复,改进和增强功能
建议用户阅读自3.0.0以来的主要更改概述。有关自上一个3.0.0版本以来的768个错误修复,改进和其他增强功能的详细信息,请查看发行说明和更新日志详细说明自3.0.0以来的更改。 2018年3月25日:3.0.1版本可用
这是Apache Hadoop 3.0系列的下一个版本。它包含自3.0.0以来的49个错误修复,改进和增强功能。
请注意:3.0.0之后不推荐使用3.0.0,因为HDFS-12990将NameNode默认RPC端口更改回8020。
建议用户阅读自3.0.0以来的主要更改概述。有关自上一个3.0.0版本以来的49个错误修复,改进和其他增强功能的详细信息,请查看发行说明和更新日志详细说明自3.0.0以来的更改。 2017年12月13日:一般可用3.0.0版
在四个alpha版本和一个beta版本之后,通常可以使用3.0.0。3.0.0包含自3.0.0-beta1以来的302个错误修复,改进和其他增强功能。总共有6242个问题作为自2.7.0以来的3.0.0版本系列的一部分得到修复。
建议用户阅读3.0.0 中主要更改的概述。GA 发布说明和更新日志详细说明了自3.0.0-beta1以来的更改。 2017年12月12日:发布2.8.3版
这是Apache Hadoop 2.8发布系列的下一个版本。它包含自2.8.2以来的79个错误修复,改进和其他增强功能。有关Apache Hadoop 2.8的主要功能和改进,请参阅: 主要更改概述。有关自上一个2.8.2版本以来的79个修复,改进和其他增强功能的详细信息,请检查: 发行说明和 更改日志 2017年11月17日:发布2.9.0版
这是2.9版本系列中的第一个GA版本。它包括30个新功能,500个子任务,407个改进,790个Bug修复自2.8.2以来的新修复问题。有关Apache Hadoop 2.8.2的主要功能和改进,请参阅: 主要更改概述。有关自上一个2.8.2版本以来的790个错误修复,改进和其他增强功能的详细信息,请检查: 发行说明和 更改日志
请注意:尽管此版本已经在相当大的集群上进行了测试,但生产用户可以等待后续的点发布,其中包含进一步稳定和下游采用的修复。 2017年10月24日:发布2.8.2
这是2.8版本系列中的第一个GA版本。它包含自从2.8.1以来的315个错误修复,改进和其他增强功能。有关Apache Hadoop 2.8的主要功能和改进,请参阅: 主要更改概述。有关自上一个2.8.1版本以来的315修复,改进和其他增强功能的详细信息,请检查:发行说明和 更改日志 2017年3月22日:2.8.0版本可用
Apache Hadoop 2.8.0包含许多重要功能和增强功能。有关主要功能和改进,请参阅: 2.8.0 中主要更改的概述。有关自上一个2.7.0版本以来的2917修复,改进和新功能的详细信息,请检查: 发行说明和 更改日志
请注意,此版本尚未准备好用于生产。通过测试和下游采用来解决关键问题。生产用户应该等待2.8.1 / 2.8.2版本。 2016年10月8日:2.6.5版本可用
2.6线的点数发布。
有关79个关键错误修复的列表以及自上一版本2.6.4以来, 请参阅 Hadoop 2.6.5发行说明。
2016年1月25日:2.7.2版(稳定版)可用
2.7线的点数发布。
有关自上一版本2.7.1以来的155个错误修复和补丁的列表,请参阅 Hadoop 2.7.2发行说明。
在经过了解,除了Hadoop的原生版本之外,还有许多其他版本的。这里有为清晰的介绍。
目前而言,不收费的Hadoop版本主要有三个(均是国外厂商),
分别是:Apache(最原始的版本,所有发行版均基于这个版本进行改进)、Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称CDH)、Hortonworks版本(Hortonworks Data Platform,简称“HDP”),
对于国内而言,绝大多数选择CDH版本,CDH和Apache版本主要区别如下:
(1)CDH对Hadoop版本的划分非常清晰,只有两个系列的版本,分别是cdh3和cdh4,分别对应第一代Hadoop(Hadoop 1.0)和第二代Hadoop(Hadoop 2.0),相比而言,Apache版本则混乱得多;比Apache hadoop在兼容性,安全性,稳定性上有增强。
(2)CDH3版本是基于Apache hadoop 0.20.2改进的,并融入了的patch,CDH4版本是基于Apache hadoop 2.X改进的,CDH总是并应用了Bug修复或者Feature的Patch,并比Apache hadoop同功能版本提早发布,更新速度比Apache官方快。
(3)安全 CDH支持Kerberos安全认证,apache hadoop则使用简陋的用户名匹配认证
(4)CDH文档清晰,很多采用Apache版本的用户都会阅读CDH提供的文档,包括安装文档、升级文档等。
(5)CDH支持Yum/Apt包,Tar包,RPM包,Cloudera Manager四种方式安装,Apache hadoop只支持Tar包安装。
另外说明一下,CDH分为商业版和免费版,商业版另外提供了滚动升级的功能。还有一个完全开源免费的hadoop集群管理框架是Ambari,这里有Ambari功能的详细介绍。https://blog.csdn.net/u012331758/article/details/78106714 , Ambari集群搭建手册在这里https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/
以及在中国开源社区中,出现了商业化的DK免费版本和商用版本,说在性能和部署上都相对便捷,DKHadoop具体可了解的http://www.dksou.com/a/product/pro-11.html。
在hadoop的选择问题上,经过和他人的探讨以及中和在官网、博客、贴吧的意见,我认为推荐使用的原生版本有2.6.x、2.7.x和2.8.x的稳定版,集群管理有Ambari和CDH。在选用原生版本的时候需要考虑各个组件的版本是否匹配,而使用CDH和Ambari在集群部署上应该更为可靠和便捷,可以少走一些弯路。