Hadoop完全分佈式模式安裝部署

在Linux上搭建Hadoop系列:1.Hadoop環境搭建流程圖2.搭建Hadoop單機模式3.搭建Hadoop僞分佈式模式4.搭建Hadoop完全分佈式模式

注:此教程皆是以範例講述的,當然你可以按照教程搭建一個與教程一樣的Hadoop環境,如果你想搭建一個與本教程有一些差異的Hadoop環境,這時請注意配置文件的參數可能不一樣以及文件路徑不一樣。

目錄

1.Hadoop集羣規劃與部署

(1)準備3臺虛擬機

(2)分別映射好三臺虛擬機的IP與主機名

(3)設置三臺機器時鐘同步

(4)設置三臺機器兩兩之間SSH密碼登錄

(5)修改主節點配置文件並遠程拷貝到從節點

1.在主節點上修改配置文件

2.將主節點的配置文件分發到兩個從節點

2.格式化HDFS並啓動Hadoop

(1)在主節點上格式化HDFS

(2)在主節點上啓動Hadoop

(3)在各節點上用JPS查看進程

(4)web界面上查看

3.在完全分佈式模式下運行Hadoop自帶示例程序

1.在完全分佈式模式下使用wordcount示例程序完成單詞統計

(1)準備數據

(2)運行wordcount程序

(3)查看運行結果

2.在完全分佈式模式下使用wordmean示例程序計算文件中單詞的平均長度

(1)準備數據:HDFS上的/input

  (2)運行wordmean程序

(3)查看結果

 


1.Hadoop集羣規劃與部署

一個完全分佈式模式Hadoop集羣至少由三臺機器構成,此處搭建一個三臺機器構成的小集羣。

一主二從結構
節點角色 虛擬機名 機器IP 主機名 運行進程
主節點 master 192.168.232.200 node

NameNode

ResourceManager

SecondaryNameNode

從節點 slave1 192.168.232.201 node1

DataNode

NodeManager

從節點 slave2 192.168.232.202 node2

DataNode

NodeManager

(1)準備3臺虛擬機

3臺虛擬機可以是已部署單機模式Hadoop,已部署僞分佈模式Hadoop,當然也可以是從零開始的基礎環境。

           克隆出三臺虛擬機

注:爲方便管理可以建一個文件夾(full-Distributed),將三臺虛擬機放入其中。

(2)分別映射好三臺虛擬機的IP與主機名

//1.修改IP避免衝突
vi /etc/sysconfig/network-scripts/ifcfg-ens33  //編輯網絡配置
systemctl restart network //重啓網絡服務

此處爲方便記憶,建議master節點IP尾數用200,slave1用201,slave2用202.

//2.修改主機名
hostname //查看主機名
hostnamectl set-hostname node //將主機名改爲node
hostnamectl set-hostname node1 //將主機名改爲node1
hostnamectl set-hostname node2 //將主機名改爲node2

master用node,slave1用node1,slave2用node2.

//3.映射IP與主機名
vi /etc/hosts

(3)設置三臺機器時鐘同步

完全分佈式模式由多臺主機組成,如果主機間時間差異較大,運行Hadoop的時候會出現問題,因此需要對每個節點配置時鐘同步。

採用NTP服務通過獲取網絡時間使集羣內不同主機的時間保持一致

此處選取阿里雲的時間服務器aliyun.com

//1.安裝NTP服務
yum install ntp
//2.手動同步時間
ntpdate -u ntp1.aliyun.com
//3.查看時間
date

(4)設置三臺機器兩兩之間SSH密碼登錄

在完全分佈式模式下,集羣內任意一臺主機可免密登錄集羣內所有主機,實現兩兩免密登錄。

若是以僞分佈模式爲基礎的機器則需要先刪除node,node1,node2主機上原有的.ssh目錄

然後分別在node,node1,node2主機上生成公鑰/私鑰密鑰對,再將公鑰發送給集羣內的所有主機。

//1.在各節點上刪除原有.ssh目錄,然後重新生成密鑰對
rm -rf /root/.ssh //刪除原有.ssh目錄
ssh-keygen -t rsa  //生成密鑰對
cd ~/.ssh  //進入.ssh目錄
ll  //查看密鑰對
//2.在各節點的.ssh目錄下將公鑰複製到node節點
cd ~  //進入根目錄
ssh-copy-id node  //複製公鑰到node節點
ssh-copy-id node1  //複製公鑰到node1節點
ssh-copy-id node2  //複製公鑰到node2節點
//3.查看node節點上的authorized_key文件
cd .ssh  //進入.ssh目錄
more authorized_keys
//4.將node節點上的authorized_keys文件遠程拷貝到node1,node2
scp authorized_keys node1:~/.ssh/authorized_keys //執行過程中輸入yes與密碼
scp authorized_keys node2:~/.ssh/authorized_keys //執行過程中輸入yes與密碼
//5.驗證免密登錄,注意查看提示符中主機名稱的變化
ssh node2 //免密登錄node2節點
exit //退出遠程登錄
ssh node1 //免密登錄node1節點
exit //退出遠程登錄

(5)修改主節點配置文件並遠程拷貝到從節點

概要:

1.在主節點上修改配置文件(以下皆以僞分佈式Hadoop爲基礎的虛擬機作爲示範)
核心配置文件
core-site.xml  修改

HDFS配置文件
hadoop-env.sh  不變
hdfs-site.xml  修改

MapReduce配置文件
mapred-env.sh  修改
mapred-site.xml 不變

Yarn配置文件
yarn-env.sh 修改
yarn-site.xml 修改

slaves 修改

1.在主節點上修改配置文件

核心配置文件

core-site.xml  修改

cd /export/server/hadoop-2.7.2/etc/hadoop
vi core-site.xml
//在<configuration></configuration>中插入<property></property>中的代碼。注意主機名與文件路徑是否是自己的

<configuration> 
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://node:9000</value>
       <description>HDFS的URI,設定namenode的主機名及端口</description>
</property>


<property>
        <name>hadoop.tmp.dir</name>
        <value>/export/server/tmp</value>
       <description>節點上本地的hadoop臨時文件夾,之前一定要先建立好</description>
</property>
</configuration>

HDFS配置文件

hadoop-env.sh  不變  //在僞分佈式已修改過

hdfs-site.xml  修改

vi hdfs-site.xml
//在<configuration></configuration>中插入<property></property>中的代碼。注意主機名與文件路徑是否是自己的
<configuration>
<property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/export/server/hdfs/name</value>
       <description>namenode上存儲hdfs名字空間元數據 </description>
</property>

<property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/export/server/hdfs/data</value>
        <description>datanode上數據塊的物理存儲位置</description>
</property>

<property>
        <name>dfs.replication</name>
        <value>2</value>
        <description>副本個數,默認是3,應小於datanode機器數量</description>
</property>

</configuration>

MapReduce配置文件

mapred-env.sh  修改

mapred-site.xml 不變

which java //查看java安裝路徑
vi mapred-env.sh
插入export JAVA_HOME=/bin以前的java安裝路徑

 

Yarn配置文件

yarn-env.sh  修改

yarn-site.xml  修改

which java //獲取java安裝路徑
vi yarn-env.sh
插入export JAVA_HOME=/bin以前的java安裝路徑
vi yarn-site.xml
//在<configuration></configuration>中插入<property></property>中的代碼。注意主機名是否是自己的
<configuration>
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node</value>
        <description>指定resourcemanager所在的hostname,
                               即指定yarn的老大即ResourceManger的地址
       </description>
</property>

<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
       <description>NodeManager上運行的附屬服務。
                             指定NodeManager獲取數據的方式是shuffle
                             需配置成mapreduce_shuffle,纔可運行MapReduce程序
       </description>
</property>
</configuration>

slaves 修改

slaves文件給出了Hadoop集羣的slave節點列表。啓動Hadoop時,系統總是根據當前slaves文件中slave節點名稱列表啓動集羣,不在列表中的Slave節點便不會被視爲計算節點。

vi slaves
插入各節點名

2.將主節點的配置文件分發到兩個從節點

分發到node1從節點
scp -r /export/server/hadoop-2.7.2/etc/hadoop node1:/export/server/hadoop-2.7.2/etc/
分發到node2從節點
scp -r /export/server/hadoop-2.7.2/etc/hadoop node2:/export/server/hadoop-2.7.2/etc/

2.格式化HDFS並啓動Hadoop

(1)在主節點上格式化HDFS

hdfs namenode -format

(2)在主節點上啓動Hadoop

start-all.sh //啓動所有進程
//或
start-dfs.sh
start-yarn.sh

(3)在各節點上用JPS查看進程

(4)web界面上查看

在瀏覽器輸入主機的IP地址:50070

3.在完全分佈式模式下運行Hadoop自帶示例程序

1.在完全分佈式模式下使用wordcount示例程序完成單詞統計

(1)準備數據

 

 

(2)運行wordcount程序

cd /export/server/hadoop-2.7.2/share/hadoop/mapreduce/
hadoop jar hadoop-mapreduce-examples-2.7.2.jar wordcount/input/wcoutput

(3)查看運行結果

hadoop fs -ls /wcoutput
hadoop fs -cat wcoutput/part*

2.在完全分佈式模式下使用wordmean示例程序計算文件中單詞的平均長度

(1)準備數據:HDFS上的/input

  (2)運行wordmean程序

hadoop jar hadoop-mapreduce-examples-2.7.2.jar wordmean/input/wmoutput

(3)查看結果

hadoop fs -ls /wmoutput
hadoop fs -cat /wmouput/part*
搭建完全分佈式模式Hadoop
準備3臺虛擬機 克隆
在3臺機器上分別設置IP和主機名並映射關係

vi /etc/sysconfig/network-scripts/ifcfg-ens33  //更改IP

hostnamectl set-hostname node  //更改主機名

vi /etc/hosts  //映射關係

設置3臺機器時鐘同步

yum install ntp //安裝ntp服務

ntpdate -u ntp1.aliyun.com //手動同步時間

配置3臺機器兩兩之間SSH免密登錄

ssh-keygen -t rsa  //獲取密鑰

ssh-copy-id node  //複製公鑰到node節點

修改主節點配置文件並遠程拷貝到從節點

vi 各配置文件

scp -r /export/server/hadoop-2.7.2/etc/hadoop  

node1:/export/server/hadoop-2.7.2/etc/

格式化HDFS並啓動Hadoop

hdfs namenode -format  //格式化HDFS

start-all.sh //啓動Hadoop所有進程

jps //查看進程

完全分佈式模式運行Hadoop自帶示例程序 hadoop jar hadoop-mapreduce-examples-2.7.2.jar wordcount/input/wcoutput

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章