您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關windows7下eclipse如何遠程調試linux hadoop的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
首先說明幾點:
遠程調試對于本地hadoop版本、遠程hadoop版本、eclipse版本都有極為嚴格的兼容性要求,我所采用的版本如下:
(1)本地hadoop:0.20.203(如果客戶端和服務端hadoop版本不匹配可能會有協議錯誤)
(2)遠程hadoop:0.20.203(因為各個版本的ipc協議都有變化)
下載地址:http://archive.apache.org/dist/hadoop/core/hadoop-0.20.203.0/
(3)eclipse版本:indigo(這個也很重要,不匹配的話,可能eclipse壓根就無法識別hadoop插件)
文件md5碼以及下載地址:
9017a39354fa65375c6ee748963cf2ff eclipse-jee-indigo-SR2-win32.zip
http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/indigosr2
(4)客戶端操作系統:win7,遠程操作系統:linux(ubuntu/centos等等,只要是linux均可)
上述搭配中如果有任意一項版本不匹配,均可能有異常發生,這都不在本文的討論范疇,因此開始下文操作前,請務必核對你自己的版本。
第一步:先啟動hadoop守護進程
具體參看:http://www.cnblogs.com/flyoung2008/archive/2011/11/29/2268302.html
第二步:在eclipse上安裝hadoop插件
1.復制 hadoop安裝目錄/contrib/eclipse-plugin/hadoop-0.20.203.0-eclipse-plugin.jar 到 eclipse安裝目錄/plugins/ 下。
2.重啟eclipse,配置hadoop installation directory。
如果安裝插件成功,打開Window-->Preferens,你會發現Hadoop Map/Reduce選項,在這個選項里你需要配置Hadoop installation directory。配置完成后退出。
3.配置Map/Reduce Locations。
在Window-->Show View中打開Map/Reduce Locations。
在Map/Reduce Locations中新建一個Hadoop Location。在這個View中,右鍵-->New Hadoop Location。在彈出的對話框中你需要配置Location name,如Hadoop,還有Map/Reduce Master和DFS Master。這里面的Host、Port分別為你在mapred-site.xml、core-site.xml中配置的地址及端口。如:
Map/Reduce Master
192.168.1.101 9001
DFS Master
192.168.1.101 9000
配置完后退出。點擊DFS Locations-->Hadoop如果能顯示文件夾(2)說明配置正確,如果顯示"拒絕連接",請檢查你的配置。
如果這一步有問題,請看最后的“注意事項(1)”。
第三步:新建項目。
File-->New-->Other-->Map/Reduce Project
項目名可以隨便取,如WordCount。
復制 hadoop安裝目錄/src/example/org/apache/hadoop/example/WordCount.java到剛才新建的項目下面。 或者參考:http://my.oschina.net/leejun2005/blog/83058
第四步:上傳模擬數據文件夾。
為了運行程序,我們需要一個輸入的文件夾,和輸出的文件夾。
在本地新建word.txt
java c++ python c java c++ javascript helloworld hadoop mapreduce java hadoop hbase
通過hadoop的命令在HDFS上創建/tmp/workcount目錄,命令如下:bin/hadoop fs -mkdir /tmp/wordcount
通過copyFromLocal命令把本地的word.txt復制到HDFS上,命令如下:bin/hadoop fs -copyFromLocal /home/grid/word.txt /tmp/wordcount/word.txt
第五步:運行項目
1.在新建的項目Hadoop,點擊WordCount.java,右鍵-->Run As-->Run Configurations
2.在彈出的Run Configurations對話框中,點Java Application,右鍵-->New,這時會新建一個application名為WordCount
3.配置運行參數,點Arguments,在Program arguments中輸入“你要傳給程序的輸入文件夾和你要求程序將計算結果保存的文件夾”,如:
hdfs://centos1:9000/tmp/wordcount/word.txt hdfs://centos1:9000/tmp/wordcount/out
4.如果運行時報java.lang.OutOfMemoryError: Java heap space 配置VM arguments(在Program arguments下)
-Xms512m -Xmx1024m -XX:MaxPermSize=256m
關于jvm內存分配理解,請參考:http://my.oschina.net/leejun2005/blog/122963
注意事項:
(1)第2步eclipse可能會報無法連接的錯:"Map/Reduce location status updater". org/codehaus/jackson/map/JsonMappingException
經過查詢,是由于hadoop的eclipse 插件里面缺少了一些包
按照這篇文章的說明 修改包后 重新運行成功
http://hi.baidu.com/wangyucao1989/blog/item/279cef87c4b37c34c75cc315.html
關于這個eclipse插件的問題,我已經打包好了,請從如下地址下載:
http://vdisk.weibo.com/s/xEJGZ
(2)第5步,可能會報錯:
12/04/24 15:32:44 ERROR security.UserGroupInformation: PriviledgedActionException as:Administrator cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging to 0700
Exception in thread "main">
at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:682)
這是由于Windows下文件權限問題,在Linux下可以正常運行,不存在這樣的問題。
參考:http://blog.csdn.net/keda8997110/article/details/8533633
解決方法是修改 F:\編程開發\hadoop\older\hadoop-0.20.203.0rc1\hadoop-0.20.203.0\src\core\org\apache\hadoop\fs\RawLocalFileSystem.java ,注釋掉 checkReturnValue(有些粗暴,在Window下,可以不用檢查)
private void checkReturnValue(boolean rv, Path p, FsPermission permission) throws IOException { /*if (!rv) { throw new IOException("Failed to set permissions of path: " + p + " to " + String.format("%04o", permission.toShort())); }*/ }
然后重新編譯、打包 hadoop-core-0.20.203.0.jar ,再次運行即可成功。關于這個重新編譯hadoop的方法我上面的壓縮包里也有教程文檔,為了方便起見,我把已經編譯打包好的jar也上傳了,你直接替換即可。
ok,到此你現在應該可以在windows7下遠程調試你的hadoop代碼了,如果沒有成功,請仔細核對各個步驟、各個配置項,Good Luck~
windows下用eclipse連接linux中的hadoop,并執行mr
http://superlxw1234.iteye.com/blog/1583164
注意:myeclipse有2點需要注意:
cat eclipse.desktop # chmod 777 注意權限 [Desktop Entry] Encoding=UTF-8 Name=Eclipse Comment=Eclipse IDE Exec=/home/june/soft/eclipse/eclipse Icon=/home/june/soft/eclipse/icon.xpm Terminal=false StartupNotify=true Type=Application Categories=Application;Development;
(1)Icon=/home/june/download/myeclipse-8.4.200-linux-gtk-x86/icon.xpm 這里不能有空格、雙引號等其它符號,空格轉義即可。
(2)hadoop的jar包直接丟到 /home/june/Genuitec/MyEclipse 8.5 M2/dropins 即可,不需要找什么 plugins 目錄。
感謝各位的閱讀!關于“windows7下eclipse如何遠程調試linux hadoop”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。