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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop入门(十二)Intellij IDEA远程向hadoop集群提交mapreduce作业

發布時間:2023/12/3 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop入门(十二)Intellij IDEA远程向hadoop集群提交mapreduce作业 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Intellij IDEA遠程向hadoop集群提交mapreduce作業,需要依賴到hadoop的庫,hadoop集群的配置信息,還有本地項目的jar包。

一、軟件環境

(1)window本地安裝hadoop軟件

首先將集群上的hadoop環境下載到本地,本文是在“A:\soft\hadoop-2.6.0”

(2)設置環境變量HADOOP_HOME

HADOOP_HOME=A:\soft\hadoop-2.6.0 HADOOP_BIN_PATH=%HADOOP_HOME%\bin HADOOP_PREFIX=A:\soft\hadoop-2.6.0 PATH追加路徑;%HADOOP_HOME%\bin

注意:配置好環境變量重啟電腦?

(3)添加winutils.exe和hadoop.dll(x86)

下載對應版本的文件:https://github.com/steveloughran/winutils

winutils.exe放置到HADOOP_HOME/bin下 ?

hadoop.dll放置到HADOOP_HOME/bin和C:\Windows\System32下

選擇正確的版本,下載相同版本的hadoop.dll,或者版本稍高

注意:hadoop-2.6.0的hadoop.dll大小是94KB,網上的其他hadoop.dll的大小不一樣的不是2.6.0版本的。

?

常見問題:

1)Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable HADOOP_HOME\bin\winutils.exe in the Hadoop binaries.

HADOOP_HOME/bin沒有winutils.exe

2)Could not locate executable null \bin\winutils.exe in the hadoop binaries

環境變量未生效

3)Unable to load native-hadoop library for your platform… using builtin-Java classes where applicable

4)java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray

hadoop.dll未放置到C:\Windows\System32或者hadoop.dll文件不正確

?

?

二、項目設置

(1)配置文件

拷貝hadoop集群中配置文件core-site.xml、mapred-site.xml、yarn-site.xml到項目,以及設置log4j.properties文件

(2)設置配置文件的host

(3)設置項目打包

右擊項目名稱,選擇Open Module Settings,選擇Artifacts,點擊中間綠色的+號,選擇JAR,再選擇From module with dependencies,填寫啟動主類MainClass保存

(4)跨平臺設置

Configuration conf = new Configuration();conf.set("mapreduce.app-submission.cross-platform", "true"); //跨平臺提交,在windows下如果沒有這句代碼會報錯 "/bin/bash: line 0: fg: no job control"

(5)設置jar路徑,否則hadoop會找不到jar

項目的jar輸出路徑為.\\out\\artifacts\\hadoop_test_jar\\hadoop-test.jar,在項目打包設置的輸出路徑

Job job = new Job(conf, "word count"); String jar = ".\\out\\artifacts\\hadoop_test_jar\\hadoop-test.jar"; job.setJar(jar);//項目打包的jar設置到jar job.setJarByClass(WordCount.class);

?

常見問題:

1)Exception message: /bin/bash: 第 0 行:fg: 無任務控制

Stack trace: ExitCodeException exitCode=1: /bin/bash: 第 0 行:fg: 無任務控制

未設置跨平臺提交job

2)Error: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.mk.mapreduce.WordCount$MyMapper not found

?未設置job.setJar()方法

3)system times on machines may be out of sync

1、安裝ntpdate工具

#cenos yum -y install ntp ntpdate #ubuntu sudo apt install ntp ntpdate

2、?設置系統時間與網絡時間同步

ntpdate cn.pool.ntp.org

總結

以上是生活随笔為你收集整理的Hadoop入门(十二)Intellij IDEA远程向hadoop集群提交mapreduce作业的全部內容,希望文章能夠幫你解決所遇到的問題。

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