在Ubuntu上调试Hadoop程序可按以下步骤进行:
安装JDK
下载JDK并解压,编辑~/.bashrc文件,添加环境变量:
export JAVA_HOME=/path/to/jdk
export PATH=$JAVA_HOME/bin:$PATH
执行source ~/.bashrc使配置生效。
安装Hadoop
解压Hadoop到指定目录,编辑~/.bashrc添加Hadoop环境变量:
export HADOOP_HOME=/path/to/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
执行source ~/.bashrc。
修改配置文件
$HADOOP_HOME/etc/hadoop/hadoop-env.sh中确认JAVA_HOME路径正确。$HADOOP_HOME/etc/hadoop/log4j.properties中设置日志级别为DEBUG:log4j.logger.org.apache.hadoop=DEBUG
```。
启动Hadoop服务
使用以下命令启动伪分布式模式(单机调试):
$HADOOP_HOME/sbin/start-dfs.sh # 启动HDFS
$HADOOP_HOME/sbin/start-yarn.sh # 启动YARN
通过jps命令查看进程是否正常(如NameNode、ResourceManager等)。
本地模式调试(无需集群)
在代码中设置conf.set("mapreduce.framework.name", "local"),直接运行程序,输入输出路径使用本地文件系统路径。
集群模式调试
hadoop jar命令提交到集群:hadoop jar your-program.jar MainClass input_path output_path
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005)。yarn-site.xml中启用调试端口(需修改集群配置)。日志分析
查看Hadoop日志文件(位于$HADOOP_HOME/logs目录),通过grep DEBUG过滤关键信息。
hadoop fs -chmod修改。ping或telnet检查节点间网络是否通畅。core-site.xml、hdfs-site.xml等配置文件的语法和参数是否正确。参考资料: