在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
等配置文件的語法和參數是否正確。參考資料: