1. 程式人生 > >Hadoop偽分佈模式的搭建

Hadoop偽分佈模式的搭建

準備工作:

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偽分佈部署成功,同時程式也執行成功。

在部署過程中真的需要步步為營,我也不是一遍做出來的,望大家不要忽略每一個細節。

 

 

有小夥伴不懂的地方可在下方留言。