004

Hadoop介绍

Hadoop是Apache旗下的一个用java语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台。允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理。

狭义上说,Hadoop指Apache这款开源框架,它的核心组件有:

HDFS(分布式文件系统):解决海量数据存储

YARN(作业调度和集群资源管理的框架):解决资源任务调度

MAPREDUCE(分布式运算编程框架):解决海量数据计算

广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈。

在应用上看
其扩容能力、低成本、高效率、可靠的特点集与一身

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

1.x

1、在hadoop1.x,MapReduce不仅做作业的计算,还做资源的调度。 2、它是一个主从架构,由一个主节点Jobtrack和多个从节点Tasktrack组成。3、真正执行任务的是tasktrack中运行着的maptask和reducetask。

2.x

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只有一个

3.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、重写守护进程以及任务的堆内存管理。

posted @ 2021-10-24 15:06  HOSANTIN  阅读(256)  评论(0编辑  收藏  举报