Apache Hadoop 2.0-alpha发布了,直接从0.23.x升为2.0版本,让我们再一次被Hadoop版本的混乱无序状态搞晕。本文将解析Hadoop -2.0-alpha中的新特性。
相对于Hadoop-1.x版本(为了更全面的描述Hadop 2.0中的新特性,我们没有将之与0.23.x比较),添加了以下几个功能:
1. HDFS HA (manual failover)
Hadoop HA分支merge进了该版本,并支持热切,主要特性包括:
(1) NN配置文件有改变,使得配置更加简单
(2) NameNode分为两种角色:active NN与 standby NN,active NN对外提供读写服务,一旦出现故障,便切换到standby NN。
(3) 支持Client端重定向,也就是说,当active NN切换到standby NN过程中,Client端所有的进行时操作都可以无缝透明重定向到standby NN上,Client自己感觉不到切换过程。
(4) DN同时向active NN和standby NN汇报block信息。
具体设计文档参考:https://issues.apache.org/jira/browse/HDFS-1623
当前Hadoop HA只能实现人工切换,该功能在某些情况下非常有用,比如,对NN进行升级时,先将NN切换到standby NN,并对之前的active NN进行升级,升级完成后,再将NN切换至升级后的NN上,然后对standby NN进行升级。
2. MR2/YARN
YARN是一套资源统一管理和调度平台,可管理各种计算框架,包括MapReduce,Spark,MPI等。尽管它是完全重写而成,但其思想是从MapReduce衍化而来的,并克服了它在扩展性和容错性等方面的众多不足。具体参考:
http://hadoop.apache.org/common/docs/r0.23.0/hadoop-yarn/hadoop-yarn-site/YARN.html
3. HDFS Federation
传统HDFS是master/slave结构,其中,master(也就是NameNode)需要存储所有文件系统的元数据信息,且所有文件存储操作均需要访问多次NameNode,因而NameNode成为制约扩展性的主要瓶颈所在。为了解决该问题,引入了HDFS Federation,允许HDFS中存在多个NameNode,且每个NameNode分管一部分目录,而DataNode不变,也就是“从中央集权专为各个地方自治”,进而缩小了故障带来的影响范围,并起到一定的隔离作用。具体参考:
http://dongxicheng.org/mapreduce-nextgen/nextgen-mapreduce-introduction/
4. 性能基准测试
该版本中为HDFS和YARN添加了性能的基准测试集,其中HDFS测试包括:
(1) dfsio基准测试HDFS I/O读写性能
(2)slive基准测试NameNode内部操作的性能
(3)scan基准测试MapReduce作业访问HDFS的I/O性能
(4) shuffle基准测试shuffle阶段性能
(5) compression基准测试MapReduce作业中间结果和最终结果的压缩性能
(6) gridmix-V3基准测试集群吞吐率
YARN 测试包括:
(1) ApplicationMaster扩展性基准测试
主要测试调度task/container的性能。与1.0版本比较,大约快2倍。
(2) ApplicationMaster恢复性基准测试
测试YARN重启后,作业恢复速度。稍微解释一下ApplicationMaster恢复作业的功能:在作业执行过程中,Application Master会不断地将作业运行状态保存到磁盘上,比如哪些任务运行完成,哪些未完成等,这样,一旦集群重启或者master挂掉,重启后,可复原各个作业的状态,并只需重新运行未运行完成的哪些任务。
(3) ResourceManager扩展性基准测试
通过不断向Hadoop集群中添加节点测试RM的扩展性。
(4) 小作业基准测试
专门测试批量小作业的吞吐率
具体参考:
http://hortonworks.com/blog/delivering-on-hadoop-next-benchmarking-performance/
5. Wire-compatibility for both HDFS & YARN
Hadoop RPC采用了Hadoop自己的一套序列化框架对各种对象进行序列化反序列,但存在一个问题:扩展性差,很难添加新的数据类型同时保证版本兼容性。为此,Hadoop 2.0将数据类型模块从RPC中独立出来,成为一个独立的可插拔模块,这样允许用户根据个人爱好使用各种序列化/反序列化框架,比如thrift,arvo,protocal Buffer等,默认情况采用Protocal Buffer。
http://hortonworks.com/blog/rpc-improvements-and-wire-compatibility-in-apache-hadoop/
除了以上五个特性外,还有两个非常重要的特性正在研发中,分别是:
6. HDFS快照
用户可在任意时间对HDFS做快照,这样,在HDFS出现故障时,可将数据恢复到某个时间点的状态。具体参考:
http://hortonworks.com/blog/snapshots-for-hdfs/
7. HDFS HA自动切换
前面介绍的第一个功能“HDFS HA”当前只能实现人工切换,也就是说,管理员运行某个命令,使得acitve NN切换到standby NN上。以后将支持自动切换,也就是说,监控模块可检测出active NN何时出现故障,并自动将之切换到standby NN上,这样可大大较小Hadoop集群运维人员的工作量。具体参考:
http://s.apache.org/hdfs-autofailover
分享到:
相关推荐
第 4 章 安装部署 Hive 444.1 解压并安装 Hive 44
实验手册:搜狗搜索日志分析系统实现-Hadoop2.0-v1.2-noted
HBase是一个针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。和传统关系数据库不同,HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字...
在本地win10环境安装高版本的hadoop3.1.0以上,把apache-hadoop-3.1.0-winutils-master\bin目录下的文件全部拷贝到hadoop下的bin目录即可
CentOS6.0-Hadoop安装手册,详细介绍centos下hadoop的搭建过程
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据...
hadoop-winutils hadoop.dll 3.1.3 版本 用于配置hdfs 客户端,放在Hadoop3.1.3的bin 目录下面。
默认下载的Hadoop不支持Windows系统,需要替换bin目录下的文件方便在Windows上运行。这个就是用来直接替换掉hadoop目录下bin文件的
windows下hadoop安装,hadoop插件apache-hadoop-3.1.0-winutils-master.zip
sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.zip
sqoop-1.4.6.bin__hadoop-2.0.4-alpha.zip。。。。。。。。。。。。。。。。
hadoop3.3.0-winutils所有bin文件,亲测有效
官网下载的Hadoop2的单元测试工具apache-mrunit-1.1.0-hadoop2-bin.tar.gz,用法跟JUnit相似,需要的朋友拿走
carbondata-1.4,spark-2.1,hadoop-2.6.0-cdh5.11.1源码编译
涉及到了Hadoop2.0、Hbase、Sqoop、Flume、Hive、Zookeeper的具体环境搭建
Phoenix最早是saleforce的一个开源项目,后来成为Apache基金的顶级项目。Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。Phoenix...
Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。但是这里的 Hadoop 是广义...
标签:apache、compat、hbase、hadoop2、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。sqoop是什么? sqoop是个传输数据的工具。 ...