Hadoop 之 RM初始化、远程调试

JAVA进程、核心的Hadoop类
    1.HDFS:数据存储
        org.apache.hadoop.hdfs.server.namenode.NameNode
        org.apache.hadoop.hdfs.server.datanode.DataNode
        org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode
        
    2.YARN:MapReduce 作业的调度执行
        org.apache.hadoop.yarn.server.resourcemanager.ResourceManager
        org.apache.hadoop.yarn.server.nodemanager.NodeManager

初始化:
    1.RM 收到submitApp()后将请求转给调度器Yarn scheduler
    2.scheduler分配container
    3.RM在该container启动app master , 并交由节点管理器NM管理。
    4.app master创建多个记录对象跟踪job进度,它将接受task的进度或完成报告。
    5.检索输入切割 inputsplit
    6.为每个split创建map任务和一定数量的reduce任务(setNumRed..()),此时分配jobid
    7.app master判断如何运行task,如果是小job,app master会在同一节点jvm中运行
        uber task就是指这一点,因为开启新容器分配和运行程序更耗费资源。
        小job的衡量标准是map<10,只有reduce=1,而且input size < block size。这些值可以修改。
             mapreduce.job.ubertask.maxmaps
             mapreduce.job.ubertask.maxreduces
             mapreduce.job.ubertask.enable
    8.最后,App master调用OutputCommitter的setupJob()方法,默认是FileOutputCommimter,主要是创建output目录和临时工作目录。


远程调试:
    1.远程服务器启动jvm的远程调试:
        a.运行java程序时,直接指定参数 java -xxxx -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000
        b.先设置环境变量,再启动jvm,直接变环境附加在jvm启动参数之后
            export xxx="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000"
            java yyy $xxx
        c.${hadoop_home}\bin\yarn
            $YARN_RESOURCEMANAGER_OPTS
    2.编写脚本
        enable_yarn-remotedebug.sh

export YARN_RESOURCEMANAGER_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000"

    
    3.执行脚本,source环境变量生效
    4.启动资源管理器RM:start-yar.sh
    5.启动多个NM,但是RM暂停在监听8000端口的过程中
    6.到客户端中设置断点,连接到远程的RM程序,
        a.在RM的main函数设置断点
        b.在类上选择run--> debug configuration...->new remote deug..->socket attach-> 指定远程服务器ip和端口 ip:xx | port:8000
        c.点击debug

转载于:https://my.oschina.net/weigy/blog/891903

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值