当前位置: 首页 > news >正文

zookeeper 安装配置

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

ZooKeeper的安装模式分为三种,分别为:单机模式(stand-alone)、集群模式和集群伪分布模式。

一. 单机安装、配置:
1. 下载zookeeper二进制安装包
下载地址:http://apache.dataguru.cn/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz

2.解压zookeeper安装包到安装路径
3.创建并配置zoo.cfg配置文件,主要配置或修改以下参数

tickTime=2000
dataDir=/home/zookeeper/data
dataLogDir=/home/zookeeper/logs
clientPort=2181
参数说明:
tickTime: zookeeper中使用的基本时间单位, 毫秒值.
dataDir: 数据目录. 可以是任意目录.
dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.
clientPort: 监听client连接的端口号

在conf目录中将zoo_samle.cfg 复制并命名为zoo.cfg即可

# cp zoo_sample.cfg zoo.cfg

143047_Btqc_574036.png

143131_2pOu_574036.png

143529_j9xn_574036.png

zookeeper 环境变量配置

# vi /etc/profile
export ZK_HOME=/home/zookeeper/zookeeper-3.4.8
export PATH=$ZK_HOME/bin:$PATH

152226_zHWA_574036.png

测试:

回到zookeeper/bin目录下,启动zookeeper服务

在bin下运行 ./zkServer.sh start启动服务,运行./zkCli.sh -server 10.10.100.10:2181 就是你的服务器和端口,启动客户端连接服务

 

二. 伪集群安装、配置:

所谓伪集群, 是指在单台机器中启动多个zookeeper进程, 并组成一个集群. 以启动3个zookeeper进程为例.
将zookeeper的目录拷贝2份:
zookeeper0/conf/zoo.cfg文件为:
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/zookeeper0/data
dataLogDir=/home/zookeeper0/logs
clientPort=2181
server.0=127.0.0.1:8880:7770
server.1=127.0.0.1:8881:7771
server.2=127.0.0.1:8882:7772
新增了几个参数, 其含义如下:
1 initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower. initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.
2 syncLimit: 该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms.
3 server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 由于配置的是伪集群模式, 所以各个server的B, C参数必须不同.
参照zookeeper0/conf/zoo.cfg, 配置zookeeper1/conf/zoo.cfg, 和zookeeper2/conf/zoo.cfg文件. 只需更改dataDir, dataLogDir, clientPort参数即可.

在之前设置的dataDir中新建myid文件, 写入一个数字, 该数字表示这是第几号server. 该数字必须和zoo.cfg文件中的server.X中的X一一对应.
/home/zookeeper0/data/myid文件中写入0, /home/zookeeper1/data/myid文件中写入1, /home/zookeeper2/data/myid文件中写入2.

分别进入/home/zookeeper0/bin, /home/zookeeper1/bin, /hadoop/zookeeper2/bin三个目录, 启动server.

三. 集群安装、配置:

集群模式的配置和伪集群基本一致.
由于集群模式下, 各server部署在不同的机器上, 因此各server的conf/zoo.cfg文件可以完全一样.
下面是一个示例:
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/zookeeper/data
dataLogDir=/home/zookeeper/logs
clientPort=4180
server.43=10.1.39.43:2888:3888
server.47=10.1.39.47:2888:3888
server.48=10.1.39.48:2888:3888
示 例中部署了3台zookeeper server, 分别部署在10.1.39.43, 10.1.39.47, 10.1.39.48上. 需要注意的是, 各server的dataDir目录下的myid文件中的数字必须不同,10.1.39.43 server的myid为43, 10.1.39.47 server的myid为47, 10.1.39.48 server的myid为48.

四.zookeeper常用命令

ZooKeeper服务命令:
1. 启动ZK服务: ./zkServer.sh start
2. 查看ZK服务状态: ./zkServer.sh status
3. 停止ZK服务: ./zkServer.sh stop
4. 重启ZK服务: ./zkServer.sh restart
zk客户端命令:
ZooKeeper 命令行工具类似于Linux的shell环境,使用它可以对ZooKeeper进行访问,数据创建,数据修改等操作. 使用 zkCli.sh -server 127.0.0.1:2181 连接到 ZooKeeper 服务,连接成功后,系统会输出 ZooKeeper 的相关环境以及配置信息。
命令行工具的一些简单操作如下:
1. 显示根目录下、文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容
2. 显示根目录下、文件: ls2 / 查看当前节点数据并能看到更新次数等数据
3. 创建文件,并设置初始内容: create /zk "test" 创建一个新的 znode节点“ zk ”以及与它关联的字符串
4. 获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串
5. 修改文件内容: set /zk "zkbak" 对 zk 所关联的字符串进行设置
6. 删除文件: delete /zk 将刚才创建的 znode 删除
7. 退出客户端: quit
8. 帮助命令: help
ZooKeeper 常用四字命令:
ZooKeeper 支持某些特定的四字命令字母与其的交互。它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令
1. 可以通过命令:echo stat|nc 127.0.0.1 2181 来查看哪个节点被选择作为follower或者leader
2. 使用echo ruok|nc 127.0.0.1 2181 测试是否启动了该Server,若回复imok表示已经启动。
3. echo dump| nc 127.0.0.1 2181 ,列出未经处理的会话和临时节点。
4. echo kill | nc 127.0.0.1 2181 ,关掉server
5. echo conf | nc 127.0.0.1 2181 ,输出相关服务配置的详细信息。
6. echo cons | nc 127.0.0.1 2181 ,列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。
7. echo envi |nc 127.0.0.1 2181 ,输出关于服务环境的详细信息(区别于 conf 命令)。
8. echo reqs | nc 127.0.0.1 2181 ,列出未经处理的请求。
9. echo wchs | nc 127.0.0.1 2181 ,列出服务器 watch 的详细信息。
10. echo wchc | nc 127.0.0.1 2181 ,通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。
11. echo wchp | nc 127.0.0.1 2181 ,通过路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径。

 

转载于:https://my.oschina.net/u/574036/blog/731167

相关文章:

  • Sqli-labs less 16
  • Linux - linux命令的格式
  • Oracle Spatial构建点、线、面
  • 【趣事】一根网线发起的攻击
  • UVA10976 Fractions Again?!
  • 关于ECC内存
  • shell脚本实例(2)
  • WinForm 窗体属性
  • Javascript弹出层-初探
  • Java json工具类,jackson工具类,ObjectMapper工具类
  • PostgreSQL 最佳实践 - 任意时间点恢复源码分析
  • 第一次作业p7 1-1 1-2 1-6
  • 华为VRRP配置
  • 你掌握的技术排第几?
  • 解决mysql 1062 主从错误
  • Brief introduction of how to 'Call, Apply and Bind'
  • Python学习笔记 字符串拼接
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 记一次删除Git记录中的大文件的过程
  • 如何学习JavaEE,项目又该如何做?
  • 实现菜单下拉伸展折叠效果demo
  • 听说你叫Java(二)–Servlet请求
  • 我是如何设计 Upload 上传组件的
  • 新版博客前端前瞻
  • 带你开发类似Pokemon Go的AR游戏
  • #NOIP 2014# day.1 T2 联合权值
  • #微信小程序:微信小程序常见的配置传值
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • #预处理和函数的对比以及条件编译
  • (1)Nginx简介和安装教程
  • (175)FPGA门控时钟技术
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (转)创业家杂志:UCWEB天使第一步
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET Micro Framework 4.2 beta 源码探析
  • .Net MVC4 上传大文件,并保存表单
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .ui文件相关
  • @FeignClient注解,fallback和fallbackFactory
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • @Query中countQuery的介绍
  • @SentinelResource详解
  • [ C++ ] STL---stack与queue
  • [2010-8-30]
  • [2023年]-hadoop面试真题(一)
  • [C#][DevPress]事件委托的使用
  • [C#]DataTable常用操作总结【转】