windows調試hadoop-mapreduce任務踩坑記錄(使用idea)

首先準備Hadoop鏈接驅動,放到任意一個文件夾中,並將其bin目錄寫入path環境環境變量,另取其中的hadoop.dll文件放入c盤System32文件夾中。
建立空maven項目,這是個人所有依賴(maven依賴可能會出現包衝突問題,望自行解決,主要是log4j的衝突)git

<dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.6.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
            <version>2.6.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.6.0</version>
        </dependency>
    </dependencies>

將hadoop四大配置文件放在resources根目錄下,還有log4j.properties
再準備你的mapreduce源碼,在main函數中寫入如下代碼github

System.setProperty("HADOOP_USER_NAME", "hadoop");
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://10.32.6.132:9000");//ip依照本身的集羣進行定義
conf.set("mapreduce.framework.name", "yarn");
conf.set("mapreduce.app-submission.cross-platform", "true");//容許跨平臺提交
conf.set("mapred.jar","E:\\hadooptest\\target\\hadooptest-1.0-SNAPSHOT-jar-with-dependencies.jar");


mapred.jar就寫編譯出來的jar包位置

idea中運行配置以下
clipboard.pngapache

其中輸入路徑必定要存在,輸出路徑必定要不存在,由Hadoop自行建立windows

clipboard.png
此處寫hadoop驅動的根目錄,以後點擊運行便可。服務器

遇到的問題:
1.必定要保證hadoop集羣是可運行的,單機版也能夠,但必定要保證是正常的。
2.在本機運行過程當中會調用hadoop歷史服務器,採用
sbin/mr-jobhistory-daemon.sh start historyserver
命令啓動
不啓動的異常爲10020端口沒法訪問
3.運行過程當中出現的各類鏈接異常的警告能夠忽視,不可忽視的是異常,端口默認訪問地址是0.0.0.0是沒法被其餘主機訪問的,因此任何鏈接被異常中斷時請檢查是否在配置文件中顯式指定了套接字。app

相關文章
相關標籤/搜索