分享知識-快樂自己:執行(wordcount)案例
執行 wordcount 案例:
-----------------------------------------------------------------
Hadoop叢集測試wordcount程式:
1):在bigData目錄下建立wordcount資料夾
mkdir wordcount //建立資料夾
2):在wordcount資料夾下建立兩個檔案並輸入內容
//建立 file1.txt
vim file1.txt
//輸入內容如下:
hello word
hello java
//建立 file2.txt
vim file2.txt
hello hadoop
hello wordcount
3):在HDFS中建立input資料夾
hadoop fs -mkdir /input
// hadoop fs :可以理解為 hadoop系統檔案目錄
檢視建立的檔案(是否存在)
4):把剛才建立的兩個檔案上傳到HDFS中input資料夾
//上傳所有以 .txt 結尾的檔案
hadoop fs -put ./* .txt /input/
//檢視上傳的檔案
hadoop fs -ls /
注意:可能存在的問題:
檢視當前正在執行的相關服務:
jps //沒有規定要在哪一個目錄執行
1):上傳過程中可能出現以下錯誤:
解決方案:
檢視 配置 hdfs-site.xml 節點指定的路徑【 name 和 data 】目錄是否自動生成了。
小編這裡是沒有生成 data 目錄。
採用手動開啟 datanode 服務才自動建立。
sbin/hadoop-daemon.sh start datanode || sbin/hadoop-daemon.sh start namenode
有了目錄還需要注意:name 和 data 目錄中的 id 必須一致:(如果不一致可以修改一下 或者 刪除 name data logs tem 生成的目錄 重新格式化並啟動叢集:檢視是否有相應資訊)
5):執行wordcount程式
Hadoop的 jar 包中已經給我們提供了 mapreduce 程式!都在 /bigData/hadoop-2.8.0/share/hadoop/mapreduce資料夾中!
切換到 share/hadoop/mapreduce 目錄下:
cd share/hadoop/mapreduce
執行以下命令:
hadoop jar hadoop-mapreduce-examples-2.8.0.jar wordcount /input/ /output/
/input/ :是指需要計算檔案所在的位置
/output/:是指計算之後的結果檔案存放位置
6):檢視執行運算後的結果
hadoop fs -cat /output/*
Eclipse整合Hadoop外掛:點我下載原始碼
如果eclipse是裝在了真機windows系統中,需要我們在真機上安裝hadoop!(同樣將 hadoop 壓縮包在 windows 上解壓一份:【以管理員方式執行解壓】)
1):配置 windows hadoop環境變數:
2):使用 hadoop version 檢視是否配置成功:
3):下載指定版本的外掛:下載地址一 下載地址二
把外掛放進 eclipse 安裝目錄下的 plugins 資料夾下
4):啟動eclipse配置hadoop的安裝目錄
4-1):
4-2):
4-3):eclipse中顯示外掛的頁面:
4-):
5):使用eclipse建立並執行wordcount程式
匯入計算程式:
1):
2):
NativeIO:更改以下配置
目錄結構:
右鍵點選WordCount====》Run As ===》Run Configuration:
java Application 上 new:
hdfs://admin:9000/input
hdfs://admin:9000/eclipseoutput
得到結果:
注意:Error 可能出現的錯誤...
1):有可能是本機的hadoop/bin目錄下缺少hadoop.dll和winutils.exe等檔案。(建議全部替換 hadoop/bin 下的所有檔案。bin包在上述的下載地址中)
2):
org.apache.hadoop.security.AccessControlException: Permissiondenied: user=zhengcy, access=WRITE,inode="/user/root/output":root:supergroup:drwxr-xr-x
在叢集中執行hadoop fs -chmod -R 777 /
或者
修改三個虛擬機器的配置:hdfs-site.xml
新增如下配置:
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
3):
Exception in thread "main" java.lang.RuntimeException:
java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. -see https://wiki.apache.org/hadoop/WindowsProblems
解決方式:在 WordCount類中的main 方法中新增如下配置
System.setProperty("hadoop.home.dir", "hadoop安裝目錄");
6):使用eclipse打成jar包釋出到linux中執行
7):執行完畢之後,在eclipse中檢視效果圖!