当前位置:首页 > 服务端 > Zookeeper安装篇

Zookeeper安装篇

2022年09月17日 09:20:44服务端4

1.由于zookeeper的选举机制是leader选举,要求 可用节点数量 > 总节点数量/2 。注意 是 > , 不是 ≥。所以需要用三台虚拟机来 装,当然内存足够任性的话选五台也不是不行,我这里就用三台,主机名分别为hd1,hd2,hd3
2.准备好安装包
我选用的版本是apache-zookeeper-3.5.9-bin.tar.gz,下载链接: https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.9/
在写这篇文章时最新的版本是3.7.0,不过为了稳定考虑选用稍微老两个版本的3.5.9

前言 zookeeper的数据目录 是 data 且权限 755 具体查看官网的hdfs的权限管理

上传并解压

我一般把安装包放在/opt/packages,安装目录统一在/opt/apps,方便管理

cd /opt/packages
tar -zxf apache-zookeeper-3.5.9-bin.tar.gz -C ../apps/
cd ../apps
# 创建软链接
ln -s apache-zookeeper-3.5.9-bin zookeeper
cd zookeeper/conf
cp zoo_sample.cfg zoo.cfg

配置zookeeper

zoo.cfg

注意各项配置的末尾不要有空格,不然无法识别

# 修改配置文件
vim zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
# 设置数据目录
dataDir=/data/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# 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=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
# 第一个端口用于Follower和Leader之间的数据同步和其他通信,第二个端口用于Leader选举过程中投票通信
server.1=hadoop102:2888:3888
server.2=hadoop103:2888:3888
server.3=hadoop104:2888:3888
zkEnv.sh

修改 zookeeper/bin/zkEnv.sh 脚本,在脚本中给 ZOO_LOG_DIR 设置日志所在目录
后续安装的所有软件的数据目录我都会设置在/data下,方便查看管理
修改后

ZOOBINDIR="${ZOOBINDIR:-/usr/bin}"
ZOOKEEPER_PREFIX="${ZOOBINDIR}/.."
ZOO_LOG_DIR=/data/zookeeper/logs
#check to see if the conf dir is given as an optional argument
if [ $# -gt 1 ]
then
    if [ "--config" = "$1" ]
          then
              shift
              confdir=$1
              shift
              ZOOCFGDIR=$confdir
    fi
fi
 
if [ "x$ZOOCFGDIR" = "x" ]
then
 

创建myid

上面在zoo.cfg中把dataDir设置为了/data/zookeeper
所以需要在这个目录下新建myid文件用来区分三个zookeeper
注意三台的id必须不同

hadoop102:
echo "1" > /data/zookeeper/myid 
hadoop103:
echo "2" > /data/zookeeper/myid 
hadoop104:
echo "3" > /data/zookeeper/myid 

配置环境变量

vim /etc/profile.d/my_env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_144
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#zookeeper
ZOOKEEPER_HOME=/opt/apps/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
生效也可以采用或者关闭终端重新连接
source /etc/profile.d/my_env.sh
分发软件包脚本
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
  echo Not Enough Arguement!
  exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
  echo ====================  $host  ====================
  #3. 遍历所有目录,挨个发送
  for file in $@
  do
    #4 判断文件是否存在
    if [ -e $file ]
    then
      #5. 获取父目录
      pdir=$(cd -P $(dirname $file); pwd)
      #6. 获取当前文件的名称
      fname=$(basename $file)
      ssh $host "mkdir -p $pdir"
      rsync -av $pdir/$fname $host:$pdir
    else
      echo $file does not exists!
    fi
  done
done

启动zookeeper

为了方便,这里同样准备多机操作脚本

cd ~
mkdir zk
cd zk
touch ips
vim ips
 
hadoop102
hadoop103
hadoop104
:wq
# 创建多机操作脚本
vim ssh_all.sh
#!/bin/bash
#获得执行的文件所在的目录
 
cd `dirname $0`
#查看当前所在的工作目录
path=`pwd`
#使用cat命令查看ips文件内容,获得5台机器的主机名称,是字符串形式
#转数组
ips=(`cat ${path}/ips`)
 
for i in ${ips[*]};
do
        #拼接命令 使用位置变量$*接收执行的linux命令
	#这里要写你安装软件用的用户名,我用的是hadoop
        cmd="ssh hadoop@${i} \"source /etc/profile;source ~/.bash_profile;$*\""
        echo $cmd
        if eval $cmd;then
                echo "OK"
        else
                echo "FAIL"
        fi
done;
:wq
chmod +x ssh_root.sh
# 写好脚本后在hd1上执行
[hadoop@hadoop102 zk]$ sh ~/zk/ssh_all.sh zkServer.sh start
ssh hadoop@hadoop102 "source /etc/profile;source ~/.bash_profile;zkServer.sh start"
/usr/local/jdk/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/apps/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
OK
ssh hadoop@hadoop103 "source /etc/profile;source ~/.bash_profile;zkServer.sh start"
/usr/local/jdk/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/apps/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
OK
ssh hadoop@hadoop104 "source /etc/profile;source ~/.bash_profile;zkServer.sh start"
/usr/local/jdk/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/apps/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
OK
# 进入客户端
[hadoop@hadoop102 zk]$ zkCli.sh -server hadoop103:2181,hadoop103:2181,hadoop104:2181
WATCHER::
 
WatchedEvent state:SyncConnected type:None path:null
[zk: hadoop102:2181.hadoop103:2181,hadoop104:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: hadoop102:2181.hadoop103:2181,hadoop104:2181(CONNECTED) 1]

作者:苟天
来源链接:https://www.cnblogs.com/BaiMing/p/15070836.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/42471.html

标签: ZooKeeper
分享给朋友:

“Zookeeper安装篇” 的相关文章

Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例

Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例

摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢!...

SpringBoot 整合zookeeper

文章目录 SpringBoot 整合zookeeper 1 ZkClient 1.1 相关依赖 1.2 Zookeeper...

【SpringBoot】最通俗易懂的分布式学习(一)SpringBoot整合dubbo、zookeeper

【SpringBoot】最通俗易懂的分布式学习(一)SpringBoot整合dubbo、zookeeper

注:本文章基于尚硅谷Springboot高级特性相关视频及资料进行编写,代码简单,较容易理解,若有问题或者源码资料获取可以在评论区留言或者联系作者! 文章目录 导引 一、doke...

kafka和zookeeper的最详细安装步骤和介绍

kafka和zookeeper的最详细安装步骤和介绍

kafka和zookeeper的详细安装步骤和介绍 1、异步通信 1.1. 观察者模式 观察者模式,又叫发布-订阅模式 定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。 一个对象(目标对象)的状态...

SpringMVC、Zookeeper、Dubbo使用

SpringMVC、Zookeeper、Dubbo使用

互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的。现在核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应。 第一:介绍Dubbo背景 ...

linux系统使用docker安装zookeeper

一、拉取 zookeeper 镜像(默认摘取最新版本)         docker pull zookeeper 二、查看当前镜像         docker imag...

mysql 和 hive 和分布式zookeeper和HBASE分布式安装教程

一,mysql 安装mysql5.7完整教程1. yum -y install mysql-server直接执行语句后等待就好已安装: mysql-community-server.x86_64 0:5.7.23-1.el7 作为依赖被安装: mysql-communit...

Windows上安装zookeeper+kafka

Windows上安装zookeeper+kafka

准备zookeeper和kafka安装包 zookeeper安装包下载地址:https://archive.apache.org/dist/zookeeper/ (本文选择apache-zookeeper-3.5.8-bin.tar.gz) k...

kafka连接zookeeper配置搭建环境、安装和启动,Windows环境下

kafka连接zookeeper配置搭建环境、安装和启动,Windows环境下

kafka,分布式集群架构下,高性能的流式事件数据(主要是消息)集成、发布(生产)和订阅(分发、消费)组件(中间件)。 kafka依赖zooeeper(数据后端),这里有Windows下安装配置启动zookeeper的 文章(1): Windows 10环境zooke...

Docker安装Zookeeper和Kafka、Docker Compose 编排、Docker Portainer 容器

1、Docker 安装 ①安装必要的一些系统工具 输入Linux指令:sudo yum install -y yum-utils ②添加软件源信息 输入Linux指令:sudo yum-config-manager --add-repo http://mi...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。