1. 程式人生 > >Hadoop 2.x環境搭建之單機執行模式配置

Hadoop 2.x環境搭建之單機執行模式配置

Hadoop的單機執行模式配置

目錄

1、linux 中的配置

a)  Linux中修改主機名

b)  更改主機對映 (iP 主機名)

c)  更改win7下的主機對映

d)  設定網絡卡為靜態?

2、jdk的安裝

a)  在opt下面建立software 放置jdk安裝包(為壓縮檔案)

b)  在opt下面建立modules 放置用於jdk安裝

c)  配置環境變數

d)  配置防火牆

配置檔案的地址:opt/modules/hadoop版本/etc/hadoop

優先配置sh結尾的檔案:

hadoop-env.sh

mapred-env.sh

yarn-env.sh

找到其中寫有:${JAVA_HOME}的地方並更改為:

exportJAVA_HOME=/opt/modules/jdk1.7.0_67

三者對應中JAVA_HOME的位置:

這三個更改後應該為:

3、配置hdfs

3.1、與hdfs相關的配置

配置檔案的地址:opt/modules/hadoop版本/etc/hadoop

這次主要更改以xml結尾的檔案

按照順序為:

1)core-site.xml  (這裡面會有主機名字的更改)

2)hdfs-site.xml

注意:sbin命令都是在hadoop版本名的目錄下執行的 比如hadoop-2.5.0

注意:這裡只格式化一遍,不用重複格式化

這裡與通過cd命令進入到hadoop版本目錄下:

   格式化:$bin/hdfs namenode -format 

3.3、啟動hdfs守護程序

注意:sbin命令都是在hadoop版本名的目錄下執行的 比如hadoop-2.5.0

步驟:

啟動namenode程序

啟動datanode程序

檢視jps

3.4、訪問web介面

檢視檔案系統

   $ bin/hdfs dfs   //可以檢視所有的dfs相關的操作指令

   $ bin/hdfs dfs -ls / 

   $ bin/hdfs dfs -mkdir -p /input/test

   $ bin/hdfs dfs  -rmdir/input/test

   $ bin/hdfs dfs  -put/opt/software/jdk-7u67-linux-x64.tar.gz /input/test

4、配置YARN 與任務排程 (Mapreduce) 資源管理(resourcemanager nodemanager)

配置yarn-site.xml

   複製並重名模板檔案

$ cp etc/hadoop/mapred-site.xml.templateetc/hadoop/mapred-site.xml

配置新增的mapred-site.xml

步驟如下:yarn-site.xml中

mapred-site.xml

5、啟動hdfs 與yarn程序(前面已經啟動了hdfs程序)

$ sbin/hadoop-daemon.sh start namenode

$ sbin/hadoop-daemon.sh start datanode

$ sbin/yarn-daemon.sh start resourcemanager

$ sbin/yarn-daemon.sh start nodemanager

6、檢查hdfs yarn啟動狀態,即檢視守護程序

 $  jps

7、向yarn提交mapreducer 任務

1)計算圓周率

   $bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar  pi 3 5

注意:這裡埠為8032,無論何時總是先執行map,執行成功後子在執行reduce ,當然多執行緒中也是,只不過有時候看到的是map與不與其對應的reduce同時進行。

7.2、wordcount詞頻統計

a.在使用者主目錄建立一個1.log檔案

注意:這裡講到檢視 檔案內容 最好用-text,而不是 -cat

   $vi /home/hadoop/2.log

   hadoopjava

   htmljava

   linuxhadoop

   yarnhadoop

   b1.上傳到hdfs的input目錄下

   $ bin/hdfs dfs  -put  ~/wordcoun.txt/input/

   c.提交wordcount任務

執行命令:

$ bin/hadoop jar  share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar  wordcount /input /output

自動建立input 檔案

注意,這裡只能檢視該檔名

如果想看到裡面寫入的內容應該為:

a.   進入hadoop0505:50070網站,(這裡hadoop0505是主機名字),然後會

進入後顯示寫入的文字:

測試wordcount並將檔案上傳至output2,output2會自動新建這個檔案:

8、再次執行wordcount會提示輸出目錄已經存在。

org.apache.hadoop.mapred.FileAlreadyExistsException:Output directory hdfs://hadoop0505:8020/output already exists

9、配置日誌聚合

對應檔案:mapred-site.xml

yarn-site.xml

對應檔案:

10、停止所有程序重新啟動,以便配置檔案生效

1)停止程序

$sbin/hadoop-daemon.sh stop namenode

$sbin/hadoop-daemon.sh stop datanode

$sbin/yarn-daemon.sh stop resourcemanager

$sbin/yarn-daemon.sh stop nodemanager

2)啟動程序

$sbin/hadoop-daemon.sh start namenode

$sbin/hadoop-daemon.sh start datanode

$sbin/yarn-daemon.sh start resourcemanager

$sbin/yarn-daemon.sh start nodemanager

   3)啟動歷史

啟動歷史服務

sbin/mr-jobhistory-daemon.shstart historyserver

   4)檢視守護程序

28904ResourceManager

28724NameNode

28808DataNode

29152NodeManager

29304JobHistoryServer

30561Jps

檢視hdfs的web介面

http://hadoop0505:50070

*28724NameNode

*28808DataNode

檢視yarn的web訪問介面

http://hadoop0505:8088

*28904ResourceManager

28724NameNode

28808DataNode

*29152NodeManager

檢視歷史日誌的web訪問介面

http://hadoop0505:19888

28904ResourceManager

28724NameNode

28808DataNode

29152NodeManager

*29304 JobHistoryServer

3.1、本次有人在輸入開啟namenode與datanode後檢視程序jps 發現

沒開啟namenode與datanode,通過檢視錯誤日誌,發現上面寫有,does not contain a valid host:port authority:+對應的主機名:8020

這是因為在該主機名中含有兩個“.” ,後來將主機名改為含有一個“.”。

3.2、發現有人主機名改為含有一個“.”,但是開啟服務之後第一次jps 會

顯示對應的namenode,datanode服務,第二次jps會顯示只有jps,即為自動關閉了namenode,datanode,這是因為他沒有設定主機名。通過vi /etc/hosts來設定。