zoukankan      html  css  js  c++  java
  • Hadoop debug 方法

          做hadoop开发,需要对hdfs,mapreduce组件等进行修改、测试,如果每次做修改后都打成jar包上传到服务器打log测试的话将非常麻烦和耗时的。所以如果能够通过eclipse进行远程调试将会非常方便与惬意的。

          hadoop远程调试十分简单,只需要自己hack很少的代码就可以完成。步骤如下:

          首先拷贝$HADOOP_HOME/bin/hadoop   到一个文件如$HADOOP_HOME/bin/hadoop-debug

          在最后一行修改,原来的bash代码是

    else
      # run it
      exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"
    fi

          修改为

    else
      # run it
      #exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"
       exec "$JAVA" -Xdebug -Xrunjdwp:transport=dt_socket,address=7777,server=y,suspend=y $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"
    fi
    

      address后面是监听的地址,可以改为任意空闲地址。

          启动十分简单,如想要调试DataNode代码,就启动$HADOOP_HOME/bin/hadoop-debug datanode

          这时候会提示监听端口信息。

    [××××@×××× bin]$ ./hadoop-debug.sh datanode
    Warning: $HADOOP_HOME is deprecated.
    
    Listening for transport dt_socket at address: 7777

          在本地启动eclipse远程调试,如下图:

          

  • 相关阅读:
    曾经拥有,今生无悔
    WinRAR 4.20 beta2 key!注册文件 注册码
    加谁的QQ,并聊天‘
    自己读c
    字符串和字符数组做函数参数是的区别,
    数组
    *p和++对p的影响和对*p的影响
    字符串赋给指针
    memset函数,还没看2013.12.19
    strtock函数小结。
  • 原文地址:https://www.cnblogs.com/sidmeng/p/2458828.html
Copyright © 2011-2022 走看看