如何用IDE调试MR任务(一)(2016-01)

来源:互联网 发布:网络家教兼职 编辑:程序博客网 时间:2024/05/31 05:28

MR任务和普通的JAVA进程不太一样的地方是:它们是将jar包等搬到YARN上(MR的资源调度平台)去执行的。调试起来有些地方就不太懂了。

最近自己摸索了下,用于解决如下两个场景,将其跑通:

1.在提交MR任务后,跟踪MR任务逻辑处理;

2.在整个调试过程中,同时印证MR的工作原理;

还未搞明白的问题:

1.业务逻辑代码对应的jar包,经过MR的接口处理后,会放在HDFS上;但其第三方依赖jar包又是放在哪里,在业务程序运行过程中,没跟踪到;

2.配置文件应是在读取到内存后,以序列化传递给MR;(猜测)

3.各类日志(container维度,task 维度),放在HDFS上吗?(猜测)

基本原理:

1.MR收到客户端提交的任务后,跟YARN打交道,将本次的任务提交给YARN;

2.YARN会先选择一个节点,拉起AM进程(也是跑在某个container中),来管理MR所提交的这个MR任务;

3.这个AM会根据MR所提交的MR任务逻辑,分配细化任务,向YARN申请资源;一般先申请Map阶段资源,等Map跑完,又继续申请Reduce资源;

4.Yarn分配资源,NodeManage实施资源分配(分配container),整个串起来是由AM编号,AM下的各个container也有编号;

5.而整个计算逻辑执行由MR框架监控执行。每个MR任务会被细分为task(可以有多个map task和多个reduce task),每个task一般都是分配一个container来执行;



0 0
原创粉丝点击