<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    聶永的博客

    記錄工作/學(xué)習(xí)的點(diǎn)點(diǎn)滴滴。

    Hadoop學(xué)習(xí)筆記之在Eclipse中遠(yuǎn)程調(diào)試Hadoop

    插件

    話說Hadoop 1.0.2/src/contrib/eclipse-plugin只有插件的源代碼,這里給出一個(gè)我打包好的對(duì)應(yīng)的Eclipse插件:
    下載地址

    下載后扔到eclipse/dropins目錄下即可,當(dāng)然eclipse/plugins也是可以的,前者更為輕便,推薦;重啟Eclipse,即可在透視圖(Perspective)中看到Map/Reduce。

    配置

    點(diǎn)擊藍(lán)色的小象圖標(biāo),新建一個(gè)Hadoop連接:

    2

    注意,一定要填寫正確,修改了某些端口,以及默認(rèn)運(yùn)行的用戶名等

    具體的設(shè)置,可見

    正常情況下,可以在項(xiàng)目區(qū)域可以看到

    image

    這樣可以正常的進(jìn)行HDFS分布式文件系統(tǒng)的管理:上傳,刪除等操作。

    為下面測試做準(zhǔn)備,需要先建了一個(gè)目錄 user/root/input2,然后上傳兩個(gè)txt文件到此目錄:

    intput1.txt 對(duì)應(yīng)內(nèi)容:Hello Hadoop Goodbye Hadoop

    intput2.txt 對(duì)應(yīng)內(nèi)容:Hello World Bye World

    HDFS的準(zhǔn)備工作好了,下面可以開始測試了。

    Hadoop工程

    新建一個(gè)Map/Reduce Project工程,設(shè)定好本地的hadoop目錄

    1

    新建一個(gè)測試類WordCountTest:

    右鍵,選擇“Run Configurations”,彈出窗口,點(diǎn)擊“Arguments”選項(xiàng)卡,在“Program argumetns”處預(yù)先輸入?yún)?shù):

    hdfs://master:9000/user/root/input2 dfs://master:9000/user/root/output2

    備注:參數(shù)為了在本地調(diào)試使用,而非真實(shí)環(huán)境。

    然后,點(diǎn)擊“Apply”,然后“Close”?,F(xiàn)在可以右鍵,選擇“Run on Hadoop”,運(yùn)行。

    但此時(shí)會(huì)出現(xiàn)類似異常信息:

    12/04/24 15:32:44 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    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" java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging to 0700
        at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:682)
        at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:655)
        at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:509)
        at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:344)
        at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:189)
        at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:116)
        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:856)
        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1093)
        at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850)
        at org.apache.hadoop.mapreduce.Job.submit(Job.java:500)
        at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:530)
        at com.hadoop.learn.test.WordCountTest.main(WordCountTest.java:85)

    這個(gè)是Windows下文件權(quán)限問題,在Linux下可以正常運(yùn)行,不存在這樣的問題。

    解決方法是,修改/hadoop-1.0.2/src/core/org/apache/hadoop/fs/FileUtil.java里面的checkReturnValue,注釋掉即可(有些粗暴,在Window下,可以不用檢查):

    重新編譯打包hadoop-core-1.0.2.jar,替換掉hadoop-1.0.2根目錄下的hadoop-core-1.0.2.jar即可。

    這里提供一份修改版的hadoop-core-1.0.2-modified.jar文件,替換原h(huán)adoop-core-1.0.2.jar即可。

    替換之后,刷新項(xiàng)目,設(shè)置好正確的jar包依賴,現(xiàn)在再運(yùn)行WordCountTest,即可。

    成功之后,在Eclipse下刷新HDFS目錄,可以看到生成了ouput2目錄:

    image

    點(diǎn)擊“ part-r-00000”文件,可以看到排序結(jié)果:

    Bye    1
    Goodbye    1
    Hadoop    2
    Hello    2
    World    2

    嗯,一樣可以正常Debug調(diào)試該程序,設(shè)置斷點(diǎn)(右鍵 –> Debug As – > Java Application),即可(每次運(yùn)行之前,都需要收到刪除輸出目錄)。

    另外,該插件會(huì)在eclipse對(duì)應(yīng)的workspace\.metadata\.plugins\org.apache.hadoop.eclipse下,自動(dòng)生成jar文件,以及其他文件,包括Haoop的一些具體配置等。

    嗯,更多細(xì)節(jié),慢慢體驗(yàn)吧。

    遇到的異常

    org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/root/output2/_temporary. Name node is in safe mode.
    The ratio of reported blocks 0.5000 has not reached the threshold 0.9990. Safe mode will be turned off automatically.
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.mkdirsInternal(FSNamesystem.java:2055)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.mkdirs(FSNamesystem.java:2029)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.mkdirs(NameNode.java:817)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:563)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1388)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1384)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1093)
        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1382)

    在主節(jié)點(diǎn)處,關(guān)閉掉安全模式:

    #bin/hadoop dfsadmin –safemode leave

    如何打包

    將創(chuàng)建的Map/Reduce項(xiàng)目打包成jar包,很簡單的事情,無需多言。保證jar文件的META-INF/MANIFEST.MF文件中存在Main-Class映射:

    Main-Class: com.hadoop.learn.test.TestDriver

    若使用到第三方j(luò)ar包,那么在MANIFEST.MF中增加Class-Path好了。

    另外可使用插件提供的MapReduce Driver向?qū)В梢詭兔ξ覀冊贖adoop中運(yùn)行,直接指定別名,尤其是包含多個(gè)Map/Reduce作業(yè)時(shí),很有用。

    一個(gè)MapReduce Driver只要包含一個(gè)main函數(shù),指定別名:

    這里有一個(gè)小技巧,MapReduce Driver類上面,右鍵運(yùn)行,Run on Hadoop,會(huì)在Eclipse的workspace\.metadata\.plugins\org.apache.hadoop.eclipse目錄下自動(dòng)生成jar包,上傳到HDFS,或者遠(yuǎn)程hadoop根目錄下,運(yùn)行它:

    # bin/hadoop jar LearnHadoop_TestDriver.java-460881982912511899.jar testcount input2 output3

    OK,本文結(jié)束。

    posted on 2012-04-26 18:31 nieyong 閱讀(29188) 評(píng)論(5)  編輯  收藏

    評(píng)論

    # re: Hadoop學(xué)習(xí)筆記之在Eclipse中遠(yuǎn)程調(diào)試Hadoop 2012-04-26 22:35 文文木

    非常感謝高手的分享,本人之前寫例子的時(shí)候一直卡在文件權(quán)限的問題,后來沒辦法只有到Linux下去寫代碼,看到這篇文章一直困擾的問題可以得到解決,也不用到Linux下寫代碼了,畢竟虛擬機(jī)上裝Linux然后在在Eclipse下寫代碼,電腦扛不?。。?!非常感謝大牛的分享!!!  回復(fù)  更多評(píng)論   

    # re: Hadoop學(xué)習(xí)筆記之在Eclipse中遠(yuǎn)程調(diào)試Hadoop 2012-04-27 08:57 nieyong

    @文文木
    偶不是什么牛,只是大家一起學(xué)習(xí),分享心得而已 :))  回復(fù)  更多評(píng)論   

    # re: Hadoop學(xué)習(xí)筆記之在Eclipse中遠(yuǎn)程調(diào)試Hadoop 2012-05-20 10:20 hadoop

    你編譯后jar包可以發(fā)我一份嗎 623758059@qq.com  回復(fù)  更多評(píng)論   

    # re: Hadoop學(xué)習(xí)筆記之在Eclipse中遠(yuǎn)程調(diào)試Hadoop 2012-07-20 18:27 redwave

    從0.20.2升級(jí)到1.0.2之后就報(bào)\tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging to 0700這個(gè)錯(cuò)誤,整 了一天了也沒搞定,幸虧看到你的博客,多謝!  回復(fù)  更多評(píng)論   

    # re: Hadoop學(xué)習(xí)筆記之在Eclipse中遠(yuǎn)程調(diào)試Hadoop 2012-08-03 12:02 lods

    好厲害  回復(fù)  更多評(píng)論   


    只有注冊用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    公告

    所有文章皆為原創(chuàng),若轉(zhuǎn)載請標(biāo)明出處,謝謝~

    新浪微博,歡迎關(guān)注:

    導(dǎo)航

    <2012年4月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    統(tǒng)計(jì)

    常用鏈接

    留言簿(58)

    隨筆分類(130)

    隨筆檔案(151)

    個(gè)人收藏

    最新隨筆

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 鲁丝片一区二区三区免费| 九九精品国产亚洲AV日韩| 亚洲va无码va在线va天堂| 亚洲国产精品乱码在线观看97| 俄罗斯极品美女毛片免费播放| 妞干网手机免费视频| 日韩在线看片免费人成视频播放| 2021在线永久免费视频| 99re在线精品视频免费| 久99久精品免费视频热77| 在线美女免费观看网站h| 久久久久久国产精品免费免费男同 | 免费国产99久久久香蕉| 一级毛片试看60分钟免费播放| 亚洲午夜在线一区| 亚洲天堂男人影院| 亚洲AV第一成肉网| 99视频免费在线观看| 99爱视频99爱在线观看免费| 免费看韩国黄a片在线观看| 亚洲国产一级在线观看| 亚洲avav天堂av在线网爱情| 精品女同一区二区三区免费播放| 一级特黄色毛片免费看| xx视频在线永久免费观看| 亚洲精品无码99在线观看| 亚洲午夜精品一区二区| 又黄又大的激情视频在线观看免费视频社区在线 | 久久夜色精品国产亚洲av| 久久久久亚洲av无码专区导航 | 99999久久久久久亚洲| 免费视频一区二区| 亚洲综合日韩久久成人AV| 亚洲精品理论电影在线观看| 在线a免费观看最新网站| 国产福利电影一区二区三区,亚洲国模精品一区 | 久久久亚洲精品无码| 亚洲s码欧洲m码吹潮| 日韩免费观看视频| 视频免费1区二区三区| 亚洲爱情岛论坛永久|