集群安装
1.安装JDK。下载地址:http://java.sun.com/javase/downloads/index.jsp
设置JAVA_HOME ,将$JAVA_HOME/bin 加到PATH变量里。
2.下载Zookeeper 地址:http://hadoop.apache.org/zookeeper/releases.html 解压到相应目录。
3.创建配置文件。conf/zoo.cfg 内容例如:
#tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 毫秒时间就会发送一个心跳。
tickTime=2000
#dataDir:Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
dataDir=/tmp/zookeeper/data
#dataLogDir:日志文件保存的位置
dataLogDir=/tmp/zookeeper/log
#clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
clientPort=2181
#initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。
#当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。
initLimit=10
#syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒
syncLimit=5
#server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
#如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。
server.1=192.168.211.1:2888:3888
server.2=192.168.211.2:2888:3888
server.3=192.168.211.3:2888:3888
#自动清理功能是3.4.0之后提供的功能。较低的版本需要手工运行清理工具。
#自动清理时保存在datadir里的数据快照数。最小值3
autopurge.snapRetainCount=3
#自动清理任务的间隔小时数
autopurge.purgeInterval=1
4.创建myid文件。
myid文件只包含一个单行文本,内容为机器的编号。server.A=B:C:D 其中的数字A 进入到dataDir,echo A > myid 。
5.测试
全部配置完成后,进入各机器Zookeeper的bin目录,执行./zkServer.sh start
之后执行echo stat | nc localhost 2181 查看当前节点状态。
Observers配置
为提高zookeeper伸缩性而设计。Observers不参与投票的服务器,可以接受客户端的连接,将写请求转发给领导节点。
设置 ZooKeeper 使用 Observers 非常简单,只需要在配置文件中有两处改动。
首先是每个 Observer 的配置文件中都要有这么一行:
peerType=observer
这行让服务器作为一个 Observer 来工作。之后,在每个服务器配置文件中,你必须在服务器定义行给每个 Observer 加入 :observer 。比如:
Server.4=192.168.211.4:2888:3888:observer
这让每个其他服务器知道 server.4 是一个 Observer,就不会让它进行投票了。
有关Obervers的说明详见gnawux的译文 http://wangxu.me/blog/p/320
系统监控
使用命令监控
例如:
echo stat | nc ip port
echo conf | nc ip port
或者telnet ip port 输入 stat 、conf等。
常用指令如下:
conf :显示配置参数
cons :列出所有的连接
crst :重置连接/session的统计信息
dump :Lists the outstanding sessions and ephemeral nodes. Leader节点有效。
envi :输出环境变量
ruok : 是否runok.
Srst:重置服务器统计信息。
Srvr:显示服务器信息。平均等待时间,运行的模式等。
Stat:显示服务状态。
wchs :Lists brief information on watches for the server. 显示多少个连接多少个被watch的path等。
wchc :Lists detailed information on watches for the server, by session。 小心使用,可能影响性能。
wchp : Lists detailed information on watches for the server, by path。 小心使用,可能影响性能。
mntr : 输出集群健康监测相关的信息。
使用jmx监控
修改zkServer.sh, ZOOMAIN部分的内容修改类似如下:
ZOOMAIN="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=$JMXLOCALONLY -Djava.rmi.server.hostname=10.10.249.197
-Dcom.sun.management.jmxremote.port=1911
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
org.apache.zookeeper.server.quorum.QuorumPeerMain"
启动后,可在远程启动jconsole通过jmx连接后监控。
问题处理
当文件损坏导致无法启动时,解决方法如下:
1.启动其它能正常启动的zookeeper,并用echo ruok| nc ip port 判断正常运行。
2.删除 datadir/version-2 and datalogdir/version-2/ 目录。
3.启动zookeeper。
分享到:
相关推荐
1. 下载与解压:可以从Apache官网下载Zookeeper的tar.gz文件,如"zookeeper-3.4.2",解压后得到"zookeeper-3.4.2"目录。 2. 配置环境变量:修改系统环境变量,添加Zookeeper的bin目录到PATH中。 3. 修改配置文件:...
1. **zookeeper-3.4.2.tar.gz**: 这是 Zookeeper 的源码或二进制包,版本为 3.4.2。安装并运行 Zookeeper 服务器是实现 Dubbo 服务注册和监控的基础。Zookeeper 提供了一个高可用的、分布式的、有序的数据存储系统,...
4. **Zookeeper 安装与配置**: 解压 `zookeeper-3.4.2.tar.gz` 后,你需要配置 `conf/zoo.cfg` 文件,设定数据存储路径、连接地址等参数。然后通过命令行启动 ZooKeeper 服务。 5. **Zookeeper 与 Dubbo 集成**: 在...
Zookeeper是一个分布式的协调服务,常用于管理配置信息、命名服务、集群状态维护等。在分布式系统中,Zookeeper可以确保服务之间的同步和一致性。如果bugsnag库支持与Zookeeper的集成,那么它就能为这些协调任务提供...
本文将详细介绍gspread 3.4.2版本的下载、安装以及其在分布式、云原生环境中的应用。 gspread是开发者与Google Sheets交互的首选工具,允许通过Python代码直接读取、写入甚至更新电子表格。gspread-3.4.2.tar.gz这...
- **HBase配置文件**:在`hbase-site.xml`中定义HBase运行的基本参数,包括数据目录、是否为分布式模式、Zookeeper集群信息等。 ```xml <name>hbase.rootdir <value>file:///root/hbase-0.92.1 <name>...
3.4.2旧消费者配置 3.5 Kafka Connect配置 3.6 Kafka Streams配置 3.7 AdminClient配置 4.设计 4.1动机 4.2持久性 4.3效率 4.4制片人 4.5消费者 4.6消息传递语义 4.7复制 4。4日志压缩 ...
该工程师了解 Hadoop 处理大数据的运行机制,能够搭建 Hadoop 集群,理解 HDFS 与 MapReduce 交互数据的底层原理机制,了解 Hbase 的表存储、ZooKeeper 协调管理 Hadoop、Hbase。 其它技术 该工程师还了解 HTML5、...