Hadoop的组成
Hadoop1.x和2.x区别
1.x 有MR、HDFS、common
2.x 有MR、Yarn、HDFS、common
1.x 的MR负责计算和资源调度
2.x 的MR功能拆分成了MR和YARN 分别负责计算和资源调度。
我们主要来说下2.x版本
1.HDFS
1>NN:name node 存储文件的元数据
2>DN:data node 存储文件块数据,以及数据的校验和
3>2NN:secondary name node 辅助nn,用来监控hdfs状态的辅助后台程序,每隔一段时间来获取元数据的快照
2.Yarn:负责集群中所有计算资源的管理和调度
常见的进程:
1>resoure manager(rm)1个:负责整个集群所有资源管理
职责:负责接收客户端提交的job请求
负责向nm分配任务
负责接收nm上报的信息
2>nodemanager(nm)N个:负责单台计算机所有资源管理,统计自己还有几个cpu、内存,想rm上报。
职责:负责和rm进行通信,上报本机可用资源
负责领取rm分配任务
负责job中的每个task分配计算资源
概念:container(容器):nodemanager为job的某个task分配了1个cpu和2G内存的计算资源,为了防止当前task再使用这些资源期间,被其他task抢占,将计算资源封装到一个container中,在container中的资源,会暂时被隔离,无法被其他进程抢占。
当task执行完,当前container中国的资源会被释放,允许其他task来使用。
3.MR:MapReduce(编程规范)
计算过程分为2个阶段: map阶段和reduce阶段。
1>map阶段并行处理输入数据
2>reduce对map结果进行汇总
遵循mapreduce的编程规范,编写的程序,打包后,成为一个job(任务)
job需要提交到yarn上,向yarn申请计算资源,运行job中的task(进程)
job会先创建一个进程mrappmaster(mapreduce应用管理者),由MRAppMaster向Yarn申请资源。
MRAppMaster负责监控job中哥哥task运行情况,进行容错管理。