2020.9.5课堂笔记(zookeeper安装配置,Linux集群时间同步设置)

Linux集群时间同步设置:

(一)确认ntp的安装
1.确认是否已安装ntp

【命令】rpm –qa | grep ntp

rpm –qa | grep ntp

若只有ntpdate而未见ntp,则需删除原有ntpdate。如:
在这里插入图片描述

2.删除已安装的ntp

【命令】yum –y remove ntpdate-4.2.6p5。。。(原有的ntpdata文件)

yum –y remove
3.重新安装ntp

【命令】yum –y install ntp

yum –y install ntp
(二)配置ntp服务
vi /etc/ntp.conf
1.选择一个主节点(当前主节点ip地址为192.168.237.101)

在server部分添加以下,并注释掉server 0 ~ n
server 127.127.1.0
Fudge 127.127.1.0 stratum 10

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
# 当前节点IP地址
  restrict 192.168.237.101 nomodify notrap nopeer noquery
# 集群所在网段的网关(Gateway),子网掩码(Genmask)
  restrict 192.168.237.1 mask 255.255.255.0 nomodify notrap 
  server 127.127.1.0
  Fudge 127.127.1.0 stratum 10
2.除主节点以外,修改/etc/ntp.conf

在server部分添加如下语句,将server指向主节点(当前主节点ip地址为192.168.237.101)

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
# 当前节点IP地址
  restrict 192.168.237.102 nomodify notrap nopeer noquery
# 集群所在网段的网关(Gateway),子网掩码(Genmask)
  restrict 192.168.237.1 mask 255.255.255.0 nomodify notrap 
  server 192.168.237.101
  Fudge 192.168.237.101 stratum 10

(三)启动ntp服务

【命令】

 service ntpd start

并且设置开机自启动:

 chkconfig ntpd on

(四)查看是否同步成功

【命令】

ntpstat

在这里插入图片描述
若出现synchronized则表示同步成功,需要耐心等待

Zookeeper安装配置

1.解压安装

解压zookeeper文件到/opt目录下,重命名为zkpr

tar -zxvf zookeeper-3.4.6.tar.gz -C /opt
cd /opt
mv zookeeper-3.4.6/ zkpr
2.环境变量:

在原来环境变量配置的基础上加上ZOOKEEPER_HOME

export ZOOKEEPER_HOME=/opt/zkpr
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin:$PATH
3.修改配置文件

1.配置zoo.cfg文件:默认没有该文件,但提供了zoo_sample.cfg的模板文件
(1) 创建该文件:vi /opt/zkpr/conf/zoo.cfg
(2) 插入如下内容:

# The number of milliseconds of each tick
tickTime=2000
# 最大访问数:不限制
maxClientCnxns=0
# The number of ticks that the initial
# synchronization phase can take
# 初始化最小进程数:50
initLimit=50
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# 数据目录(因为默认目录定期会清理,所有改一个固定的目录)
dataDir=/opt/zkpr/zkdata
# 日志目录
dataLogDir=/opt/zkpr/zklogs
# the port at which the clients will connect  默认端口号2181
clientPort=2181
# 配置三台以上的奇数台可用机器主机名或者ip,注如果不配集群不需要添加以下内容,2888是通信端口,3888是选举通信端口
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888

注意点:如果是修改模板文件

mv zoo_sample.cfg zoo.cfg

要把对应的模板文件内的默认值注释掉,以下列出默认模板文件未注释部分

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper    //需要修改为用户指定路径,并创建myid文件
clientPort=2181
4.创建数据目录和日志目录

要求:与配置文件中的数据目录、日志目录相同

#数据目录
dataDir=/opt/zkpr/zkdata
#日志目录
dataLogDir=/opt/zkpr/zklogs

创建语句:

mkdir /opt/zkpr/zkdata
mkdir /opt/zkpr/zklogs

(3)进入数据目录: cd /opt/zkpr/zkdata
(4)创建myid文件
输入对应机器主机名对应的server.后面的数字: vi myid
例:对应的主机名hadoop01,vi myid 输入1
其作用是用来选举,对应效果如下:
在这里插入图片描述

5.启动和关闭zookeeper

启动命令:zkServer.sh start
关闭命令:zkServer.sh stop
验证方式: jps,如果出现QuorumPeerMain服务即成功启动了,如下:
在这里插入图片描述
启动后判断leader/follow节点zkServer.sh status
在这里插入图片描述
若无配置环境变量,使用全路径启动:/opt/zkpr/bin/zkServer.sh status

ZooKeeper分布式环境搭建文档:

一、ZooKeeper运行环境搭建
1.1 分布式安装部署
0.前置条件
jdk已经安装完成。
三台机器防火墙已经关闭。
1.集群规划
在hadoop102、hadoop103和hadoop104三个节点上部署Zookeeper。
2.解压安装
(1)上传ZooKeeper安装包到hadoop102主机/opt/software目录下。这里还是使用CDH版本,具体包为zookeeper-3.4.5-cdh5.14.2.tar.gz。
(2)解压zookeeper安装包到/opt/install/目录下
[hadoop@hadoop102 software]$ tar -zxf zookeeper-3.4.5-cdh5.14.2.tar.gz -C /opt/install/
(3)建立软连接
[hadoop@hadoop102 software]$ ln -s /opt/install/zookeeper-3.4.5-cdh5.14.2 /opt/install/zookeeper
(4)在/opt/install/zookeeper/这个目录下创建zkData
[hadoop@hadoop102 software]$ cd /opt/install/zookeeper
[hadoop@hadoop102 zookeeper]$ mkdir -p zkData
(5)重命名/opt/install/zookeeper/conf这个目录下的zoo_sample.cfg为zoo.cfg
[hadoop@hadoop102 zookeeper]$ cd /opt/install/zookeeper/conf
[hadoop@hadoop102 conf]$ mv zoo_sample.cfg zoo.cfg
3.配置zoo.cfg文件
(1)具体配置
[hadoop@hadoop102 conf]$ vi zoo.cfg
修改dataDir的值,配置为下面的值。
dataDir=/opt/install/zookeeper/zkData
在文件末尾增加如下配置。
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888
参数含义解释如下。
Server.A=B:C:D。
A:一个数字,表示每个服务器编号,注意必须唯一。
B:服务器的ip地址,规划了几个机器作为ZooKeeper服务器,就有几行记录,每一个机器都对应一行。
C:是这个服务器与集群中的Leader服务器交换信息的端口;
D:如果集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
4.集群操作
(1)在dataDri指定的目录/opt/install/zookeeper/zkData下创建一个myid的文件
[hadoop@hadoop102 zkData]$ touch myid
(2)编辑myid文件
vi myid
在文件中添加与server对应的编号:如2。
(3)将配置好的zookeeper分发到其他机器上(这里使用的是Hadoop用户,自己做的时候是 用户名@主机名 )
[hadoop@hadoop102 ~]$ scp -r /opt/install/zookeeper/ hadoop@hadoop103:/opt/install/
[hadoop@hadoop102 ~]$ scp -r /opt/install/zookeeper/ hadoop@hadoop104:/opt/install/
并分别在hadoop103、hadoop104修改myid文件中内容为3、4。
(4)配置环境变量
在每一台机器上给zookeeper配置环境变量。
[hadoop@hadoop102 zookeeper]$ vi /etc/profile
添加如下配置。
export ZK_HOME=/opt/install/zookeeper
export PATH=$ZK_HOME/bin:$ZK_HOME/sbin:$PATH
让配置文件生效。
[hadoop@hadoop102 zookeeper]$ source /etc/profile
(5)分别启动zookeeper服务
[hadoop@hadoop102 ~]$ zkServer.sh start
[hadoop@hadoop103 ~]$ zkServer.sh start
[hadoop@hadoop104 ~]$ zkServer.sh start
(6)jps查看进程
[hadoop@hadoop102 ~]$ jps
3329 Jps
3311 QuorumPeerMain
(7)查看状态(正常情况下是一个leader,两个follower,只有一台的时候是standalone模式)
[hadoop@hadoop102 ~]$ zkServer.sh status
JMX enabled by default
Using config: /opt/install/zookeeper/bin/../conf/zoo.cfg
Mode: follower
[hadoop@hadoop103 ~]$ zkServer.sh status
JMX enabled by default
Using config: /opt/install/zookeeper/bin/../conf/zoo.cfg
Mode: leader
[hadoop@hadoop104 ~]$ bin/zkServer.sh status
JMX enabled by default
Using config: /opt/install/zookeeper/bin/../conf/zoo.cfg
Mode: follower
可以使用zkServer.sh stop关闭zookeeper服务。
1.2 配置参数解读(了解)
zoo.cfg 文件中几个参数含义如下。
1.tickTime:通信心跳数,ZooKeeper服务器心跳时间,单位毫秒
Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。
它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超时时间是2*tickTime)
2.initLimit:LF初始通信时限
集群中的Follwer跟随者服务器与Leader领导者服务器(Leader)之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。投票选举新Leader的初始化时间,Follwer在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许Follwer在initLimit时间内完成这个工作。
3.syncLimit
LeaderFollwer同步通信时限
集群中Leader与Follwer之间的最大响应时间单位,假如响应超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。在运行过程中,Leader负责与ZooKeeper集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。如果Leader发出心跳包在syncLimit之后,还没有从Follwer那收到响应,那么就认为这个Follwer已经不在线了。
4.dataDir
数据文件目录+数据持久化路径
保存内存数据库快照信息的位置,如果没有其他说明,更新的事务日志也保存到数据库。
5.clientPort:
客户端连接端口
监听客户端连接的端口

zkCli常用客户端命令:

进入zkCli客户端:zkCli.sh
[zk: localhost:2181(CONNECTED) 2] help
ZooKeeper -server host:port cmd args
        stat path [watch]
        set path data [version]
        ls path [watch]
        delquota [-n|-b] path
        ls2 path [watch]
        setAcl path acl
        setquota -n|-b val path
        history
        redo cmdno
        printwatches on|off
        delete path [version]
        sync path
        listquota path
        rmr path
        get path [watch]
        create [-s] [-e] path data acl  //[-s]带序列编号的节点  [-e]临时节点  客户端退出后临时节点会自动删除
        addauth scheme auth
        quit
        getAcl path
        close
        connect host:port

具体用法参考下篇博客:2020.9.15课堂笔记(zookeeper)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值