(三)配置Hadoop1.2.1+eclipse(Juno版)開發環境,並運行WordCount程式

來源:互聯網
上載者:User

標籤:

配置Hadoop1.2.1+eclipse(Juno)開發環境,並運行WordCount程式

一、   需求部分

在ubuntu上用Eclipse IDE進行hadoop相關的開發,需要在Eclipse上安裝hadoop的開發外掛程式。最新釋放出的hadoop包含源碼的包,以 hadoop-1.X為例,包含相關的eclipse外掛程式的源碼,因此可以針對自己的eclipse版本來編譯一個合適hadoop的eclipse外掛程式。下面將詳細介紹外掛程式的編譯安裝過程,以及在Eclipse上配置hadoop開發外掛程式的過程。

二、   環境

  1. VMware® Workstation 10.04
  2. Ubuntu14.04 32位
  3. Java JDK 1.6.0
  4. Hadoop1.2.1
  5. Eclipse: Juno Service Release 2 Version

三、       編譯hadoop1.2.1Eclipse-Juno外掛程式

1)        安裝ant

 sudo apt-get install ant

2)        修改編譯設定檔

l  在hadoop解壓目錄下,找到src\contrib\eclipse-plugin\build.xml,修改以下幾行:

<path id="hadoop-core-jar">

    <fileset dir="${hadoop.root}/">

        <include name="hadoop*.jar"/>

    </fileset>

  </path>

 

  <!-- Override classpath to include Eclipse SDK jars -->

  <path id="classpath">

    <pathelement location="${build.classes}"/>

    <pathelement location="${hadoop.root}/build/classes"/>

    <path refid="eclipse-sdk-jars"/>

    <path refid="hadoop-core-jar"/>

  </path>

......

  <target name="jar" depends="compile" unless="skip.contrib">

    <mkdir dir="${build.dir}/lib"/>

    <copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/> 

    <copy file="${hadoop.root}/lib/commons-cli-1.2.jar"  todir="${build.dir}/lib" verbose="true"/> 

    <copy file="${hadoop.root}/lib/commons-lang-2.4.jar"  todir="${build.dir}/lib" verbose="true"/> 

    <copy file="${hadoop.root}/lib/commons-configuration-1.6.jar"  todir="${build.dir}/lib" verbose="true"/> 

    <copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar"  todir="${build.dir}/lib" verbose="true"/> 

    <copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar"  todir="${build.dir}/lib" verbose="true"/> 

    <copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar"  todir="${build.dir}/lib" verbose="true"/>

    <jar

      jarfile="${build.dir}/hadoop-${name}-${version}.jar"

      manifest="${root}/META-INF/MANIFEST.MF">

      <fileset dir="${build.dir}" includes="classes/ lib/"/>

      <fileset dir="${root}" includes="resources/ plugin.xml"/>

    </jar>

  </target>

l  找到src\contrib\build-contrib.xml,添加以下幾行:

  <property name="version" value="1.2.1"/>
  <property name="ivy.version" value="2.1.0"/>
  <property name="eclipse.home" location="..."/>

 eclipse的路徑請換成你主機上的eclipse存放路徑。

3)   然後,開啟命令列,進入目錄\src\contrib\eclipse-plugin,輸入ant編譯,如果一切正常就編譯通過了。

最後可以在{hadoophome}\build\contrib\eclipse-plugin路徑下找到編譯好的外掛程式。

4)   幾個注意點:

l  一定要在網路環境下進行,如果需要設定上網代理,可以在src\contrib\build-contrib.xml中添加如下幾行:

<target name="proxy" >
    <property name="proxy.host" value=""/>
    <property name="proxy.port" value="80"/>
    <property name="proxy.user" value=""/>
    <property name="proxy.pass" value=""/>
    <setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"
      proxyuser="${proxy.user}" proxypassword="${proxy.pass}"/>
</target>

在xml檔案中的ivy相關檔案的下載任務中,添加以上代理任務的依賴,配置為:

<target name="ivy-download" depends="proxy" description="To download ivy " unless="offline">
    <get src="${ivy_repo_url}" dest="${ivy.jar}" usetimestamp="true"/>
  </target>

l  如果出現編譯提示類的版本不匹配的問題,請確認你的java版本大於1.6。

四、       配置hadoop1.2.1Eclipse開發環境

得到的hadoop1.2.1-Eclipse開發外掛程式(jar包)後,將它放置在eclipse/plugins目錄下,並重啟eclipse即可。這裡要注意一點,有時候eclipse會出現載入外掛程式失敗的情況,如果出現,就用eclipse -clean命令啟動,啟動後在Eclipse的右上方應該出現了一隻藍色的大象logo。

五、    運行WordCount程式

啟動Eclipse後,File->New->Project.如果出現Map/Reduce Project選項,選擇後next,輸入Project name完成後,說明外掛程式安裝成功了。如果出現了Map/Reduce Project選項,但是next後提示錯誤,說明你使用的外掛程式不可行。

 

下面在window->preferences選項裡配置hadoop目錄

然後啟動hadoop,點擊eclipse下方選項黃色小象,在下方空白處右鍵,New hadoop location..

上面左方的Map/Reduce Master設定Host和Port對應的是你hadoop安裝目錄下conf下mapred-site.xml檔案設定的host和port,右邊的DFS Master對應的是core-site.xml。設定好後finish,然後就能在eclipse裡面瀏覽並操作HDFS了。


下面我們試著運行一個wordcount演算法。

在剛才建的map/reduce project下的src檔案夾上右鍵,New->class


然後把hadoop安裝目錄下的src/examples/org/apache/hadoop/examples內的WordCount.java內的代碼copy到工程中的WordCount.java裡。

 

注釋第一行。儲存。

在ubuntu的Documents下建立檔案input,並輸入內容:

my name is sun bin bin,what is your name?

然後將input檔案上傳到HDFS中:

bin/hadoop fs -put /home/binbin/Documents/input.  //注意最後面的.

檔案就上傳到HDFS了,重新整理eclipse中的myhdoop下的目錄就可以看到


然後開始運行。在建立的WordCount.java上面右鍵,Run as->run configurations

左邊的java application右鍵New

arguments設定參數:

要確保HDFS中不存在output目錄,否則會拋出異常。點擊Run on Hadoop.

運行結束後,在左方的DFS Locations/myhadoop裡面就能看輸出結果了(要右鍵重新整理),或者在終端通過命令列查看。


因為本wordcount演算法只對空格做間隔符號,所以會出現bin,what計為一個單詞的情況。

 

參考:

http://www.cnblogs.com/alex-blog/p/3160619.html

http://blog.sina.com.cn/s/blog_7deb436e0101kh0d.html

(三)配置Hadoop1.2.1+eclipse(Juno版)開發環境,並運行WordCount程式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.