【Hadoop】Hadoop 3.x 和2.x主要区别总结

Hadoop3.0引入了多项重大改进,包括提升Java版本要求至8,引入纠删码减少数据冗余,重写Shell脚本增强功能与兼容性,新增API依赖避免冲突,优化MapReduce本地化性能,支持多NameNode增强容错,调整服务端口避免冲突,支持Azure及阿里云存储,内部Balancer优化存储分布,改进内存管理,HDFS Federation简化访问,Yarn时间线服务升级,容量调度器API配置,以及扩展资源类型管理。

⌘ 最低Java版本从7升级到8

⌘ 引入纠删码(Erasure Coding),未来趋势

主要解决数据量大到一定程度磁盘空间存储能力不足的问题.

HDFS中的默认3副本方案在存储空间中具有200%的额外开销。但是,对于I/O活动相对较少冷数据集,在正常操作期间很少访问其他块副本,但仍然会消耗与第一个副本相同的资源量。

纠删码能勾在不到50%数据冗余的情况下提供和3副本相同的容错能力,因此,冷数据可以使用纠删码作为副本机制的改进是自然而然,也是未来的趋势.

本来默认是128M为一个块,纠删码可以将其打散成1M一个块

⌘ 重写了Shell脚本

重写了Shell脚本,修改了之前版本长期存在的一些错误,并提供了一些新功能,在尽可能保证兼容性的前提下(旧的不要用了,可能有问题),一些新变化仍然可能导致之前的安装出现问题。

例如:

  • 所有Hadoop Shell脚本子系统现在都会执行hadoop-env.sh这个脚本,它允许所有环节变量位于一个位置;
  • 守护进程已通过*-daemon.sh选项从*-daemon.sh移动到了bin命令中,在Hadoop3中,我们可以简单的使用守护进程来启动、停止对应的Hadoop系统进程;

⌘ 引入了新的API依赖

之前Hadoop客户端操作的Maven依赖为hadoop-client,这个依赖直接暴露了Hadoop的下级依赖,当用户和Hadoop使用相同依赖的不同版本时,可能造成冲突。

Hadoop3.0引入了提供了hadoop-client-api 和hadoop-client-runtime依赖将下级依赖隐藏起来,一定程度上来解决依赖冲突的问题

⌘ MapReduce任务的本地化优化

Map

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值