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來設定。