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
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