Hadoop偽分佈模式的搭建
阿新 • • 發佈:2018-12-02
準備工作:
1、成功安裝Linux(CentOS)系統。
安裝CentOS 7詳見:https://blog.csdn.net/zxdspaopao/article/details/83277479
2、成功安裝jdk。
安裝jdk詳見:https://blog.csdn.net/zxdspaopao/article/details/83278090
3、成功安裝hadoop。
安裝hadoop詳見:https://blog.csdn.net/zxdspaopao/article/details/83278859
安裝過程:
1、配置ssh(免密登陸);
2、配置hdfs-site.xml;
3、配置core-site.xml;
4、配置mapred-site.xml;
5、配置yarn-site.xml;
6、格式化NameNode;
7、啟動;
8、訪問;
9、執行單詞計數程式例項。
1、配置ssh
$ssh-keygen -t rsa
$ll ~/.ssh/
$ssh cmaster
2、配置hdfs-site.xml
#cd /usr/local/hadoop-2.8.4/etc/hadoop
#vi hdfs-site.xml
在<configuration>和</configuration>之間輸入以下內容:
<!--配置HDFS的冗餘度-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--配置是否檢查許可權-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
3、配置core-site.xml
#vi core-site.xml
在<configuration>和</configuration>之間輸入以下內容:
<!--配置HDFS的NameNode-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.245.11:9000</value>
</property>
<!--配置DataNode儲存資料的位置-->
<property>mv
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.8.4/tmp</value>
</property>
4、配置mapred-site.xml
#cp mapred-site.xml.template mapred-site.xml
#vi mapred-site.xml
在<configuration>和</configuration>之間輸入以下內容:
<!--配置MR執行的框架-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5、配置yarn-site.xml
#vi yarn-site.xml
在<configuration>和</configuration>之間輸入以下內容:
<!--配置ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.245.11</value>
</property>
<!--配置NodeManager執行任務的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
6、格式化NameNode
#hdfs namenode -format
出現日誌:Storage directory /usr/local/hadoop-2.4.1/tmp/dfs/name has been successfully formatted.
即為成功。
通過檢視啟動日誌分析啟動失敗原因
有時 Hadoop 無法正確啟動,如 NameNode 程序沒有順利啟動,這時可以檢視啟動日誌來排查原因,注意幾點:
-
啟動時會提示形如 “cmaster: starting namenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-namenode-cmaster.out”,其中 cmaster 對應你的主機名,但啟動的日誌資訊是記錄在 /usr/local/hadoop-2.8.4/logs/hadoop-hadoop-namenode-cmaster.log 中,所以應該檢視這個字尾為 .log 的檔案;
-
每一次的啟動日誌都是追加在日誌檔案之後,所以得拉到最後面看,看下記錄的時間就知道了。
-
一般出錯的提示在最後面,也就是寫著 Fatal、Error 或者 Java Exception 的地方。
7、啟動
#start.all.sh
- (*) HDFS: 儲存資料
- (*) Yarn:執行計算
進行免密碼配置則不需要重複輸入密碼。
8、訪問
(1)命令列:jps
(2)Java API
(3)Web Console:
HDFS:http://192.168.245.11:50070
Yarn:http://192.168.245.11:8088
9、執行單詞計數程式例項
(1)進入bin目錄下:
#cd /usr/local/hadoop-2.8.4/bin
(2)偽分散式讀取的則是 HDFS 上的資料。要使用 HDFS,首先需要在 HDFS 中建立使用者目錄:
#hdfs dfs -mkdir /input
(3)向txt文字寫入資料:
#vi wfb.txt
(4)將寫好的文字上傳至HDFS建立的input目錄下
#hdfs dfs -put wfb.txt /input
(5)在HDFS上建立一個輸出目錄
#hdfs dfs -mkdir /outpur
(6)執行程式
#hadoop jar /usr/local/hadoop-2.8.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /input/wfb.txt /outpur/wc
(7)檢視執行結果
#hdfs dfs -ls /outpur/wc
如圖:檢視part-r-00000檔案
#hdfs dfs -cat /outpur/wc/part-r-00000
在執行的同時在Web yarn介面上可以檢視到正在執行的程式:
至此,Hadoop偽分佈部署成功,同時程式也執行成功。
在部署過程中真的需要步步為營,我也不是一遍做出來的,望大家不要忽略每一個細節。
有小夥伴不懂的地方可在下方留言。