详解hadoop1.x和hadoop2.x的区别及补充hadoop3.x新特性

hadoop1.x和hadoop2.x的主要区别在于:
    1、hadoop1.x没有提供架构中主节点namenode及jobtrack的高可用及负载均机制。而在hadoop2.x中有。
    2、第二个区别就体现在mapreduce的架构设计上,hadoop1.x中mapreduce兼具计算和资源调度两个作用,
       而在hadoop2.x中则将mapreduce中的资源调度功能剥离形成一个独立的框架叫做yarn。使得hadoop更
       加地灵活,因为剥离后的yarn不仅可以运行在hadoop平台,也可以运行在其他的平台,如spark。

 MapReduce1.x架构设计

详解hadoop1.x和hadoop2.x的区别及补充hadoop3.x新特性_第1张图片

 

MapReduce1.x架构设计:

    1、在hadoop1.x,MapReduce不仅做作业的计算,还做资源的调度。
    2、它是一个主从架构,由一个主节点Jobtrack和多个从节点Tasktrack组成。
    3、真正执行任务的是tasktrack中运行着的maptask和reducetask。
    
具体hadoop1.x的mapreduce任务执行流程就不说了,没有面试官会问这种sb问题。

 mapreduce2.x架构设计

详解hadoop1.x和hadoop2.x的区别及补充hadoop3.x新特性_第2张图片

 

 

1、客户端向RM申请提交作业,RMAM给客户端返回一个作业编号及作业资源存放路径,客户端拿到返回信息后计
   算数据切片并将数据切片信息及配置信息和jar包文件保存在作业资源存放路径。

2、资源保存成功后客户端会向RMAM申请任务的第一个container,并且要求对应的NM在该container内启动应
   用程序的MRAM。
    
3、MRAM启动成功后向RM中的AM注册自己,注册成功即采用轮询的方式通过rpc协议向RMRS申请应用程序的各
   个task执行所需要的资源。申请成功则到对应的NM上要求它分配contatiner,并在container内启动
   task。

4、在整个应用程序执行期间,各个task通过rpc协议向MRAM报告task执行状态,用户也可以通过rpc向MRAM
   查询任务的运行情况。所有task结束,MRAM向AM申请注销,注销完成任务结束。


#####每个container中只运行一个task,要么是maptask,要么是reducetask。当然也可以是MRAM,每个
     应用程序MRAM只有一个。

RM:ResourceManager
RMAM:ResourceManager中的Applications Manager
RMRS:ResourceManager中的Resource scheduler
NM:NodeManager
MRAM:MRApplicationMaster

Hadoop3.x新特性

1、Java最低版本要求从Java7更改成Java8。
2、HDFS支持纠删码,将原本3倍的存储消耗降低到1.4倍。
    ####在原始数据中加入新的校验数据,使得各个部分的数据产生关联性。
    ####在一定范围的数据出错情况下,通过纠删码技术都可以进行恢复。
    ####既耗网络又耗CPU,适用于冷数据集群。
3、Hadoop的Shell脚本被重写。
4、MapReduce任务级本地优化。
    ####MapReduce添加了Map输出collector的本地实现。
    ####对于shuffle密集型的作业来说,这将会有30%以上的性能提升。
5、支持多于2个的NameNode。
6、多个服务的默认端口被改变。
7、提供了单节个磁盘存储不均的情况的解决方案。
8、重写守护进程以及任务的堆内存管理。


 

 

 

 

 

你可能感兴趣的:(Hadoop,Hadoop核心技术)