hadoop3.0新特性

 我来答
会哭的礼物17
2022-06-22 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6500
采纳率:100%
帮助的人:37.5万
展开全部

下图简单看一下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包放到另外一个空间,隔离起来,这样就不会乱了

以上内容纯手敲,如有疑问或者错误请留言或者私信
以上内容纯手敲,如有疑问或者错误请留言或者私信
以上内容纯手敲,如有疑问或者错误请留言或者私信

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式