日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

使用Eclipse编译运行MapReduce程序 Hadoop2.6.0/Ubuntu

發布時間:2025/6/15 Ubuntu 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Eclipse编译运行MapReduce程序 Hadoop2.6.0/Ubuntu 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上篇介紹了使用命令行編譯打包運行自己的MapReduce程序,使用 Eclipse 更加方便。要在 Eclipse 上編譯和運行 MapReduce 程序,需要安裝 hadoop-eclipse-plugin,可使用 Github 上的?hadoop2x-eclipse-plugin,測試環境:

  • Ubuntu 14.04
  • Hadoop 2.6.0
  • Eclipse 3.8

本教程在 Hadoop 2.6.0 下驗證通過,理論上適合于任何原生 Hadoop 2 版本,如 Hadoop 2.4.1 也可以。

準備工作

安裝好 Eclipse,可在 Ubuntu 軟件中心直接搜索安裝。

在左側任務欄,點擊“Ubuntu軟件中心”。

Ubuntu軟件中心

在右上角搜索欄中搜索 eclipse,在搜索結果中單擊 eclipse,并點擊安裝。

安裝Eclipse

如此,就完成了 eclipse 的安裝。Eclipse 的默認安裝目錄為:/usr/lib/eclipse。

安裝 Hadoop-Eclipse-Plugin

下載?hadoop2x-eclipse-plugin?,將 release 中的 hadoop-eclipse-kepler-plugin-2.2.0.jar (雖然標注的是 2.2.0,但在 2.6.0 下是沒問題的,應該在 2.x 版本下都可以)復制到 Eclipse 安裝目錄的 plugin 文件夾中,運行?eclipse -clean重啟 Eclipse 即可。

  • cd ~/下載/
  • unzip ./hadoop2x-eclipse-plugin-master.zip
  • cd /usr/lib/eclipse
  • sudo cp ~/下載/hadoop2x-eclipse-plugin-master/release/hadoop-eclipse-kepler-plugin-2.2.0.jar ./plugins/
  • ./eclipse -clean
  • 配置 Hadoop-Eclipse-Plugin

    啟動 Eclipse 后就可以在左側的Project Explorer中看到 DFS Locations(若看到的是 welcome 界面,點擊左上角的 x 關閉就可以看到了)。

    安裝好Hadoop-Eclipse-Plugin插件后的效果

    插件需要進一步的配置。

    第一步:選擇 Window 菜單下的 Preference。

    打開Preference

    此時會彈出一個窗體,窗體的左側會多出 Hadoop Map/Reduce 選項,點擊此選項,選擇 Hadoop 的安裝目錄(如/usr/local/hadoop,Ubuntu不好選擇目錄,直接輸入就行)。

    選擇 Hadoop 的安裝目錄

    第二步:切換 Map/Reduce 工作目錄,選擇 Window 菜單下選擇 Open Perspective -> Other,彈出一個窗體,從中選擇 Map/Reduce 選項即可進行切換。

    切換 Map/Reduce 工作目錄

    第三步:建立與 Hadoop 集群的連接,點擊 Eclipse軟件右下角的 Map/Reduce Locations 面板,在面板中單擊右鍵,選擇 New Hadoop Location。

    建立與 Hadoop 集群的連接

    在彈出來的 General 選項面板中進行 Master 的設置,設置要要 Hadoop 的配置一致,如我使用的Hadoop偽分布式配置,設置了 fs.defaultFS 為 hdfs://localhost:9000,則 DFS Master 那的 Post 也應改為 9000。

    Location Name 隨意填寫,Map/Reduce Master 的 Host 就填寫你本機的IP(localhost 也行),Port 默認就是 50020。最后的設置如下:

    Hadoop Location 的設置

    接著再切換到 Advanced parameters 選項面板,這邊有詳細的配置,切記需要與 Hadoop 的配置(/usr/local/hadoop/etc/hadoop中的配置文件)一致,如我配置了 hadoop.tmp.dir ,就要進行修改。

    Hadoop Location 的設置

    最后點擊 finish,Map/Reduce Location 就創建好了。

    這樣配置就完成了。

    在 Eclipse 中查看HDFS中的文件內容

    配置成功后,點擊左側 Project Explorer中的 MapReduce Location 就能直接查看 HDFS 中的文件內容了(如下圖是 WordCount 的輸出結果),而無需再通過繁瑣的?hdfs dfs -ls?命令。如果無法查看,可嘗試重啟Eclipse!

    使用Eclipse查看HDFS中的文件內容

    Tips

    HDFS 中的內容變動后,Eclipse 不會同步刷新,需要右鍵點擊 Project Explorer中的 MapReduce Location,選擇 Refresh,才能看到變動后的文件。

    在Eclipse中創建MapReduce項目

    點擊 File 菜單,選擇 New -> Project…:

    創建Project

    選擇 Map/Reduce Project,點擊 Next。

    創建MapReduce項目

    填寫 Project name 為 WordCount 即可,點擊 Finish 就創建好了項目。

    填寫項目名

    此時在左側的 Project Explorer 就能看到剛才建立的項目了。

    項目創建完成

    接著右鍵點擊剛創建的 WordCount 項目,選擇 New -> Class

    新建Class

    需要填寫兩個地方:在 Package 處填寫 org.apache.hadoop.examples;在 Name 處填寫 WordCount。

    填寫Class信息

    創建 Class 完成后,在 Project 的 src 中就能看到 WordCount.java 這個文件。將 WordCount 的代碼復制到該文件中,可以使用使用命令行編譯打包運行自己的MapReduce程序文中最后給出的代碼。

    通過Eclipse運行MapReduce

    在運行 MapReduce 程序前,還需要執行一項操作:將 /usr/local/hadoop/etc/hadoop 中將有修改過的配置文件(如偽分布式需要 core-site.xml 和 hdfs-site.xml),以及 log4j.properties 復制到 WordCount 項目下的 src 文件夾(~/workspace/WordCount/src)中。否則程序將無法正確運行,文章最后解釋了為什么需要復制這些文件。

    復制完成后,右鍵點擊 WordCount 進行刷新,可以看到文件結構如下所示:

    WordCount項目文件結構

    點擊工具欄中的 Run 圖標,或者右鍵點擊 Project Explorer 中的 WordCount.java,選擇 Run As -> Run on Hadoop,就可以運行 MapReduce 程序了。不過由于沒有指定參數,運行時會提示 “Usage: wordcount?“,需要通過Eclipse設定一下運行參數。

    右鍵點擊剛創建的 WordCount.java,選擇 Run As -> Run Configurations,在此處可以設置運行時的相關參數。切換到 “Arguments” 欄,在 Program arguments 處填寫 “input output” 就可以了。

    設置程序運行參數

    或者也可以直接在代碼中設置好輸入參數。可將代碼 main() 函數的?String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();?改為:

  • // String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
  • String[] otherArgs=new String[]{"input","output"}; /* 直接設置輸入參數 */
  • 設定參數后,再次運行程序,可以看到運行成功的提示,刷新 DFS Location 后也能看到輸出的 output 文件夾。

    ![WordCount 運行結果][19]

    至此,你就可以使用 Eclipse 方便的進行 MapReduce程序的開發了。

    在 Eclipse 中運行 MapReduce 項目會遇到的問題

    雖然配置了 Hadoop-Eclipse-Plugin,但一些設置項似乎沒有正確配置,如果沒有復制 core-site.xml 和 hdfs-site.xml ,程序將無法運行,會提示 Input 路徑不存在(實際讀取的是當前目錄而非 HDFS 目錄)。

    Exception in thread "main" org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: file:/home/hadoop/workspace/WordCountProject/input

    log4j用于記錄程序的輸出日記,需要 log4j.properties 這個配置文件,如果沒有復制該文件到項目中,運行程序后在 Console 面板中會出現警告提示:

    log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

    雖然不影響程序的正確運行的,但程序運行時無法看到任何提示消息(只能看到出錯信息)

    總結

    以上是生活随笔為你收集整理的使用Eclipse编译运行MapReduce程序 Hadoop2.6.0/Ubuntu的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。