如何在eclipse上調試hadoop的筆記


步驟

修改mapred-site.xml文件,添加如下配置:

<property>  

  <name>mapred.child.java.opts</name>  

  <value>-agentlib:jdwp=transport=dt_socket,address=8883,server=y,suspend=y</value>  

</property>  

關閉所有的tasktracker,只保留上面配置的一台需要調試的tasktracker

啟動Mapreduce job

右鍵hadoop src項目,右鍵“Debug As”,選擇“Debug Configurations”,選擇“Remote Java Application”,添加一個新的測試,輸入遠程host ip和監聽端口,上例為8883,然后點擊“Debug”按鈕。此時應該連接到遠程tasktracker child進程,並進入斷點位置,可以單步調試了。

Eclipse 連接套接字模式下的 VM 調用示例

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address="8000" -jar test.jar 

使用遠程啟動配置啟動 Eclipse,並指定遠程應用程序的目標 VM 地址。為此,單擊 Run > Debug Configurations,然后在 Eclipse 菜單中雙擊 Remote Java Application。從最新創建的啟動配置中為目標應用程序指定 IP 和端口。為了在同一台機器上運行遠程應用程序,僅需將主機 IP 指定為 localhost 或 127.0.0.1

 

 

 

問題1windows hadoop HDFS Failed to set permissions of path

答:

把 項目引用的 hadoop-core-1.0.2.jar  換成 hadoop-core-0.20.2.jar,了事。

或者下載修改的jar

https://skydrive.live.com/?cid=cf7746837803bc50&id=CF7746837803BC50%211276&authkey=!AJCcrNRX9RCF6FA

自己把hadoop源代碼中的org.apache.hadoop.fs.FileUtil放到項目中去,自己修改FileUtil.checkReturnValue,使得在WIndows下不報出這個異常。

或者干脆自己重新編譯hadoopjar

問題2hadoop:Input path does not exist異常

答:

http://blog.csdn.net/longzaitianguo/article/details/6773468

是因為本地的input目錄並沒有上傳到HDFS上,所出現 org.apache.hadoop.mapred.InvalidInputException: 

Input path does not exist: hdfs://localhost:9000/user/root/input

解決方法,在eclipse下面建輸入目錄,配置到程序輸入參數中即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM