Hadoop是什么

                                                                  

                                                                 What Is Apache Hadoop?

The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

起源:

1. HADOOP最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。

2. 2003年、2004年谷歌发表的两篇论文为该问题提供了可行的解决方案

——分布式文件系统(GFS),可用于处理海量网页的存储

——分布式计算框架MAPREDUCE,可用于处理海量网页的索引计算问题。

3. Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,到2008年1月,HADOOP成为Apache顶级项目,迎来了它的快速发展期。

为了解决以下问题:

海量数据的存储(HDFS)

海量数据的分析(MapReduce)

资源管理调度(YARN)

hadoop的核心组件:

HDFS: Hadoop Distributed File System 分布式文件系统

YARN: Yet Another Resource Negotiator  资源管理调度系统

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算

MAPREDUCE:分布式运算程序开发框架

HIVE:基于大数据技术(文件系统+运算框架)的SQL数据仓库工具

HBASE:基于HADOOP的分布式海量数据库

ZOOKEEPER:分布式协调服务基础组件

Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库

Oozie:工作流调度框架

Sqoop:数据导入导出工具

Flume:日志数据采集框架

hadoop的各个版本:

目前Hadoop的发行版除了Apache的开源版本之外,还有华为发行版、Intel发行版、Cloudera发行版(CDH)、Hortonworks发行版(HDP)、MapR等,所有这些发行版均是基于Apache Hadoop衍生出来的,因为Apache Hadoop的开源协议允许任何人对其进行修改并作为开源或者商业产品发布。

Apache社区版本

  • 优点:
    1. 完全开源免费。
    2. 社区活跃
    3. 文档、资料详实
  • 缺点:
    1. 复杂的版本管理。版本管理比较混乱的,各种版本层出不穷,让很多使用者不知所措。
    2. 复杂的集群部署、安装、配置。通常按照集群需要编写大量的配置文件,分发到每一台节点上,容易出错,效率低下。
    3. 复杂的集群运维。对集群的监控,运维,需要安装第三方的其他软件,如ganglia,nagois等,运维难度较大。
    4. 复杂的生态环境。在Hadoop生态圈中,组件的选择、使用,比如Hive,Mahout,Sqoop,Flume,Spark,Oozie等等,需要大量考虑兼容性的问题,版本是否兼容,组件是否有冲突,编译是否能通过等。经常会浪费大量的时间去编译组件,解决版本冲突问题。

内大多数公司发行版是收费的,比如Intel发行版、华为发行版等。不收费的Hadoop版本主要有国外的四个,分别是Apache基金会hadoop、Cloudera版本(CDH)、Hortonworks版本(HDP)、MapR版本

第三方发行版本(如CDH,HDP,MapR等)

  • 优点:
    1. 基于Apache协议,100%开源。
    2. 版本管理清晰。比如Cloudera,CDH1,CDH2,CDH3,CDH4,CDH5 等,后面加上补丁版本,如CDH4.1.0 patch level 923.142,表示在原生态Apache Hadoop 0.20.2基础上添加了1065个patch。
    3. 比Apache Hadoop在兼容性、安全性、稳定性上有增强。第三方发行版通常都经过了大量的测试验证,有众多部署实例,大量的运行到各种生产环境。
    4. 版本更新快。通常情况,比如CDH每个季度会有一个update,每一年会有一个release。
    5. 基于稳定版本Apache Hadoop,并应用了最新Bug修复或Feature的patch
    6. 提供了部署、安装、配置工具,大大提高了集群部署的效率,可以在几个小时内部署好集群。
    7. 运维简单。提供了管理、监控、诊断、配置修改的工具,管理配置方便,定位问题快速、准确,使运维工作简单,有效。

Apache Hadoop版本分为两代,我们将第一代Hadoop称为Hadoop 1.0,第二代Hadoop称为Hadoop 2.0。第一代Hadoop包含三个大版本,分别是0.20.x,0.21.x和0.22.x,其中,0.20.x最后演化成1.0.x,变成了稳定版,而0.21.x和0.22.x则NameNode HA等新的重大特性。第二代Hadoop包含两个版本,分别是0.23.x和2.x,它们完全不同于Hadoop 1.0,是一套全新的架构,均包含HDFS Federation和YARN两个系统,相比于0.23.x,2.x增加了NameNode HA和Wire-compatibility两个重大特性

经过上面的大体解释,大家可能明白了Hadoop以重大特性区分各个版本的,总结起来,用于区分Hadoop版本的特性有以下几个:

(1)Append 支持文件追加功能,如果想使用HBase,需要这个特性。

(2)RAID 在保证数据可靠的前提下,通过引入校验码较少数据块数目。详细链接:                                                                                        https://issues.apache.org/jira/browse/HDFS/component/12313080

(3)Symlink 支持HDFS文件链接,具体可参考: https://issues.apache.org/jira/browse/HDFS-245

(4)Security Hadoop安全,具体可参考:https://issues.apache.org/jira/browse/HADOOP-4487

(5) NameNode HA 具体可参考:https://issues.apache.org/jira/browse/HDFS-1064

(6) HDFS Federation和YARN

更多新的版本信息可在官网查看:

http://hadoop.apache.org/releases.html

Apache Hadoop版本对其它组件的支持

在部署的时候,需要注意hadoop版本与其它生态圈组件例如hbase的版本匹配。

因为hadoop的版本与其它组件并不是版本向上兼容向下兼容那么简单。

有些版本不对应直接就不能使用。

哪个版本对应哪个版本的组件 需要在组件官网中查询。

例如hbase:http://hbase.apache.org/book.html#configuration

更多组件官网入口可查看:

http://hadoop.apache.org/releases.html#Release+Notes

在组件getStart页面 一般都会有说明 或者在组件的 release 页面可查看到相关版本信息。例如 hive:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值