攻城獅在路上(陸)-- 配置hadoop本地windows運行MapReduce程序環境


本文的目的是實現在windows環境下實現模擬運行Map/Reduce程序。最終實現效果:MapReduce程序不會被提交到實際集群,但是運算結果會寫入到集群的HDFS系統中

一、環境說明:

    操作系統:win7

    eclipse:Version: Mars Release (4.5.0)

    hadoop:2.5.1

二、預備文檔(僅是說明,以第三步為准):

System.setProperty("HADOOP_USER_NAME", "root");

本地測試環境(windows):

    在windows的hadoop目錄bin目錄有一個winutils.exe

    1、在windows下配置hadoop的環境變量

    2、拷貝debug工具(winutils.exe)到HADOOP_HOME/bin

    3、修改hadoop的源碼 ,注意:確保項目的lib需要真實安裝的jdk的lib

    4、MR調用的代碼需要改變:

        a、src不能有服務器的hadoop配置文件

        b、在調用是使用:

            Configuration config = new  Configuration();

            config.set("fs.defaultFS", "hdfs://node7:8020");

            config.set("yarn.resourcemanager.hostname", "node7");

三、基本步驟說明:

1、首先下載hadoop包,這里使用的是hadoop-2.5.1。解壓后的路徑是:E:\hadoop\hadoop-2.5.1

2、下載winutils.exe。將該軟件拷貝到E:\hadoop\hadoop-2.5.1\bin下

image

3、在windows中配置HADOOP_HOME環境變量為E:\hadoop\hadoop-2.5.1,並加入到path環境變量中。

4、修改hadoop源碼,在新建的Java project中拷貝下面路徑的Java代碼。路徑保持和原來一致。

org/apache/hadoop/io/nativeio/NativeIO.java
org/apache/hadoop/mapred/YARNRunner.java

image

5、在java project的buildpath中設置,jdk不要使用eclipse自帶的,修改為自己本地安裝的Jdk。

6、其他限制條件:

    A、src中不能有服務器的hadoop配置文件。

    B、在調用時使用下面的代碼:根據實際配置進行修改下面的參數

System.setProperty("HADOOP_USER_NAME", "root");

Configuration config = new  Configuration();

config.set("fs.defaultFS", "hdfs://node7:8020");

 config.set("yarn.resourcemanager.hostname", "node7");

7、運行代碼:在eclipse中以DEBUG執行main方法即可。可以在Mapper和Reduce中打斷點調試。


免責聲明!

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



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