hadoop3.0新特性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop3.0新特性相关的知识,希望对你有一定的参考价值。
参考技术A 下图简单看一下hadoop的发展史
思想: 通过引用数据校验块,使其和原始数据校验块编码产生关联关系,然后听过关联关系恢复,这个技术依赖于线性代数一些姿势.
用处: 用于数据的恢复,可以提高磁盘的利用率
缺点: 时间换空间产物,因为编码解码会浪费时间
纠删码技术原理解释:
假设
x1=1;
x2=2;
x3=3
x1+2 x2+4 x3=17
x1+2 x2+3 x3=14
根据上面一组方程求x1,x2,x3的值,其实虽然有5个方程,其实最少只需要有三个方程就能求出来另外两个方程
把上面这个原理对应到数据里面就是
x1,x2,x3就相当于是原始数据,
x1+2 x2+4 x3=17
x1+2 x2+3 x3=14
这两个方程结果为校验值,
就是假如只有x1这个数据块,但是有下面连个方程,是不是就可以求出对应的x2,和x3了,
如果一个数据是被是3个原始的数据块:
备份机制中:采用2复本机制,至少需要6个数据块才能够保证数据的可靠性,即每个各备份一个即可,
如果是数据块的这种,最少需要4个,他可以容许你的一个数据块的丢失,比如把1丢了,剩下的2和3剩下,通过一个方程就能求出来1的内容,就可以允许一个数据块丢失
之前数据丢失了,直接从别的服务器位置拷贝一个过来就行,hadoop3用纠删码就需要号计算,还需要拿到另外块的数据和计算公式,因为他是要计算的,比如1,2,3三块数据块,比如采用纠删码存储技术,就可以把1号数据丢失,但是某天需要用到1号,数据,就需要从新计算恢复,所以这个就需要耗费时间.
但是我觉得吧,比如hadoop以后可以在这个基础上优化一下
比如说三台服务器,一个文件被切割成了1,2,3三份,具体存储如下
上面三个为纠删码存储方式
下面三个为正常存储方式
hadoop正在往这个方向优化
即先从其他服务器找这个数据块,找不到再用纠删码计算
所以纠删码用于存储冷数据,冷数据指的是平时很少用到的数据
这个用法创建一个eraszing zone(空间),然后放在这个空间的数据,创建目录,把需要纠删码技术存储的把这个文件放到这个路径即可
比如之前的数据时热门的,但是之前并不是存储在这个eraszing zone里面,但是现在就是冷数据,食之无味,弃之可惜,鸡肋也,所以就可以在这个数据拷贝到这个eraszing zone里面,然后把那旧数据原位置删除就行,hadoop也在做一种简单的办法,通过一个命令,修改这个冷数据的存储方式,hadoop正在做,
所以3.0的冷数据还是建议使用这种备份机制,冷门数据是用纠删码(时间换空间)
namenode的HA升级了,支持两个以上的namemode,
例如,通过配置三个NameNode和五个JournalNode,群集能够容忍两个节点的故障,而不是一个故障。
但是Active的NameNode始终只有1个,余下的都是Standby。 Standby NN会不断与JN同步,保证自己获取最新的editlog,并将edits同步到自己维护的image中去,这样便可以实现热备,在发生failover的时候,立马切换成active状态,对外提供服务。同时,JN只允许一个active状态的NN写入
以前是支持亚马逊的,现在3.0支持了更多的,尤其是阿里云,说明阿里云正在走向壮大
增加DataNode的 内部 负载均衡,之前是DataNode之间的负载均衡,现在是DataNode内部的负载均衡,比如DataNode这台机器有三块磁盘,然后发现只有一块磁盘写满了,另外两块磁盘都没怎么用,这时候输入一个命令,他就可以帮你重新分配一下
现在可以通过hdfs diskbalancer命令,进行节点内部硬盘间的数据平衡。该功能默认是关闭的,需要手动设置参数dfs.disk.balancer.enabled为true来开启。
yarn timeline service做了升级,yarn timeline service是yarn是资源管理和任务调度,这timeline service就是监控这个任务的,什么时候启动的,用到了哪些资源,可以用时间序列这个结构来存储这个结构,hadoop的2.5之前,通过jobhistory server来提供任务监控信息的收集,但是他有缺点,底层扩展性和可靠性不高,因为做这个数据量也挺大的,所以在3.0作了相应的修改.
支持opportunistic(机会主义的) containers(容器)和distributed(分布式) scheduling(调度)
在hadoop上面的跑的任务,对资源都是争抢的状态,但是有时候需要协调人物的优先级,在hadoop3.0跑的时候,比如MapReduce任务,hive任务过来,对底层资源都是争抢状态,所以就需要协调人物的优先级,hadoop3.0的yarn就是比较灵活,比如任务在跑的时候,指定了优先级也好,指定了比如2核,8G的固定资源也好,有时候某个时间点根本用不到这么多资源,那个时间段可能只用了一半,释放了一半,这个opportunistic(机会主义的) containers(容器)就可以让不这么重要的任务临时用一下这个临时的资源
yarn配置资源可以配置的更加细化,比如原先是只支持线级别,现在支持点级别
比如这个hive依赖hadoopclient,但是还依赖某一个jar包的1.0版本,但是呢,这个hadoopclient依赖这个jar包的2.0版本,然后这两个jar包放到一起,肯定报错,因为名字一样,版本不一样,使用就会紊乱
优化,将这个hadoop client的jar包放到另外一个空间,隔离起来,这样就不会乱了
以上内容纯手敲,如有疑问或者错误请留言或者私信
以上内容纯手敲,如有疑问或者错误请留言或者私信
以上内容纯手敲,如有疑问或者错误请留言或者私信
Hadoop3.0的新特性
1. Hadoop3.0简介Hadoop 2.0是基于JDK 1.7开发的,而JDK 1.7在2015年4月已停止更新,这直接迫使Hadoop社区基于JDK1.8重新发布一个新的Hadoop版本,而这正是hadoop 3.0。
Hadoop 3.0的alpha版预计今年夏天发布,GA版本11月或12月发布。
Hadoop 3.0中引入了一些重要的功能和优化,包括HDFS 可擦除编码、多Namenode支持、MR NativeTask优化、YARN基于cgroup的内存和磁盘IO隔离、YARN container resizing等。
2. Hadoop3.0新特性
Hadoop 3.0在功能和性能方面,对hadoop内核进行了多项重大改进,主要包括:
2.1 HadoopCommon (1)精简Hadoop内核,包括剔除过期的API和实现,将默认组件实现替换成最高效的实现(比如将FileOutputCommitter缺省实现换为v2版本,废除hftp转由webhdfs替代,移除Hadoop子实现序列化库org.apache.hadoop.Records (2)Classpath isolation以防止不同版本jar包冲突,比如googleGuava在混合使用Hadoop、HBase和Spark时,很容易产生冲突。( https://issues.apache.org/jira/browse/HADOOP-11656) (3)Shell脚本重构。 Hadoop3.0对Hadoop的管理脚本进行了重构,修复了大量bug,增加了新特性,支持动态命令等。[url=]https://issues.apache.org/jira/browse/HADOOP-9902[/url]
2.2 HadoopHDFS
(1)HDFS支持数据的擦除编码,这使得HDFS在不降低可靠性的前提下,节省一半存储空间。( https://issues.apache.org/jira/browse/HDFS-7285) (2)多NameNode支持,即支持一个集群中,一个active、多个standbynamenode部署方式。注:多ResourceManager特性在hadoop 2.0中已经支持。( https://issues.apache.org/jira/browse/HDFS-6440)
2.3 HadoopMapReduce
(1)Tasknative优化。为MapReduce增加了C/C++的map outputcollector实现(包括Spill,Sort和IFile等),通过作业级别参数调整就可切换到该实现上。对于shuffle密集型应用,其性能可提高约30%。( https://issues.apache.org/jira/browse/MAPREDUCE-2841) (2)MapReduce内存参数自动推断。在Hadoop2.0中,为MapReduce作业设置内存参数非常繁琐,涉及到两个参数:mapreduce.map,reduce.memory.mb和mapreduce.map,reduce.java.opts,一旦设置不合理,则会使得内存资源浪费严重,比如将前者设置为4096MB,但后者却是“-Xmx2g”,则剩余2g实际上无法让javaheap使用到。( https://issues.apache.org/jira/browse/MAPREDUCE-5785)
2.4 HadoopYARN
(1)基于cgroup的内存隔离和IO Disk隔离( https://issues.apache.org/jira/browse/YARN-2619) (2)用curator实现RM leader选举( https://issues.apache.org/jira/browse/YARN-4438) (3)containerresizing( https://issues.apache.org/jira/browse/YARN-1197) (4)Timelineserver next generation([url=]https://issues.apache.org/jira/browse/YARN-2928[/url])
3.
Hadoop 3.0的alpha版预计今年夏天发布,GA版本11月或12月发布。
Hadoop 3.0中引入了一些重要的功能和优化,包括HDFS 可擦除编码、多Namenode支持、MR NativeTask优化、YARN基于cgroup的内存和磁盘IO隔离、YARN container resizing等。
以上是关于hadoop3.0新特性的主要内容,如果未能解决你的问题,请参考以下文章