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 ntpdate2、?設置系統時間與網絡時間同步
ntpdate cn.pool.ntp.org總結
以上是生活随笔為你收集整理的Hadoop入门(十二)Intellij IDEA远程向hadoop集群提交mapreduce作业的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop入门(六)Mapreduce
- 下一篇: 电脑来全操作了电脑全部操作过程?