当前位置:   article > 正文

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

initlimit=50 synclimit=25

Linux集群时间同步设置:

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

【命令】rpm –qa | grep ntp

rpm –qa | grep ntp
  • 1

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

2.删除已安装的ntp

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

yum –y remove
  • 1
3.重新安装ntp

【命令】yum –y install ntp

yum –y install ntp
  • 1
(二)配置ntp服务
vi /etc/ntp.conf
  • 1
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

(三)启动ntp服务

【命令】

 service ntpd start
  • 1

并且设置开机自启动:

 chkconfig ntpd on
  • 1

(四)查看是否同步成功

【命令】

ntpstat
  • 1

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

Zookeeper安装配置

1.解压安装

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

tar -zxvf zookeeper-3.4.6.tar.gz -C /opt
cd /opt
mv zookeeper-3.4.6/ zkpr
  • 1
  • 2
  • 3
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
  • 1
  • 2
  • 3
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

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

mv zoo_sample.cfg zoo.cfg
  • 1

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

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

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

#数据目录
dataDir=/opt/zkpr/zkdata
#日志目录
dataLogDir=/opt/zkpr/zklogs
  • 1
  • 2
  • 3
  • 4

创建语句:

mkdir /opt/zkpr/zkdata
mkdir /opt/zkpr/zklogs
  • 1
  • 2

(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:
客户端连接端口
监听客户端连接的端口
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/724473
推荐阅读
相关标签
  

闽ICP备14008679号