Hadoop环境搭建非高可用
一、环境描述
-
VMware15(12/14也可以)
-
Linux系统:3台CentOS6.8(三台可以相互ping通)
-
连接工具:MobaXterm
-
jdk:java1.8.0_131
-
hadoop:hadoop2.7.2
-
节点搭建:
bigdata01 bigdata02 bigdata03 NameNode – secondaryNameNode DataNode DataNode DataNode – ResourceManager – NodeManager NodeManager NodeManager
二、环境搭建
1.修改主机名
vim /etc/sysconfig/network
将三台机子的主机名分别修改为bigdata01、bigdata02、bigdata03
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GmtEVWoB-1602594161767)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013194721930.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3IFbALzK-1602594161771)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013194744617.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-npZqbA9l-1602594161775)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013194801566.png)]
修改完成后重启
2.配置IP映射
三台机子都需要配置
vim /etc/hosts
在文件末尾添加如下:
192.168.17.101 bigdata01
192.168.17.102 bigdata02
192.168.17.103 bigdata03
试着通过ping其他两台的主机名,测试是否成功
3.创建用户
三台都创建一个普通用户ruin,命令:useradd ruin
4.给新创建的用户root权限(方便操作,实际应用中不会那么做)
在root用户下编辑/etc/sudoers文件,在root下加入如下一行:
vim /etc/sudoers
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u96W3sjV-1602594161780)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201012202147264.png)]
5.创建软件存放目录
在/opt目录下新建module和software目录,software目录存放压缩包,module存放解压应用
mkdir /opt/software
mkdir /opt/module
创建后修改两个目录的所属者及所属组为上面创建的用户
chown -R /opt/module
chown -R /opt/module
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WfbK1JDx-1602594161783)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013184357513.png)]
6.上传应用压缩包
切换到所创建的普通用户(如果不切换,那么上传和解压的包会属于root用户,不利于操作)
su - ruin
将jdk和hadoop的压缩包上传至/opt/software目录中,用MobaXterm可以直接拖入左侧目录索引即可,如果用的其他连接工具也可用xftp进行上传
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fqq4yeeE-1602594161787)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013185035537.png)]
7.解压然间包
在software目录下将jdk和hadoop包解压到/opt/module目录下
tar -zxvf jdk-8u131-linux-x64.tar.gz -C ../module/
tar -zxvf hadoop-2.7.2.tar.gz -C ../module/
解压完成后
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CUG5EJm1-1602594161789)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013185553552.png)]
8.配置环境变量
编辑/etc/profile文件,对java和hadoop配置环境变量,在文件末尾加上如下三行:
sudo vim /etc/profile
export JAVA_HOME=/opt/module/jdk1.8.0_131
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
添加完成环境变量后source一下/etc/profice文件,让环境变量生效。
source /etc/profile
验证环境变量是否生效
java -version
hadoop
出现如下则环境变量配置成功
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tL838jiC-1602594161791)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013191104337.png)]
9.配置Hadoop集群
进入/opt/module/hadoop-2.7.2/etc/hadoop目录
cd /opt/module/hadoop-2.7.2/etc/hadoop
编辑core-site.xml文件如下:
vim core-site.xml
<configuration>
<!--指定HDFS中NameNode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata01:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
</configuration>
编辑hdfs-site.xml文件如下:
vim hdfs-site.xml
<configuration>
<!--文件备份数量-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--指定Hadoop辅助名称节点主机配置-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>bigdata03:50090</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>bigdata01:50070</value>
</property>
</configuration>
编辑hadoop-env.sh文件,将第25行删除注释,将等号后修改为java jdk路径
vim hadoop-env.sh
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F4RwynTY-1602594161794)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013191715465.png)]
编辑yarn-site.xml文件,如下:
vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!--reducer获取数据的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定YARN的reducermanager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata02</value>
</property>
<!--开启日志聚集功能-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!--日志保留时间-->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
编辑yarn-env.sh文件,将第23行删除注释,将等号后修改为java jdk路径
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5dPuZYLR-1602594161798)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013192033423.png)]
编辑mapred-site.xml文件,该文件本身是没有的,需要我们复制修改一份再编辑
cp mapred-site.xml.template mapred-site.xml
复制并改名好后编辑文件
vim mapred-site.xml
<configuration>
<!--指定MR运行在yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--历史服务器端地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>bigdata01:10020</value>
</property>
<!--历史服务器Web端地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>bigdata01:19888</value>
</property>
</configuration>
配置slaves
vim slaves
编辑内容如下:
bigdata01
bigdata02
bigdata03
10.配置免密登录
为了方便,我这里只在第一台上进行免密,然后直接将.ssh目录拷贝到另外两台上
ssh-keygen -t rsa
如下敲完回车即可:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UWicQctj-1602594161800)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013193927477.png)]
在本机上记录可访问的公钥
ssh-copy-id bigdata01
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rWfbXMyW-1602594161802)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013195050987.png)]
将.ssh目录scp到其他两台的/home/ruin/目录下
scp -r ~/.ssh/ ruin@bigdata02:~/
scp -r ~/.ssh/ ruin@bigdata03:~/
分别在每台服务器上免密登录其他两台,测试免密登录是否成功,语法ssh 用户名@主机名
11.分发Hadoop配置文件
通过脚本将Hadoop配置文件分发到另外两台服务器上(利用scp命令也可以)
在/home/ruin/目录下新建bin目录
mkdir /home/ruin/bin
新建文件xsync文件,并编辑内容如下:
#!/bin/bash
#获取输入参数个数,如果为r零则直接退出
pcount=$#
if((pcount==0));then
echo "no args";
exit;
fi
#获取文件名
p1=$1
fname=`basename $p1`
echo fname=$fname
#获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#获取当前用户名称
user=`whoami`
#循环
for((host=2;host<4;host++));do
echo ---------bigdata0$host---------
rsync -av $pdir/$fname $user@bigdata0$host:$pdir
done
给xsync文件添加可执行权限
chmod 764 /home/ruin/xsync
执行xsync命令分发Hadoop配置文件
xsync /opt/module/hadoop-2.7.2/etc/hadoop/
分发完成后最好去其他两台的hadoop目录下查看是否成功
12.启动集群
a.第一次启动集群时,需要格式化namenode
hadoop namenode -format
注:只是第一次启动才需要格式化namenode,若以后需要格式化,需要先将/opt/module/hadoop-2.7.2/data/和/opt/module/hadoop-2.7.2/logs/目录删除后再进行格式化。
b.在bigdata01上启动hdfs
start-dfs.sh
c.在bigdata02上启动yarn
start-yarn.sh
查看启动后的节点
bigdata01:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0jLBdOmS-1602594161805)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013202022368.png)]
bigdata02:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u4c5fqkp-1602594161808)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013202041274.png)]
bigdata03:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SLLukchy-1602594161810)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013202105785.png)]
Web端查看namenode
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cTiIc9cm-1602594161813)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013202215123.png)]
Web端查看secondarynamenode
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7NwJX8Dl-1602594161815)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013202257081.png)]
Web端查看yarn
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-05gqy7QV-1602594161818)(C:\Users\Ruin\AppData\Roaming\Typora\typora-user-images\image-20201013202322000.png)]
Hadoop完全分布式集群搭建完成
13.停止集群
在bigdata01上停止HDFS
stop-dfs.sh
在bigdata02上停止yarn
stop-yarn.sh
14.集群时间同步
可查看博客https://blog.csdn.net/fengjinghong/article/details/108986115
[外链图片转存中…(img-cTiIc9cm-1602594161813)]
Web端查看secondarynamenode
[外链图片转存中…(img-7NwJX8Dl-1602594161815)]
Web端查看yarn
[外链图片转存中…(img-05gqy7QV-1602594161818)]
Hadoop完全分布式集群搭建完成
13.停止集群
在bigdata01上停止HDFS
stop-dfs.sh
在bigdata02上停止yarn
stop-yarn.sh
14.集群时间同步
可查看博客https://blog.csdn.net/fengjinghong/article/details/108986115