您的位置:首页 > 运维架构

hadoop

2015-05-29 08:38 232 查看
namenode 是主节点,存储文件的元数据如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和块所在的datanode等

datanode 在本地文件系统存储文件块数据,以及块数据的校验和

secondary namenode 用来监控hdfs状态的辅助后台程序,每隔一段时间获取hdfs元数据的快照

50030是观察mapdurce

1分割过程:将文件分割成splits,每个文件是一个split,并将文件按行分割成key value对,这一步有mapreduce框架自动完成,key包括了回车所占字符数

2map过程:将分割的结果key value对交给用户自定义的map方法进行处理,生成新的keyvalue对。这里有一次排序,框架自动完成,它按照自然逻辑排序。

3combine过程(相同就累加):获得map方法输出的key value对后,mapper会将他们按照key值进行排序,并执行combine过程,将key至相同的value值累加,得到mapper的最终输出结果。

4reduce排序和执行reduce方法:把combine处理后的数据copy到reduce端,然后reduce先对从combine的数据进行排序,再交由用户自定义的reduce方法进行处理,得到新的keyvalue对,并作为wordcount的输出结果。这里在获得combine的数据后就马上进行排序,

通过mr运行job,提交给jobclient,然后jobclient向jobtracker请求作业号,提交作业,同时复制作业的资源文件,jobtracker根据这个作业号,创建作业对象。jobtracker从hdfs上获取输入划分,判定有多少个map,然后jobtracker通过心跳把信息传给tasktracker,tasktracker从hdfs上获取作业的资源文件,登陆子jvm,启动map reduce程序

hadoop1的槽slot hadoop2的容器container区别

yarn

核心思想:将mr1中jobtracker的资源管理和任务调度两个功能分开,分别

有resourcemanager和applicationmaster进程实现

resourcemanager:负责整个集群的资源管理和调度

applicationmaster:负责应用程序相关的事务,比如任务调度,任务监控和容错

yarn的引入,使得多个计算框架可运行在一个集群中

每个应用程序对应一个applicationmaster

mapreduceappmaster:负责任务切分,任务调度,任务监控和容错

maptask/reducetask:任务驱动引擎

每个mapreduce作业对应一个maappmaster

mapreduceapplicationmaster 容错

失败后,有yarn重新启动

任务失败后,mrappmaster重新申请资源

federation

1通过多个namenode/namespace把元数据的存储和管理分散到多个节点上,使得

namenode/namespace可以通过增加机器来进行水平扩展

2能把单个namenode的负载分散到多个节点中,在hdfs数据规模较大的时候不会降低

hdfs的性能,可以通过多个namespace来隔离不同类型的应用,把不同类型应用的hdfs元数据

的存储和管理分派到不同的namenode中

ha

1主备namenode

2解决单节点故障

主namenode对外提供服务,备namenode同步主namenode元数据,以待切换

所有datanode同时向两个namenode汇报数据块信息

3两种切换选择

手动切换:通过命令实现主备之间的切换

自动切换:基于zookeeper实现

基于zookeeper自动切换方案

zookeeper failover controller:监控namenode健康状态

并向zookeeper注册namenode

namenode挂掉后,zkfc为namenode竞争锁,获得zkfc锁的namenode变为active
http://dongxicheng.org/mapreduce/hadoop-optimization-0/ http://www.cnblogs.com/smartloli/p/4272705.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: