MapReduce计算模型是大数据处理模式的鼻祖,这种模型很容易实现数据处理对并行化,并且编程模型简单,但对于复杂的运算逻辑往往需要大量的代码。
MapReduce任务涉及到的组件
在hadoop1.x中,MapReduce的运行依赖于JobTracker和TaskTracker,但在最新的hadoop版本中,以及被yarn替代,涉及到的主要组件有:
1)ResourceManager:负责整集群的资源管理和任务分配
2)NodeManager:负责单个节点的资源管理及执行任务
3)ApplicationMaster:负责当前Job的资源申请,任务调度以及错误处理等
4)Container:Yarn中资源的抽象,Task运行在Container所规则的资源边界内
MapReduce的运行模式
本地模式
本地模式是运行在程序员电脑上,以多线程的方式模拟MapReducer过程,适合本地调试
Yarn-Client
MapTask和ReduceTask运行在集群的NodeManager节点上,但ApplicationMaster运行在客户端,这种模式能够更好但观察到Job的运行情况
Yarn-Cluster
这种方式是将Task和ApplicationMaster都运行在NodeManager的Container上,好处是客户端可以快速返回,不用阻塞等待计算结果。但由于ApplicationMaster由ResourceManager分配