为了账号安全,请及时绑定邮箱和手机立即绑定

一次完整的大数据环境搭建——zookeeper安装

标签:
大数据

所用软件                                    版本号

zookeeper                    zookeeper-3.4.10.tar.gz

jdk                                 jdk-8u171-linux-x64.tar.gz


第一章:基本环境搭建以及zookeeper安装

本次集群搭建共有三个节点,(这里是远程的模式)包括一个主节点 master和两个从节点 slave1 和 slave2。

首先使用VB建立三个Centos7的虚拟机,我认为使用VB的一个好处是,使用桥接模式联网后IP相当于固定,后期不用很麻烦的去设置静态IP,桥接网络设置方法参考virtualbox四种网络连接方式及其设置方法

webp

图1 虚拟机安装

一、修改主机名(三台机器均执行)

(1)以主机点 master 为例,首次切换到 root 用户:su

(2)修改主机名为 master:

set-hostname master

(3)永久修改主机名,编辑/etc/sysconfig/network文件,内容如下:

        NETWORKING=yes

        HOSTNAME=master

注意保存退出。(补充一句,可能有用,Linux中vi编辑,需要使用esc退出编辑模式,然后:wq! 表示保存并退出。)

(4)下载相关工具

    yum install -y net-tools

(5)保存该文件,重启计算机:reboot

(6)查看是否生效:hostname

二、配置 hosts 文件(三台机器)

(1)可以通过 ifconfig/ip addr 命令进行查看机器的IP。

(2)查看节点地址之后将三个节点的 ip 地址以及其对应的名称写进hosts文件。这里我们设置为    master、slave1、slave2。

webp

图2  hosts文件配置

注意保存退出。

三、关闭防火墙(三台机器)

centos7 中防火墙命令用 firewalld 取代了 iptables,当其状态是 dead 时,即防火墙关闭。

关闭防火墙:systemctl stop firewalld

查看状态:systemctl status firewalld

webp

图3  关闭防火墙

四、时间同步

(1)时区一致。要保证设置主机时间准确,每台机器时区必须一致。实验中我们需要同步网络时间,因此要首先选择一样的时区。先确保时区一样,否则同步以后时间也是有时区差,可以使用 date 命令查看自己的机器时间。

(2)选择时区:tzselect

webp

图4  时间同步

(3)由于 hadoop 集群对时间要求很高,所以集群内主机要经常同步。我们可以使用 ntp 网络时间协议进行时间同步,master 作为 ntp 服务器,其余的当做 ntp 客户端,下载 ntp(三台机器)

yum install –y ntp

(4)master 作为 ntp 服务器,修改 ntp 配置文件。(master 上执行)

        vi /etc/ntp.conf

server127.127.1.0   #local clock

fudge127.127.1.0stratum 10   #stratum设置为其它值也是可以的,其范围为0~15

        重启 ntp 服务     /bin/systemctl restart  ntpd.service

(5) 其他机器同步(slave1,slave2)

等待大概五分钟(这时候一定要等一会才成功的哦),再到其他机上同步该 master 服务器时间。

ntpdate  master

如果配置平台式没有外网连接可以将三台机器设为统一时间,输入命令:

date -s 10:00(时间)

五、配置 ssh 免密

SSH 主要通过 RSA 算法来产生公钥与私钥,在数据传输过程中对数据进行加密来保障数据的安全性和可靠性,公钥部分是公共部分,网络上任一结点均可以访问,私钥主要用于对数据进行加密,以防他人盗取数据。总而言之,这是一种非对称算法,想要破解还是非常有难度的。Hadoop 集群的各个结点之间需要进行数据的访问,被访问的结点对于访问用户结点的可靠性必须进行验证,hadoop 采用的是 ssh 的方法通过密钥验证及数据加解密的方式进行远程安全登录操作,当然,如果 hadoop 对每个结点的访问均需要进行验证,其效率将会大大降低,所以才需要配置SSH 免密码的方法直接远程连入被访问结点,这样将大大提高访问效率。

(1) 每个结点分别产生公私密钥:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa(三台机器)

秘钥产生目录在用户主目录下的.ssh 目录中,进入相应目录查看:cd .ssh/

( 2 )id_dsa.pub 为公钥, id_dsa 为私钥,紧接着将公钥文件复制成 authorized_keys 文件:(仅 master)

cat id_dsa.pub >> authorized_keys(注意在.ssh/路径下操作)

在主机上连接自己,也叫做 ssh 内回环:ssh master

(3)让主结点 master 能通过 SSH 免密码登录两个子结点 slave。(slave 中操作)

为了实现这个功能,两个 slave 结点的公钥文件中必须要包含主结点的公钥信息,这样 master 就可以顺利安全地访问这两个 slave 结点了。slave1 结点通过 scp 命令远程登录 master 结点,并复制 master 的公钥文件到当前的目录下,且重命名为 master_das.pub,这一过程需要密码验证。

scp master:~/.ssh/id_dsa.pub ./master_das.pub

将master 结点的公钥文件追加至authorized_keys 文件:

cat master_das.pub >>authorized_keys

这时,master 就可以连接 slave1 了,同理 slave2 中也是这么操作。

webp

图5  ssh免密登录

六、安装 JDK(三台机器)

(1)首先建立工作路径/usr/java

mkdir -p /usr/java

tar -zxvf /opt/soft/jdk-8u171-linux-x64.tar.gz -C /usr/java/  

划重点了,记住本文介绍的所有的解压包都是放在/opt/soft目录下。

(2).修改环境变量

            vi /etc/profile

         export JAVA_HOME=/usr/java/jdk1.8.0_171

         export CLASSPATH=$JAVA_HOME/lib/

         export PATH=$PATH:$JAVA_HOME/bin

         export PATH JAVA_HOME CLASSPATH

(3)生效环境变量:source /etc/profile

        查看 java 版本:java -version  

(4)同理 slave 节点,相同安装步骤,修改环境变量。

scp -r /usr/java root@slave1:/usr/

scp -r /usr/javaroot@slave2:/usr/

webp

图6  jdk安装以及环境配置

七、安装 zookeeper

(1)修改主机名称到 IP 地址映射配置。

            vi /etc/hosts

192.168.15.104 master master.root

192.168.15.127 slave1 slave1.root

192.168.15.124 slave2 slave2.root

(2)修改 ZooKeeper配置文件。在其中 master 机器上,用 tar -zxvf命令解压缩 zookeeper-3.4.10.tar.gz。

创建工作目录:mkdir -p /usr/zookeeper

解压:tar -zxvf /opt/soft/zookeeper-3.4.10.tar.gz -C/usr/zookeeper/

(3)修改配置文件conf/zoo.cfg

这时候需要用 cd 命令进入 zookeeper-3.4.10/conf 目录下,将 zoo_sample.cfg 文件拷贝一份,命名为为“zoo.cfg”。

scp zoo_sample.cfg zoo.cfg

Zoo.cfg 文件配置如下:

tickTime=2000

initLimit=10

syncLimit=5 

dataDir=/usr/zookeeper/zookeeper-3.4.10/zkdata

clientPort=2181

dataLogDir=/usr/zookeeper/zookeeper-3.4.10/zkdatalog 

server.1=master:2888:3888

server.2=slave1:2888:3888   

server.3=slave2:2888:3888

webp

图7.1  zoo.cfg配置文件修改

(4)在 zookeeper-3.4.10的目录中,创建 zkdata 和 zkdatalog 两个文件夹,zkdatalog 文件夹,是为了指定 zookeeper 产生日志指定相应的路径。

mkdir zkdata

mkdir zkdatalog

(5)进入 zkdata 文件夹,创建文件 myid。

webp

图7.2 主节点myid编辑

(6)远程复制分发安装文件,上面已经在一台机器 master 上配置完成 ZooKeeper,现在可以将该配置好的安装文件远程拷贝到集群中的各个结点对应的目录下:

scp -r /usr/zookeeper root@slave1:/usr/

scp -r /usr/zookeeper root@slave2:/usr/

(7)设置 myid。在我们配置的 dataDir 指定的目录下面,创建一个 myid 文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg 文件中配置的 server.X 中 X 为什么数字,则 myid 文件中就输入这个数字,slave1 中为 2,slave2 中为 3。

cd /usr/zookeeper/zookeeper-3.4.10/zkdata

webp

图7.3  子节点myid编辑

(8)配置环境变量并启动 ZooKeeper。在每台机器上操作如下:

        vi /etc/profile

#set zookeeper environment   

export  ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10

PATH=$PATH:$ZOOKEEPER_HOME/bin

生效:source /etc/profile 

(9)启动 ZooKeeper 集群

在 ZooKeeper 集群的每个结点上,执行启动ZooKeeper 服务的脚本,如下所示:

cd /usr/zookeeper/zookeeper-3.4.10

bin/zkServer.sh start

bin/zkServer.sh status

webp

图7.4  zookeeper状态确定

通过上面状态查询结果可见,一个节点是 Leader,其余的结点是Follower。

说明:此系列文章是为了记录本人学习过程,以此来加深理解,希望各位大神路过!!!



作者:lg的精神食粮
链接:https://www.jianshu.com/p/e4d85e67092f


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消