2.    安装Zookeeper

2.1. 解压程序

※ 3台服务器分别执行

tar -xf ~/install/zookeeper-3.4..tar.gz -C/opt/cloud/packages

ln -s /opt/cloud/packages/zookeeper-3.4. /opt/cloud/bin/zookeeper
ln -s /opt/cloud/packages/zookeeper-3.4./conf /opt/cloud/etc/zookeeper mkdir -p /opt/cloud/data/zookeeper/dat
mkdir -p /opt/cloud/data/zookeeper/logdat
mkdir -p /opt/cloud/logs/zookeeper

2.2. 修改配置文件

2.2.1.    修改zoo.cfg

mv /opt/cloud/etc/zookeeper/zoo_sample.cfg  /opt/cloud/etc/zookeeper/zoo.cfg
vi /opt/cloud/etc/zookeeper/zoo.cfg
# The number of milliseconds of each tick
tickTime= # The number of ticks that the initial
# synchronization phase can take
initLimit= # The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit= # the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/opt/cloud/data/zookeeper/dat
dataLogDir=/opt/cloud/data/zookeeper/logdat[] # the port at which the clients will connect
clientPort= # the maximum number of client connections.
# increase this if you need to handle more clients
maxClientCnxns= #
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
autopurge.snapRetainCount=[] # Purge task interval in hours
# Set to "" to disable auto purge feature
autopurge.purgeInterval= # server.A=B:C:D
server.=hadoop1::[]
server.=hadoop2::
server.=hadoop3::

2.2.2.    修改log配置文件

vi /opt/cloud/etc/zookeeper/log4j.properties

修改配置项

zookeeper.root.logger=INFO, DRFA
zookeeper.log.dir=/opt/cloud/logs/zookeeper

增加DRFA日志定义

log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DRFA.Append=true
log4j.appender.DRFA.DatePattern='.'yyyy-MM-dd
log4j.appender.DRFA.File=${zookeeper.log.dir}/${zookeeper.log.file}
log4j.appender.DRFA.Threshold=${zookeeper.log.threshold}
log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout
log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{}@%L] - %m%n
log4j.appender.DRFA.Encoding=UTF-
#log4j.appender.DRFA.MaxFileSize=20MB

2.2.3.    复制到另外2台服务器

scp /opt/cloud/etc/zookeeper/zoo.cfg hadoop2:/opt/cloud/etc/zookeeper
scp /opt/cloud/etc/zookeeper/log4j.properties hadoop2:/opt/cloud/etc/zookeeper
scp /opt/cloud/etc/zookeeper/zoo.cfg hadoop3:/opt/cloud/etc/zookeeper
scp /opt/cloud/etc/zookeeper/log4j.properties hadoop3:/opt/cloud/etc/zookeeper

2.3. 生成myid

在dataDir目录下创建一个myid文件,然后分别在myid文件中按照zoo.cfg文件的server.A中A的数值,在不同机器上的该文件中填写相应的值。

ssh hadoop1 'echo 1 >/opt/cloud/data/zookeeper/dat/myid'
ssh hadoop2 'echo 2 >/opt/cloud/data/zookeeper/dat/myid'
ssh hadoop3 'echo 3 >/opt/cloud/data/zookeeper/dat/myid'

2.4. 设置环境变量

vi ~/.bashrc

增加

export ZOO_HOME=/opt/cloud/bin/zookeeper
export ZOOCFGDIR=${ZOO_HOME}/conf
export ZOO_LOG_DIR=/opt/cloud/logs/zookeeper
export PATH=$ZOO_HOME/bin:$PATH

即刻生效

source ~/.bashrc

复制到另外两台服务器

scp ~/.bashrc hadoop2:/home/hadoop
scp ~/.bashrc hadoop3:/home/hadoop

2.5. 手工执行

1.启动

zkServer.sh start

2.输入jps命令查看进程

QuorumPeerMain
Jps

其中,QuorumPeerMain是zookeeper进程,启动正常。

3、停止zookeeper进程

zkServer.sh stop

4、启动zookeeper集群

[hadoop@hadoop1 ~]$ cexec 'zkServer.sh start'

************************* cloud *************************
--------- hadoop1---------
ZooKeeper JMX enabled by default
Using config: /opt/cloud/bin/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED --------- hadoop2---------
ZooKeeper JMX enabled by default
Using config: /opt/cloud/bin/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED --------- hadoop3---------
ZooKeeper JMX enabled by default
Using config: /opt/cloud/bin/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

5、查看zookeeper集群状态

[hadoop@hadoop1 ~]$ cexec 'zkServer.sh status'

************************* cloud *************************

--------- hadoop1---------
ZooKeeper JMX enabled by default
Using config: /opt/cloud/bin/zookeeper/bin/../conf/zoo.cfg
Mode: follower --------- hadoop2---------
ZooKeeper JMX enabled by default
Using config: /opt/cloud/bin/zookeeper/bin/../conf/zoo.cfg
Mode: follower --------- hadoop3---------
ZooKeeper JMX enabled by default
Using config: /opt/cloud/bin/zookeeper/bin/../conf/zoo.cfg
Mode: leader

6、启动客户端脚本

zkCli.sh
ls /zookeeper
ls /zookeeper/quota

2.6. 系统启动时自动运行

vi /opt/cloud/bin/zookeeper/bin/zkServer.sh
找到
nohup "$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
替换为
nohup "$JAVA" "-Dlog4j.configuration=file:${ZOOCFGDIR}/log4j.properties" \

复制到另外两台服务器

scp /opt/cloud/bin/zookeeper/bin/zkEnv.sh hadoop2:/opt/cloud/bin/zookeeper/bin/
scp /opt/cloud/bin/zookeeper/bin/zkServer.sh hadoop2:/opt/cloud/bin/zookeeper/bin/
scp /opt/cloud/bin/zookeeper/bin/zkEnv.sh hadoop3:/opt/cloud/bin/zookeeper/bin/
scp /opt/cloud/bin/zookeeper/bin/zkServer.sh hadoop3:/opt/cloud/bin/zookeeper/bin/

vi /etc/systemd/system/zookeeper.service

[Unit]
Description=Zookeeper service
After=network.target [Service]
User=hadoop
Group=hadoop
Type=forking Environment = ZOO_HOME=/opt/cloud/bin/zookeeper
Environment = ZOOCFGDIR=/opt/cloud/bin/zookeeper/conf
Environment = ZOO_LOG_DIR=/opt/cloud/logs/zookeeper ExecStart=/usr/bin/sh -c '/opt/cloud/bin/zookeeper/bin/zkServer.sh start'
ExecStop =/usr/bin/sh -c '/opt/cloud/bin/zookeeper/bin/zkServer.sh stop' [Install]
WantedBy=multi-user.target

复制到另外两台服务器

scp /etc/systemd/system/zookeeper.service hadoop2:/etc/systemd/system/
scp /etc/systemd/system/zookeeper.service hadoop3:/etc/systemd/system/

重新加载配置信息:systemctl daemon-reload

启动zookeeper:systemctl start zookeeper

停止zookeeper:systemctl stop zookeeper

查看进程状态及日志(重要):systemctl status zookeeper

开机自启动:systemctl enable zookeeper

关闭自启动:systemctl disable zookeeper

启动服务设置为自动启动

systemctl daemon-reload
systemctl start zookeeper
systemctl status zookeeper
systemctl enable zookeeper

2.7. 卸载

root用户操作

  • 停止并卸载zookeeper服务
   systemctl stop zookeeper
systemctl disable zookeeper
rm /etc/systemd/system/zookeeper.service -f
  • 复原环境变量

vi ~/.bashrc

删除zookeeper相关行

  • 删除其他文件
   rm /opt/cloud/bin/zookeeper/ -rf
rm /opt/cloud/data/zookeeper/ -rf
rm /opt/cloud/logs/zookeeper/ -rf
rm /opt/cloud/packages/zookeeper-3.4./ -rf

[1] #如果有高速设备,dateLogDir可以设置在高速设备上以大幅提高效率

[2] 设置数据定时清理机制

[3] # server.A=B:C:D:

# A 是一个数字,表示这个是第几号服务器

# B 是这个服务器的 ip 地址;

# C 表示的是这个服务器与集群中的
Leader 服务器交换信息的端口;

# D 表示用来执行选举时服务器相互通信的端口。

安装高可用Hadoop生态 (二) 安装Zookeeper的更多相关文章

  1. 安装高可用Hadoop生态 (三) 安装Hadoop

    3.    安装Hadoop 3.1. 解压程序 ※ 3台服务器分别执行 .tar.gz -C/opt/cloud/packages /opt/cloud/bin/hadoop /etc/hadoop ...

  2. 安装高可用Hadoop生态 (一 ) 准备环境

    为了学习Hadoop生态的部署和调优技术,在笔记本上的3台虚拟机部署Hadoop集群环境,要求保证HA,即主要服务没有单点故障,能够执行最基本功能,完成小内存模式的参数调整. 1.    准备环境 1 ...

  3. 安装高可用Hadoop生态 (四) 安装Spark

    4.    安装Spark 4.1. 准备目录 -bin-without-hadoop.tgz -C /opt/cloud/packages/ -bin-without-hadoop /opt/clo ...

  4. 基于zookeeper的高可用Hadoop HA集群安装

    (1)hadoop2.7.1源码编译 http://aperise.iteye.com/blog/2246856 (2)hadoop2.7.1安装准备 http://aperise.iteye.com ...

  5. kubernetes实战(二十五):kubeadm 安装 高可用 k8s v1.13.x

    1.系统环境 使用kubeadm安装高可用k8s v.13.x较为简单,相比以往的版本省去了很多步骤. kubeadm安装高可用k8s v.11 和 v1.12 点我 主机信息 主机名 IP地址 说明 ...

  6. 企业运维实践-还不会部署高可用的kubernetes集群?使用kubeadm方式安装高可用k8s集群v1.23.7

    关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 文章目录: 0x00 前言简述 ...

  7. 高可用Hadoop平台-Hue In Hadoop

    1.概述 前面一篇博客<高可用Hadoop平台-Ganglia安装部署>,为大家介绍了Ganglia在Hadoop中的集成,今天为大家介绍另一款工具——Hue,该工具功能比较丰富,下面是今 ...

  8. 高可用Hadoop平台-实战尾声篇

    1.概述 今天这篇博客就是<高可用Hadoop平台>的尾声篇了,从搭建安装到入门运行 Hadoop 版的 HelloWorld(WordCount 可以称的上是 Hadoop 版的 Hel ...

  9. 高可用Hadoop平台-Flume NG实战图解篇

    1.概述 今天补充一篇关于Flume的博客,前面在讲解高可用的Hadoop平台的时候遗漏了这篇,本篇博客为大家讲述以下内容: Flume NG简述 单点Flume NG搭建.运行 高可用Flume N ...

随机推荐

  1. Netty源码分析 (六)----- 客户端连接接入accept过程

    通读本文,你会了解到1.netty如何接受新的请求2.netty如何给新请求分配reactor线程3.netty如何给每个新连接增加ChannelHandler netty中的reactor线程 ne ...

  2. Mysql 用户root密码重置

    Asterisk安装完成之后,接手新的Asterisk系统后不清楚Mysql的root账号密码. 重新重置mysql的root密码的方式 先查看mysql的版本号. 我的测试环境下的mysql版本为5 ...

  3. 007 Python程序语法元素分析

    目录 一.概述 二.程序的格式框架 2.1 代码高亮 2.2 缩进 2.3 注释 2.4 缩进.注释 三.命名与保留字 3.1 变量 3.2 命名 3.3 保留字 3.4 变量.命名.保留字 四.数据 ...

  4. Thinkphp6框架学习:有关数据库的基本操作

    最近Thinkphp6框架出来了,Mysql 8.0也出来了,php版本也升级到了7.4(这里php使用的是php7.3) 为了赶上时代的潮流,连ide(phpstorm)也升级到了2019.2的版本 ...

  5. android 和 webService交互

    webService 很久不用了,第一次使用还是13年, 早已忘记怎么搞了.今天看了篇博文,写了个demo .记录下吧! 首先要下载skoap2  .... xxx.jar  ,我用的是最新的3.6. ...

  6. Tomcat类加载器体系结构

    <深入理解java虚拟机>——Tomcat类加载器体系结构 标签: java / 虚拟机 / tomcat Tomcat 等主流Web服务器为了实现下面的基本功能,都实现了不止一个自定义的 ...

  7. 右键没有新建word选项

    两类解决办法 一. 1. 新建一个txt文本,并插入如下内容: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.doc] @=&quo ...

  8. SpringAop实现公共字段填充

    一.说明 项目中经常会有一些放在缓存中的公共字段需要进行填充,我们知道mybatis-plus很方便地可以实现公共字段填充.在这里我定义了一个字段填充的注解,当我们需要进行数据填充的时候只要在方法上打 ...

  9. charles 开始/暂停模拟慢网速

    本文参考:charles 开始/暂停模拟慢网速 1.2. stop/start throttling 和 2.2 throttling settings 暂时开始慢网速,这个说实话,我自己是不常用的, ...

  10. CentOS部署Harbor镜像仓库

    关于Harbor Harbor是用于存储和分发Docker镜像的镜像仓库服务,相比Docker Registry,Harbor在安全.标识.管理等方面做了增强,更适合企业使用: 官方网站:https: ...