zoukankan      html  css  js  c++  java
  • 远程调试Hadoop(转)

    试了一下,如果Hadoop是本地的话启动hadoop会报错。

    在调研JobTracker等异常问题时经常需要远程debug以实现单步跟踪。相对于打印日志,远程调试更方面更快捷,信息也更全面。这里列出远程调试的基本步骤。

    1、配置jvm选项启用远程debug

    Hadoop的所有deamon启动都是bin/hadoop脚本实现的,该脚本最后一行会执行java命令来启动JVM进程。因此要启用远程debug,只需要修改该脚本最后一行即可。

    修改前最后一行如下:

    exec "$JAVA" $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"

    修改之后最后一行如下:

    exec "$JAVA" -Xdebug -Xrunjdwp:transport=dt_socket,address=50010,server=y,suspend=n $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"

    这里新增的jvm参数为:

    -Xdebug -Xrunjdwp:transport=dt_socket,address=50010,server=y,suspend=n

    这些参数的含义是在端口50070启动一个server socket并通过Java Debug Wire Protocol (jdwp)传递调试信息。suspend=n表示客户端(eclipse)没有连上时不需要挂起,即没有开始调试时该进程照常运行。

    需要注意的是这里的端口号一定要是空闲的且对外开放的。通常生产机器只开通了少量端口。


    2、配置eclipse来远程调试

    a、启动eclipse

    b、点击菜单的 Go to Run -> Debug Configurations


    c、在配置界面上找到Remote Java Application然后右键新建一个


    d、配置远程应用的链接信息

    这里主要是填好主机名及端口号。


    f、最后一步点击 Apply保持配置然后点击Debug即可开始远程调试了


    注意的是调试要选用Debug perspective微笑
  • 相关阅读:
    格式化日期---获取年月日升级版
    时间格式转换
    Python求两个有序数组的中位数的几种方法
    pyinstaller打包时包含资源文件
    PyQt5自定义组件之飞机水平仪
    Python获取磁盘剩余空间
    PyQt5自定义组件之信号强度
    Python字典的实现原理
    获取元素相对浏览器窗口的偏移坐标
    HTML/JavaScript实现地图以鼠标为圆心缩放和移动
  • 原文地址:https://www.cnblogs.com/end/p/2781382.html
Copyright © 2011-2022 走看看