一、准备工作
1.安装centos7虚拟机
2.安装VMTools
3.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
4.设置静态ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改如下:
DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
NAME="eth0"
IPADDR=192.168.5.101
PREFIX=24
GATEWAY=192.168.5.2
DNS1=192.168.5.2
5.改主机名
hostnamectl set-hostname hadoop102
6.配置/etc/hosts
vim /etc/hosts
修改如下:
192.168.5.100 hadoop100
192.168.5.101 hadoop101
192.168.5.102 hadoop102
192.168.5.103 hadoop103
192.168.5.104 hadoop104
192.168.5.105 hadoop105
192.168.5.106 hadoop106
192.168.5.107 hadoop107
192.168.5.108 hadoop108
192.168.5.109 hadoop109
7.建用户
useradd atguigu
passwd atguigu
8. 配置这个用户为sudoers
visudo
在root ALL=(ALL) ALL 一行下面添加:
atguigu ALL=(ALL) NOPASSWD:ALL
保存时wq保存
9.创建文件夹并赋权
在/opt目录下创建两个文件夹module和software,并把所有权赋给atguigu
mkdir /opt/module /opt/software
chown atguigu:atguigu /opt/module /opt/software
10.关机,快照,克隆
克隆三台配置相同的虚拟机
二、集群配置
从这里开始要以普通用户登陆
1.克隆的三台虚拟机改ip
分别改为192.168.3.102,192.168.3.103,192.168.3.104
2.搞一个分发脚本
cd ~
vim xsync
内容如下:
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
赋予执行权限:chmod +x xsync
拷贝此文件到/bin目录,以便可以在任意目录执行:sudo cp xsync /bin
将此文件分发到所有机器:sudo xsync /bin/xsync
3.配置免密登陆
生成密钥对:
ssh-keygen -t rsa 三次回车
发送公钥到目标机器:
ssh-copy-id hadoop103 输入一次密码
ssh-copy-id hadoop104 输入一次密码
分别ssh登陆一下所有虚拟机进行测试:
ssh hadoop103
exit
ssh hadoop104
exit
把/home/atguigu/.ssh 文件夹发送到集群所有服务器:
xsync /home/atguigu/.ssh
4.配置环境并分发
在一台机器上安装Java和Hadoop,并配置环境变量,并分发到集群其他机器
4.1.拷贝jdk和hadoop文件到/opt/software
4.2.解压到/opt/module下
tar -zxvf jdk1.8.0_144.tar.gz -C /opt/module
tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module
4.3.配置环境
在/etc/profile.d文件夹下新建一个environment.sh文件,内容如下:
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
4.4.将jdk和hadoop同步到集群所有机器
cd /opt/module/
xsync hadoop-2.7.2 jdk1.8.0_144
4.5.将这个配置文件同步到集群所有机器
sudo xsync /etc/profile.d/environment.sh
5.配置hadoop并分发
5.1.配置Core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
5.2.配置hdfs-site.xml
<!-- 数据的副本数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:50090</value>
</property>
5.3.配置yarn-site.xml
<!-- Site specific YARN configuration properties -->
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
5.4.配置mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop104:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop104:19888</value>
</property>
5.5.配置Slaves
vim slaves
hadoop102
hadoop103
hadoop104
5.6.分发到集群所有机器
xsync /opt/module/hadoop-2.7.2/etc
三、启动hadoop
1.格式化Namenode
在hadoop102执行:hdfs namenode -format
2.启动hdfs
start-dfs.sh
3.启动yarn
在hadoop102执行:start-yarn.sh
四、测试集群
上传文件到hadoop:
hadoop fs -put /home/test_1.txt /
可以在控制台看到文件:
五、关闭集群
在hadoop102执行:stop-dfs.sh
在hadoop103执行:stop-yarn.sh
六、注意
1.如果集群出现问题
停服务->删文件->格式化->启动
1.1.停服务
stop-dfs.sh
stop-yarn.sh
1.2.删文件
所有机器都要执行
cd $HADOOP_HOME
rm -rf data logs
1.3.格式化
hdfs namenode -format
1.4.启动集群
start-dfs.sh
start-yarn.sh
2.卸载openjdk
如果自带openjdk,需要卸载
rpm -qa | grep java | xargs sudo rpm -e --nodeps
