CentOS分佈式部署Hadoop

    以3臺CentOS7.3機器爲例,分佈式部署Hadoop 2.8.5。

一、準備工作

1、基礎環境配置

準備3臺機器,安裝CentOS7.3。節點計劃如下:

192.168.23.211  hadoop.master   NameNode,DataNode,ResourceManager,NodeManager

192.168.23.212  hadoop.slaver1  SecondaryNameNode,DataNode,NodeManager

192.168.23.213  hadoop.slaver2  DataNode,NodeManager

3臺均配置好JDK環境(jdk安裝路徑相同),關閉防火牆。

2、關閉selinux

[root@centos]vim /etc/selinux/config
#bled This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

3、計算機重命名

查看主機名

[root@centos /]# hostnamectl status

修改主機名:

主節點計算機名:hadoop.master,其他節點計算機名分別爲:hadoop.slaver1和hadoop.slaver2

[root@centos /]# hostnamectl set-hostname hadoop.master

4、 修改hosts

分別修改3臺主機的hosts

[root@centos /]#vim /etc/hosts

在最後加上行以下3行IP和主機名映射:

192.168.23.211 hadoop.master

192.168.23.212 hadoop.slaver1

192.168.23.213 hadoop.slaver2

5、SSH免密碼登錄

ssh免密設置運行三臺機器互信訪問,在hadoop.master節點

[root@centos hadoop]# cd /root
[root@centos ~]# ssh-keygen -t rsa
[root@centos ~]# cat .ssh/id_rsa.pub >> .ssh/authorized_keys

在/root目錄下生成.ssh隱藏文件夾,將.ssh文件夾拷貝到其他2臺機器,完成局域網多機器互信訪問。

[root@centos ~]# scp -r .ssh/ [email protected]:/root/
[root@centos ~]# scp -r .ssh/ [email protected]:/root/

通過ssh 主機名可驗證互信訪問,以上可配置好一臺機器,在克隆出其他2個機器。

配置完成後重啓3臺主機。

二、主節點上配置Hadoop

在主節點hadoop.master上配置hadoop。

1、解壓縮Hadoop

將hadoop解壓到/data目錄:

[root@centos home]# tar –zxvf hadoop-2.8.5.tar.gz -C /data/soft/

配置hadoop環境變量:

[root@centos /]# vim /etc/profile
#set hadoop environment
export HADOOP_HOME=/data/soft/hadoop-2.8.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

讓環境變量生效,命令行執行:

[root@centos /]# source /etc/profile

以下主要配置slaves,hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml等6個配置文件。

2、編輯slaves

進入/data/soft/hadoop-2.8.5/etc/hadoop目錄,編輯slaves文件,刪除缺省的localhost,將3臺機器的主機名添加到其中:

[root@centos hadoop-2.8.5]# vim etc/hadoop/slaves

內容爲:

hadoop.master

hadoop.slaver1

hadoop.slaver2

3、配置core-site.xml 

進入/data/soft/hadoop-2.8.5/etc/hadoop目錄,編輯core-site.xml ,內容如下:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop.master:9000</value>
        <description>指定HDFS(namenode)的訪問地址</description>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/data/hadoop/tmp</value>
        <description>hdfs臨時文件存儲路徑</description>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>4096</value>
        <description>hdfs流文件緩存大小,默認4KB</description>
    </property>
</configuration>

4、配置hdfs-site.xml 

進入/data/soft/hadoop-2.8.5/etc/hadoop目錄,編輯hdfs-site.xml 文件,內容如下:

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/data/hadoop/dfs/name</value>
        <description>hdfs元數據的物理存儲位置 </description>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/data/hadoop/dfs/data</value>
        <description>hdfs數據的物理存儲位置</description>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
        <description>設置hdfs副本數量,默認爲3</description>
    </property>
   <property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop.master:50070</value>
        <description>namenode地址</description>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop.slaver1:50090</value>
        <description>secondary namenode地址</description>
    </property>
    <property>
        <name>dfs.blocksize</name>
        <value>67108864</value>
        <description>block默認128兆(134217728),這裏設置爲64兆(67108864)</description>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
        <description>是否啓用hdfs權限</description>
    </property>
</configuration>

5.配置yarn(mapred-site.xml)

         Apache Hadoop YARN (Yet Another Resource Negotiator,另一種資源協調者)是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統,可爲上層應用提供統一的資源管理和調度,它的引入爲集羣在利用率、資源統一管理和數據共享等方面帶來了巨大好處。

        配置mapred-site.xml。注意,hadoop裏面默認是mapred-site.xml.template 文件,如果配置yarn,把mapred-site.xml.template   重命名爲mapred-site.xml 。如果不啓動yarn,把重命名還原。

       進入/data/soft/hadoop-2.8.5/etc/hadoop目錄

[root@centos hadoop]# cp mapred-site.xml.template mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        <description>啓用yarn作爲資源管理框架</description>
    </property>
    <property> 
        <name>mapreduce.jobhistory.address</name> 
        <value>hadoop.master:10020</value> 
        <description>歷史服務的通信地址</description>
    </property>
    <property> 
        <name>mapreduce.jobhistory.webapp.address</name> 
        <value>hadoop.master:19888</value> 
        <description>歷史服務的Web UI地址</description>
    </property>
</configuration>

          配置yarn-site.xml

<configuration>
    <property> 
        <name>yarn.resourcemanager.hostname</name> 
        <value>hadoop.master</value> 
        <description>resourcemanager主機名</dedication>
    </property> 
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        <description>配置MapReduce的Shuffle</description>
    </property>
</configuration>

6、配置環境文件

配置hadoop-env.sh、yarn-env.sh、mapred-env.sh的JAVA_HOME,以hadoop-env.sh爲例:

[root@centos hadoop-2.8.5]# vim etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_151

7、複製hadoop到其他節點

新建上邊配置所用到的目錄:

[root@centos hadoop-2.8.5]# mkdir -p /data/hadoop/tmp
[root@centos hadoop-2.8.5]# mkdir -p /data/hadoop/dfs/name
[root@centos hadoop-2.8.5]# mkdir -p /data/hadoop/dfs/data

複製hadoop相關配置到hadoop.slaver1和hadoop.slaver2節點上。

[root@centos hadoop-2.8.5]# cd /data/
[root@centos data]# scp -r soft/hadoop-2.8.5/ hadoop.slaver1:/data/soft/
[root@centos data]# scp -r hadoop/ hadoop.slaver1:/data/hadoop/
[root@centos data]# scp -r soft/hadoop-2.8.5/ hadoop.slaver2:/data/soft/
[root@centos data]# scp -r hadoop/ hadoop.slaver2:/data/hadoop/

三、啓動Hadoop

1、啓動HDFS

進入主節點(hadoop.master),第一次啓動hdfs需要格式化,之後啓動就不需要的:

[root@centos /]# hdfs namenode -format

啓動命令:

[root@centos /]# start-dfs.sh

集羣啓動後,在覽器輸入網址:http://192.168.23.211:50070,打開hadoop的dfs頁面。

hdfs

打開SecondaryNameNode頁面:

在hadoop.master節點用jps命令查看啓動進程:

[root@centos /]# jps
3969 NameNode
4389 Jps
4071 DataNode

在hadoop.slaver1節點用jps命令查看啓動進程:

[root@centos /]# jps
62550 SecondaryNameNode
62681 DataNode
62442 Jps

在hadoop.slaver2節點用jps命令查看啓動進程:

[root@centos /]# jps
1978 DataNode
3036 Jps

停止命令:

[root@centos /]# stop-dfs.sh

2、啓動停止yarn

進入主節點(hadoop.master),啓動yarn,啓動了resourcemanager和nodemanager進程。

[root@centos /]# start-yarn.sh

瀏覽器輸入:http://192.168.23.211:8088/  (8088是默認端口,如果端口占用,先把佔用的端口殺掉 ),打開Hadoop集羣頁面。

停止yarn:

[root@centos /]# stop-yarn.sh

3、啓動停止集羣(YARN、HDFS、MapReduce)

進入主節點(hadoop.master):

[root@centos /]# start-all.sh
[root@centos /]# stop-all.sh

 

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