以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頁面。
打開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