以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/ root@192.168.23.212:/root/
[root@centos ~]# scp -r .ssh/ root@192.168.23.213:/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