一、集群环境说明
 1、用VMware安装3台Centos7虚拟机
 2、虚拟机配置:2C,2G内存,50G存储
 3、集群架构设计
 从表格中,可以看出,Hadoop集群,主要有2个模块服务,一个是HDFS服务,一个是YARN服务

 二、搭建集群
 
 1、安装3台Centos7虚拟机
 安装教程:VMware安装Centos7详细教程及初始化配置
 三台虚拟机固定IP:192.168.31.110、192.168.31.111、192.168.31.112
 三台主机的hostname分别为,hadoop-master,hadoop-slave1,hadoop-slave2
因为3条机器相关配置类似,所以我们先在一台机器上操作完,然后将机器克隆2台即可。
克隆第一台机器master
首先从虚拟机快照中创建一个克隆,我们将先在这台机器(hadoop-master)上操作。








以下均在root用户下操作
修改主机名
vim /etc/hostnamehadoop-master
修改hosts文件
vim /etc/hosts192.168.126.110	hadoop-master
192.168.126.111	hadoop-slave1
192.168.126.112	hadoop-slave2
 修改ip地址
 
vim /etc/sysconfig/network-scripts/ifcfg-ens33
 创建账号
 
 创建hadoop账号,并设置密码为hadoop
useradd hadoop
echo hadoop|passwd --stdin hadoop;
 配置hadoop账号root权限
visudo末尾添加
hadoop    ALL=(ALL)       NOPASSWD:ALL
 安装hadoop
 
hadoop 3.1.3下载地址:Apache Hadoop
创建两个目录并赋予权限,进入software目录,并将hadoop压缩包上传上去
mkdir /opt/module
mkdir /opt/software
chown hadoop:hadoop /opt/module
chown hadoop:hadoop /opt/software
cd /opt/software切换到hadoop用户,并解压
su hadoop
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
回到root用户,配置环境变量
exit
cd /etc/profile.d/vim hadoop.sh#!/bin/bash
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin重新加载环境变量,这样新配置的hadoop环境变量才会生效
source /etc/profile
检查hadoop安装是否成
hadoop version

hadoop的4个自定义配置文件及workers配置
切换到hadoop用户,进入到hadoop安装目录
su hadoop
cd /opt/module/hadoop-3.1.3core-site.xml
vim etc/hadoop/core-site.xml
配置内容
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration>
<property><name>fs.defaultFS</name><value>hdfs://hadoop-master:8020</value><description>指定 NameNode 的地址</description>
</property><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-3.1.3/data</value><description>指定 Hadoop 数据的存储目录</description>
</property>
</configuration>
hdfs-site.xml
vim etc/hadoop/hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property><name>dfs.namenode.http-address</name><value>hadoop-master:9870</value><description>nn web 端访问地址</description>
</property><property><name>dfs.namenode.secondary.http-address</name><value>hadoop-slave2:9868</value><description>2 nn web 端访问地址</description>
</property>
</configuration>
mapred-site.xml
vim etc/hadoop/mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>mapreduce.framework.name</name><value>yarn</value><description></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 端地址</description></property>
</configuration>yarn-site.xml
vim etc/hadoop/yarn-site.xml
<?xml version="1.0"?>
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value><description>指定 MR 走 shuffle</description></property><property><name>yarn.resourcemanager.hostname</name><value>hadoop-slave1</value><description>指定 ResourceManager 的地址</description></property> <property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value><description>系统环境变量的继承</description></property><property><name>yarn.log-aggregation-enable</name><value>true</value><description>开启日志聚集功能</description></property><property><description>设置日志聚集服务器地址</description><name>yarn.log.server.url</name><value>http://hadoop-master:19888/jobhistory/logs</value></property><property><description>设置日志保留时间为 7 天, -1 表示不保存日志</description><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property></configuration>
配置workers
vim etc/hadoop/workers
hadoop-master
hadoop-slave1
hadoop-slave2
克隆slave
关闭master,克隆slave1和slave2,并开机

分别修改主机名和ip地址
hadoop-slave1:192.168.126.111
hadoop-slave2:192.168.126.112
vim /etc/hostnamehadoop-slave1vim /etc/sysconfig/network-scripts/ifcfg-ens33
slave2类同
配置ssh免密
登录master
配置免密登录slave1,slave2
su hadoop
cd							进入当前账号家目录
ssh-keygen					连续三次回车	ssh-copy-id hadoop-master	复制公钥到master服务器
ssh-copy-id hadoop-slave1	复制公钥到slave1服务器
ssh-copy-id hadoop-slave2	复制公钥到slave2服务器
分别登录slave1,slave2执行以上操作
初始化启动
以下在master上执行
cd /opt/module/hadoop-3.1.3
hdfs namenode -format

启动hadoop
启动HDFS服务
cd /opt/module/hadoop-3.1.3
sbin/start-dfs.sh
访问web页:http://192.168.126.110:9870

启动YARN服务
登录slave1
ssh hadoop-slave1
cd /opt/module/hadoop-3.1.3
sbin/start-yarn.sh
访问页面:http://192.168.126.111:8088/

检查各个集群节点服务
jps集群启动与停止
在master上
cd /opt/module/hadoop-3.1.3
sbin/start-dfs.sh
sbin/stop-dfs.sh
在slave1上
cd /opt/module/hadoop-3.1.3
sbin/start-yarn.sh
sbin/stop-yarn.sh
测试
mkdir /opt/module/hadoop-3.1.3/wcinput
cd /opt/module/hadoop-3.1.3/wcinput
vim word.txt
ss ss
cls cls
banzhang
bobo
yangge
hadoop fs -mkdir /input	
hadoop fs -put $HADOOP_HOME/wcinput/word.txt /input	
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output部分内容参考连接:https://blog.csdn.net/Brave_heart4pzj/article/details/138314373