大数据培训好学吗 Hadoop2和Hadoop1的区别

编辑:光环大数据 来源: 互联网 时间: 2017-11-20 18:25 阅读:

hadoop2 和 Hadoop1的区别

  

1. Namenode

  

NameNode其实是Hadoop的一个目录服务,它包含着整个集群存储的文件的元数据。

 

 

  

早期发行的Hadoop1版本将所有HDFS目录和文件的元数据存储到一个NameNode单点。整个集群的数据状态取决于这个单点的成败。随后的版本添加了一个 secondary NameNode 节点,作为冷备份的从NameNode节点。

 

Secondary NameNode节点周期性地将写日志(edit log)和NameNode的映象文件(image file)合并,这样做有两个优点:首先,由于主NameNode节点在启动的时候不需要完全合并写日志和映象文件,因此主NameNode节点的启动时间缩短了;其次,从NameNode节点复制NameNode的所有信息,这样当NameNode节点出现不可恢复的故障时,数据丢失会降到最低。 但是,secondary NameNode并不是一个热备份节点 ,这意味着故障切换时间和恢复时间较长,且集群可用性会受到影响。

  

Hadoop2做出了改进,有了NameNode的热备节点。当主NameNode节点故障了,从NameNode就能够在自动转变成主NameNode,这就意味着hadoop集群可以提供无数据丢失且不间断的NameNode服务,并且自动故障切换也比较容易实现。

  

热备份的关键在于维护它的数据尽可能与主NameNode节点保持一致,可以通过读取主NameNode的写日志文件并在备份节点上执行来实现,并且延时也是非常低的。写日志文件的共享可以使用以下两种方法来实现:

  

在主NameNode和从NameNode节点间使用共享的网络文件系统(Network File System,NFS)存储目录:主NameNode往共享目录中写入日志,而从NameNode监听这个共享目录的变更消息,然后拉取这些变更。

  

使用一组JournalNode(quorum of Journal Nodes):主NameNode将写日志发送到部分JournalNode以记录信息,而从NameNode持续监听这些JournalNode,从而更新和同步主NameNode的状态。

  

2. JobTracker 和 YARN

  

Hadoop1采用集中式作业流控制,然而集中式系统由于其负载的单点问题,很难实现扩展。一旦JobTracker(作业跟踪器)出现故障,系统中所有的作业都必须重新启动,这对整个集中式组件造成了极大压力。由于计算模型是和集群的资源紧密联系的,所以只能支持MapReduce一种计算模型。这种紧密的耦合导致开发者强行适配其他的计算模型,从而出现了与MapReduce设计意图相悖的使用方式。按照这种模式,Hadoop很难与其他类型的集群进行集成。

  

Hadoop2引入了YARN。YARN的主要设计目标是将大家比较关注的资源管理(resource management)和应用执行(application execution)之间的耦合隔离,然后其他的应用模式就可以在Hadoop集群上执行了。增强不同计算模型和各种应用之间的交互,使得集群的资源得到高效的利用,同时也能更好地与企业中已经存在的计算结构集成在一起。

  

3. HDFS联合

  

Hadoop1中,HDFS和块管理层紧紧地耦合在一起,难以集成其他的存储服务。

  

在Hadoop2实现了一个更为通用的存储模型。一个通用的块存储(block storage)层已经从文件系统层隔离出来。这种隔离使得其他存储服务有机会被集成到Hadoop集群中。这种通用存储模型使得HDFS联合(HDFS Federation)功能得以实现。这个功能允许多个HDFS命名空间使用相同的底层存储设备,且联合的NameNode节点提供了文件系统层面的隔离功能。在第10章中,我们会详细介绍这个特性。

  

4. HDFS快照

  

Haddoop2 引入了快照(snapshot)。快照是文件系统的整体或部分目录在某个时间点的只读镜像(image),通常是为了以下三个原因:

  

防止用户的错误操作导致的数据损坏或丢失、备份、容灾

  

快照仅在NameNode上实现,它不会涉及数据从一个数据节点复制到另一个数据节点,而仅仅是复制了块列表以及文件的大小。生成一个快照的操作几乎是瞬间完成的,它不会影响NameNode节点的性能。

  

5. 序列化方式

  

Hadoop1的RPC通信协议是使用Java的Writables序列化实现的,但在Hadoop2中是基于Protocol Buffers实现的。这个改进不仅很容易保持向后兼容,而且帮助集群中的不同组件实现了滚动升级(rolling the upgrades)。另外,RPC也允许在客户端实现重试功能。

  

6. 支持SSD感知

  

Hadoop1是不感知存储设备的类型的,这意味着机械硬盘和SSD(固态硬盘)被一样对待。用户无法对数据的布局做任何干预。2014年发布的Hadoop2版本能够识别存储设备的类型,并且应用程序可以获取到这些信息。这样,应用程序就可以通过这些信息来优化它们的数据存取和布局策略。

  

7. HDFS IO方面的改进

  

Hadoop1是通过HDFS客户端访问文件系统的。Hadoop2开始支持NFSv3,促进了NFS网关组件的诞生。现在,HDFS可以挂载(mount)到用户本地兼容的文件系统上,他们可以直接往HDFS下载或上传文件。往已有的文件追加内容是可以的,但是随机写(random write)是不支持的。同时,Hadoop2的I/O也进行了大量的改进。例如,在Hadoop1中,当客户端运行在某个数据节点上时,它需要通过TCP来读取本地数据。但是,有了本地快捷读取(short-circuit local reads),客户端就可以直接读取本地的数据;通过特定的接口还可以实现零复制(zero-copy)数据读取;读或写数据的CRC校验码计算方法也进行了优化。

  

8. 支持更多的操作系统

  

Hadoop 2.X天然支持微软的Windows系统。这个转变使得微软的Windows服务器有极好的机会进入大数据处理领域。当然,部分原因得归功于Hadoop开发使用的Java编程语言有很好的可移植性,但更重要的原因在于Hadoop对计算和存储的通用性的增强,使其能支持包括Windows在内的系统。时下,云服务商将Hadoop作为一种按需分配的服务,作为其平台即服务(Platform-as-a-Service)产品的一部分。Hadoop2也支持OpenStack,促进了在云端的弹性和虚拟化部署。

 

  大数据培训哪家好大数据培训靠谱吗大数据培训排行榜大数据培训费用大数据培训多少钱等相关问题,欢迎咨询光环大数据官网在线客服:hadoop.aura.cn

 

 


大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服

你可能也喜欢这些

在线客服咨询

领取资料

X
立即免费领取

请准确填写您的信息

点击领取
#第三方统计代码(模版变量) '); })();
'); })();