1.三台机器
yxkj153
yxkj155
yxkj157
2.包的部署和解压
apache-zookeeper-3.5.7-bin.tar.gz
这步就是将包上传到一台机器上,然后tar -zxvf 。。。 掠过~
3.zookeeper的配置
zoo.cfg
clientPort=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
clientPort=2181
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
server.1=yxkj153:2888:3888
server.2=yxkj155:2888:3888
server.3=yxkj157:2888:3888
pid的设置
(base) [root@yxkj153 bin]# ll /opt/zookeeper/data
total 4
-rwxr-xr-x 1 root root 2 May 20 17:35 myid
根据zoo.cfg的配置目录以及节点对应的的myid,三台机器分别在对应的目录下设置myid为 1 2 3 ,如server.1=yxkj153:2888:3888,表示yxkj153对应的myid为1
(base) [root@yxkj153 bin]# cat //opt/zookeeper/data/myid
1
4.jmx的配置
(base) [root@yxkj153 bin]# vi zkServer.sh
(base) [root@yxkj153 bin]# grep -rn jmx
zkServer.sh:53: ZOOMAIN="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=$JMXLOCALONLY org.apache.zookeeper.server.quorum.QuorumPeerMain"
zkServer.sh:71: ZOOMAIN="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=$JMXPORT -Dcom.sun.management.jmxremote.authenticate=$JMXAUTH -Dcom.sun.management.jmxremote.ssl=$JMXSSL -Dzookeeper.jmx.log4j.disable=$JMXLOG4J org.apache.zookeeper.server.quorum.QuorumPeerMain"
zkServer.sh:84:JVMFLAGS="$JVMFLAGS -javaagent:$JMX_DIR/jmx_prometheus_javaagent-0.15.0.jar=8321:/opt/bdp-monitor/hadoop/zookeeper.yaml"
(base) [root@yxkj153 bin]#
JMX_DIR="/opt/bdp-monitor"
JVMFLAGS="$JVMFLAGS -javaagent:$JMX_DIR/jmx_prometheus_javaagent-0.15.0.jar=8321:/opt/bdp-monitor/hadoop/zookeeper.yaml"
5.启动zkServer
(base) [root@yxkj153 bin]# ./zkServer.sh start
/usr/local/jdk_lin/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
(base) [root@yxkj153 bin]#
(base) [root@yxkj153 bin]# jps
1589 QuorumPeerMain
1629 Jps
(base) [root@yxkj153 bin]#
6.Prometheus的配置并启动
(base) [root@yxkj153 prometheus-2.35.0.linux-amd64]# vi prometheus.yml
(base) [root@yxkj153 prometheus-2.35.0.linux-amd64]# ./prometheus
对应zookeeper的jmx的port 8321
- job_name: 'zookeeper'
scrape_interval: 5s # 每过10秒拉取一次
honor_labels: true
static_configs:
- targets: ['192.168.80.161:8321']
labels:
instance: pushgateway
访问Prometheus的网页,可以看见zookeeper的监控
输入zookeeper,会有jmx的监控提示
7.systemctl添加zookeeper服务
(base) [root@yxkj153 ~]# cat /usr/lib/systemd/system/zookeeper.service
[Unit]
# 服务描述
Description=cosmo-bdp zookeeper
# 在网络服务启动后运行
After=network.target
[Service]
Type=forking
# jdk环境变量
Environment=JAVA_HOME=/usr/local/jdk_lin ZOO_LOG_DIR=/opt/logs
# 启动命令
ExecStart=/opt/zookeeper/bin/zkServer.sh start
# 停止命令
ExecStop=/opt/zookeeper/bin/zkServer.sh stop
# 重载命令
ExecReload=/opt/zookeeper/bin/zkServer.sh restart
[Install]
WantedBy=multi-user.target
(base) [root@yxkj153 ~]# systemctl enable zookeeper
Created symlink from /etc/systemd/system/multi-user.target.wants/zookeeper.service to /usr/lib/systemd/system/zookeeper.service.
(base) [root@yxkj153 ~]# systemctl status zookeeper
● zookeeper.service - cosmo-bdp zookeeper
Loaded: loaded (/usr/lib/systemd/system/zookeeper.service; disabled; vendor preset: disabled)
Active: inactive (dead)
(base) [root@yxkj153 ~]#
启动服务:systemctl start 服务名称
重启服务:systemctl restart 服务名称
停止服务:systemctl stop 服务名称
重新加载配置文件(不终止服务):systemctl reload 服务名称
查看服务状态:systemctl status 服务名称
开机自动启动:systemctl enable 服务名称
开机不自动启动:systemctl disable 服务名称
查看特定服务是否为开机自启动:systemctl is-enabled 服务名称
查看各个级别下服务的启动与禁用情况:systemctl list-unit-files --type=服务名称