1. 程式人生 > >分享知識-快樂自己:執行(wordcount)案例

分享知識-快樂自己:執行(wordcount)案例

執行 wordcount 案例:

一):大資料(hadoop)初始化環境搭建

二):大資料(hadoop)環境搭建

三):執行wordcount案例

四):揭祕HDFS

五):揭祕MapReduce

六):揭祕HBase

七):HBase程式設計

-----------------------------------------------------------------

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.dllwinutils.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中檢視效果圖!

 

 

點我進行下一步的操作(揭祕HDFS)