Hadoop完全分布式集群搭建

Hadoop环境搭建非高可用

一、环境描述

  • VMware15(12/14也可以)

  • Linux系统:3台CentOS6.8(三台可以相互ping通)

  • 连接工具:MobaXterm

  • jdk:java1.8.0_131

  • hadoop:hadoop2.7.2

  • 节点搭建:

    bigdata01bigdata02bigdata03
    NameNodesecondaryNameNode
    DataNodeDataNodeDataNode
    ResourceManager
    NodeManagerNodeManagerNodeManager

二、环境搭建

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值