0


Hadoop高可用搭建(一)


创建多台虚拟机

创建虚拟机教程

这里以三台虚拟机为例 ant151 / ant152 / ant153

修改计算机名称

三台虚拟机修改名称

[root@localhost ~]# hostnamectl set-hostname ant151

[root@localhost ~]# hostnamectl set-hostname ant152

[root@localhost ~]# hostnamectl set-hostname ant153

快速生效

[root@localhost ~]# bash

修改网络信息

vim /etc/sysconfig/network-scripts/ifcfg-ens33
4 BOOTPROTO=static
15 ONBOOT=yes
16 IPADDR=192.168.78.*
17 GATEWAY=192.168.78.2
18 NETMASK=255.255.255.0
19 DNS1=8.8.8.8

重启网络服务

两种方法:

systemctl restart network.service
service network restart

关闭和禁用每台机的防火墙

[root@ant151 ~]# systemctl stop firewalld
[root@ant151 ~]# systemctl disable firewalld

同步时间

同步时间的下面操作三台机都需要

安装ntpdate

[root@ant151 soft]# yum install -y ntpdate

定时更新时间

[root@ant151 soft]# crontab -e

每五分钟更新一次时间

*/5 * * * * /usr/sbin/ntpdate -u time.windows.com

启动定时任务

[root@ant151 soft]# service crond start

设置集群中每台机器的/etc/hosts

[root@ant151 opt]# vim /etc/hosts

下面加入

IP地址 计算机名称

例如:

192.168.111.111 ant151
192.168.111.111 ant152
192.168.111.111 ant153

把hosts拷贝发送到每一台虚拟机

[root@ant151 opt]# scp /etc/hosts root@ant152:/etc/
[root@ant151 opt]# scp /etc/hosts root@ant153:/etc/

配置免密登陆

[root@ant151 ~]# ssh-keygen -t rsa -P ''
[root@ant151 ~]# cd .ssh/

把id_rsa.pub追加到au...下面
[root@ant151 .ssh]# cat id_rsa.pub >> ./authorized_keys

将本机的公钥拷贝到要免密登陆的目标机器

[root@ant151 .ssh]# ssh-copy-id -i ./id_rsa.pub -p22 root@ant151
[root@ant151 .ssh]# ssh-copy-id -i ./id_rsa.pub -p22 root@ant152
[root@ant151 .ssh]# ssh-copy-id -i ./id_rsa.pub -p22 root@ant153

每一台机器都要执行

测试免密登陆是否成功

[root@ant151 .ssh]# ssh -p22 root@ant151
[root@ant151 .ssh]# ssh -p22 root@ant152
[root@ant151 .ssh]# ssh -p22 root@ant153

在ant151机器运行自动安装jdk脚本autoinstall.sh

教程

[root@ant153 shellfile]# ./autoinstall.sh

刷新资源

[root@ant153 shellfile]# source /etc/profile

[root@ant153 shellfile]# javac

把JDK180发送到每一台虚拟机上面

[root@ant151 opt]# scp -r ./soft/jdk180/ root@ant152:/opt/soft/
[root@ant151 opt]# scp -r ./soft/jdk180/ root@ant153:/opt/soft/

把JDK环境变量拷贝到每一台虚拟机

[root@ant151 zk345]# scp /etc/profile root@ant152:/etc/

[root@ant151 zk345]# scp /etc/profile root@ant153:/etc/

把zookeeper拷贝到虚拟机里面

可用xftp直接拉进去

解压zookeeper

[root@ant151 install]# tar -zxf zookeeper-3.4.5-cdh5.14.2.tar.gz -C ../soft

改名zookeeper

[root@ant151 install]# mv /opt/soft/zookeeper-3.4.5-cdh5.14.2/ /opt/soft/zk345
可以不改,改名便于操作

进入conf

[root@ant151 soft]# cd /opt/soft/zk345/conf

把zoo_sample.cfg,copy一份改名为zoo.cfg

修改zoo_cfg

[root@ant151 conf]# vim ./zoo.cfg

:set nu查看行号

修改12行用于存放数据

在最后加上server.0=ant151:22887:3387

创建目录

[root@ant151 conf]# mkdir /opt/soft/zk345/datas

设置标识

在datas里面创建myid用于标识便于找到ant151这台机器

[root@ant151 conf]# cd /opt/soft/zk345/datas/

[root@ant151 datas]# echo "0" > myid

配置环境变量

[root@ant151 zk345]# vim /etc/profile

把环境变量拷贝到其余机器

[root@ant151 zk345]# scp /etc/profile root@ant152:/etc/

[root@ant151 zk345]# scp /etc/profile root@ant153:/etc/

#ZK
export ZOOKEEPER_HOME=/opt/soft/zk345
export PATH=$PATH:$ZOOKEEPER_HOME/bin

从 解压 开始到 配置环境变量 的操可提取到一个脚本里面直接操作

操作方法类似JDK 教程


#! /bin/bash
echo 'auto install begining....'

#global var
zk=true

hostname=`hostname`

if  [ "$zk" = true ];then
    echo 'zookeeper install  set true'
    echo 'setup zookeeper-3.4.5-cdh5.14.2.tar.gz'
    tar -zxf /opt/install/zookeeper-3.4.5-cdh5.14.2.tar.gz -C /opt/soft/
    mv /opt/soft/zookeeper-3.4.5-cdh5.14.2 /opt/soft/zk345
    cp /opt/soft/zk345/conf/zoo_sample.cfg  /opt/soft/zk345/conf/zoo.cfg
    mkdir -p  /opt/soft/zk345/datas
    sed -i '12c dataDir=/tmp/zookeeper/datas'   /opt/soft/zk345/conf/zoo.cfg
    echo "server.0='$hostname':2287:3387" >> /opt/soft/zk345/conf/zoo.cfg
    echo "0" > /opt/soft/zk345/datas/myid
    sed -i '73a\export PATH=$PATH:$ZOOKEEPER_HOME/bin' /etc/profile
    sed -i '73a\export ZOOKEEPER_HOME=/opt/soft/zk345' /etc/profile
    sed -i '73a\#ZK' /etc/profile
    echo 'setup zookeeper success!!!'
fi

TIP:

如果start出现下面问题

只需 kill 掉这个process即可

[root@ant151 soft]# kill -9 92810

再次启动则会正常

启动zookeeper

[root@ant151 zk345]# ./bin/zkServer.sh start

查看zookeeper状态

[root@ant151 zk345]# ./bin/zkServer.sh status

停止zookeeper

[root@ant151 soft]# zkServer.sh stop

搭建zookeeper集群

[root@ant151 zk345]# vim ./conf/zoo.cfg

在最下面加上

server.0=ant151:2287:3387
server.1=ant152:2287:3387
server.2=ant153:2287:3387

这里只能是奇数,不能是偶数,因为要投票选举,如果是偶数则会出现平票的情况,所有只能是偶数

删除datas里面的所有数据

[root@ant151 zk345]# rm -rf /opt/soft/zk345/datas/*

把zk345拷贝到其余机器上面

[root@ant151 zk345]# scp -r ../zk345/ root@ant152:/opt/soft
[root@ant151 zk345]# scp -r ../zk345/ root@ant153:/opt/soft

设置标识

注意:目录要在datas下面,上面有一步把ant151里面的datas删除了,所有这里还要设置

ant151 [root@ant151 datas]# echo "0" > myid

ant152 [root@ant152 datas]# echo "1" > myid

ant153 [root@ant153 datas]# echo "2" > myid

这里设置的标识要与上面的zoo.cfg下面设置的对应

刷新资源

[root@ant153 datas]# source /etc/profile

再次启动zookeeper

[root@ant151 datas]# zkServer.sh start

[root@ant152 datas]# zkServer.sh start

[root@ant153 datas]# zkServer.sh start

三台机器都要启动

查看zookeeper状态

[root@ant153 datas]# zkServer.sh status

ant151:follower

ant152:leader

ant153:follower

启动/关闭所有zookeeper/查看所有zookeeper状态

在opt下面创建一个shell目录,在创建一个zkop.sh文件用于存放脚本

创建目录

[root@ant151 opt]# mkdir shell

进入shell

[root@ant151 opt]# cd ./shell

创建zkop.sh并编辑
[root@ant151 shell]# vim zkop.sh

修改权限
[root@ant151 shell]# chmod 733 zkop.sh

zkop.sh脚本

#! /bin/bash
case $1 in
"start"){
        for i in ant151 ant152 ant153
          do
            ssh $i "source /etc/profile; /opt/soft/zk345/bin/zkServer.sh start "
          done
};;
"stop"){
    for i in ant151 ant152 ant153
          do
            ssh $i "source /etc/profile; /opt/soft/zk345/bin/zkServer.sh stop "
          done
};;
"status"){
        for i in ant151 ant152 ant153
          do
            ssh $i "source /etc/profile; /opt/soft/zk345/bin/zkServer.sh status "
          done
};;
esac

关闭所有 zookeeper

** 开启所有zookeeper**

** 查看所有zookeeper状态**

查看所有zookeeper服务启动情况

在opt下面创建一个shell目录,在创建一个showjps.sh文件用于存放脚本

创建showjps.sh并编辑
[root@ant151 shell]# vim showjps.sh

修改权限
[root@ant151 shell]# chmod 733 showjps.sh

showjps.sh脚本

# showalljps.sh
#! /bin/bash
for i in ant151 ant152 ant153
do
    echo ---------- $i 服务启动状态 -------------
        ssh $i  "source /etc/profile; /opt/soft/jdk180/bin/jps "
done

[root@ant151 shell]# ./showjps.sh

标签: hadoop linux 大数据

本文转载自: https://blog.csdn.net/qq_57151931/article/details/129028839
版权归原作者 你∈我 所有, 如有侵权,请联系我们删除。

“Hadoop高可用搭建(一)”的评论:

还没有评论