.
一 .前言
昨天晚上遇到一个奇葩的问题, 搞好的环境DataNode启动报错. 报错信息提示的模棱两可,没办法定位原因.
办法,开启远程调试…
注意 : 开启远程调试的代码,必须与本地idea的代码必须保持一致.
二 .服务器端配置.
2.1. 设置启动远程debug端口
修改 服务器上的配置文件 ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh
增加 环境变量即可.
- 参考的设置
组件 | 环境变量设置 |
---|---|
NameNode | export HADOOP_NAMENODE_OPTS="-agentlib:jdwp=transport=dt_socket,address=8888,server=y,suspend=y" |
DataNode | export HADOOP_DATANODE_OPTS="-agentlib:jdwp=transport=dt_socket,address=9888,server=y,suspend=y" |
ResourceManager | export YARN_RESOURCEMANAGER_OPTS="-agentlib:jdwp=transport=dt_socket,address=10888,server=y,suspend=y" |
NodeManager | export YARN_NODEMANAGER_OPTS="-agentlib:jdwp=transport=dt_socket,address=10888,server=y,suspend=y" |
2.2. 具体操作
- 编辑服务器上的配置文件[${HADOOP_HOME}/etc/hadoop/hadoop-env.sh`]
随便加上一行[记住端口!!!]:
export HADOOP_DATANODE_OPTS="-agentlib:jdwp=transport=dt_socket,address=9888,server=y,suspend=y"
- 启动服务即可 [启动完, JVM返现有jdwp的配置,会自动阻塞, 等到idea调试连接.].
因为我要调试的是DataNode .
所以启动命令为:
cd ${
HADOOP_HOME}/sbin
# 启动datanode
sh hadoop-daemon.sh star