Hadoop分佈式安裝

Hadoop分佈式安裝

1. 準備環境

三臺虛擬機,IP分別爲192.168.153.128192.168.153.129192.168.153.130

節點
192.168.153.128 NameNode DataNode NodeManager
192.168.153.129 SecondaryNameNode DataNode NodeManager
192.168.153.130 DataNode ResourceManager NodeManager

1.1 配置主機名

在每臺機器上設置主機名。192.168.153.128主機名配置爲“master”,其他兩臺分別配置爲“slave01”、“slave02”。

vi /etc/sysconfig/network

輸入以下內容

HOSTNAME=master

執行重啓

reboot

1.2 配置host文件

我們希望三臺機器之間能夠互相通過主機名訪問,而不是每次都要輸入IP。

192.168.153.128服務器上執行如下操作

vi /etc/hosts

輸入如下內容的第3-5行

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.153.128 master
192.168.153.129 slave01
192.168.153.130 slave02

保存成功後,將配置文件複製到另外兩臺服務器

scp /etc/hosts root@slave01:/etc/
scp /etc/hosts root@slave02:/etc/

1.3 設置主機之間SSH免密

在所有的主機上都執行以下操作。

[root@master ~]# ssh-keygen -t rsa
[root@master ~]# ssh-copy-id master
[root@master ~]# ssh-copy-id slave01
[root@master ~]# ssh-copy-id slave02

2. 安裝Hadoop

master上安裝Hadoop,安裝方式見文章Hadoop僞分佈式安裝

2.1. 配置Hadoop

這些配置都是基於僞分佈式安裝完成後,對集羣模式下配置文件的修改。

cd /usr/local/hadoop/etc/hadoop
  1. 修改core-site.xml,指定NameNode
vi core-site.xml
<configuration>
    # 配置HDFS的地址
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:8020</value>
    </property>
    # 配置臨時目錄,比如HDFS的NameNode數據默認都存放這個目錄下
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/data/tmp</value>
    </property>
</configuration>
  1. 修改hdfs-site.xml,設置副本數和secondarynamenode
vi hdfs-site.xml
<configuration>
# 配置的是HDFS存儲時的備份數量
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
# 配置sencodarynamenode
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave01:8021</value>
</configuration>
  1. 修改slaves,配置所有節點
vi slaves
master
slave01
slave02
  1. 修改yarn-site.xml,配置resourcemanager所在節點
vi yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
# 配置了yarn的默認混洗方式,選擇爲mapreduce的默認混洗算法
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    # 指定了Resourcemanager運行在哪個節點上,注意不能寫localhost,否則瀏覽器訪問不到管理界面
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>slave02</value>
    </property>
</configuration>

2.2. 分發到其他兩個節點

scp -r /usr/local/hadoop root@slave01:/usr/local
scp -r /usr/local/hadoop root@slave02:/usr/local

2.3. 啓動集羣

  1. 在master節點上格式化namenode

    hdfs namenode -format
    
  2. 啓動hdfs

    cd /usr/local/hadoop/sbin
    start-dfs.sh
    
  3. 啓動yarn,只能在resourcemanager所在服務器上啓動yarn

    [root@slave02 sbin]# start-yarn.sh
    

3. 異常情況

3.1. datanode無法啓動

  1. 停止服務

    cd /usr/local/hadoop/sbin
    stop-all.sh
    
  2. 到每個節點上刪除數據目錄和日誌目錄

    cd /usr/local/hadoop
    rm -rf data
    rm -rf logs
    
  3. 重新啓動hdfs和yarn。

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