Verifying Zookeeper
What is Zookeeper:
ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. - https://zookeeper.apache.org/
There are several ways to test the zookeeper service
Option 1: Jps
Zookeeper is a Java process and when you start a Zookeeper instance it runs a org.apache.zookeeper.server.quorum.QuorumPeerMain class. So you can check for a running Zookeeper like this:
$ jps -l | grep zookeeper
Option 2: using zookeeper command
Zookeeper provides a number of 4 letter word commands. You can run them like below.
$ echo ruok | nc einext02 2181
2181 is the standard port for zookeeper service.
View the full list of available zookeeper commands in the following link
https://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands
envi: Print details about serving environment
reqs: List outstanding requests
ruok: Tests if server is running in a non-error state. The server will respond with imok if it is running. Otherwise it will not respond at all.
stat: Lists statistics about performance and connected clients.
Option 3: checking linux service
Zookeeper runs as linux daemon. You can check the status of the service.
$ sudo service zookeeper-server status
Configuration file for zookeeper
/etc/zookeeper/conf/zoo.cfg
zkCli - Zookeeper CLI
Launch zookeeper cli as below. You can view services that are configured using zkCli
$ /usr/lib/zookeeper/bin/zkCli.sh -server einext02:2181
[zk: einext02:2181(CONNECTED) 0] ls /
[hbase, hive_zookeeper_namespace, zookeeper]
[zk: einext02:2181(CONNECTED) 1] ls /hbase
[meta-region-server, backup-masters, table, draining, region-in-transition, table-lock, running, master, namespace, hbaseid, online-snapshot, replication, splitWAL, recovering-regions, rs, flush-table-proc]
Get metadata for /hbase application
[zk: einext02:2181(CONNECTED) 6] get /hbase
cZxid = 0x4
ctime = Mon Aug 15 19:19:59 IST 2016
mZxid = 0x4
mtime = Mon Aug 15 19:19:59 IST 2016
pZxid = 0x4f5
cversion = 52
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 16
Theoretical Background:
In theoretical computer science, the CAP theorem, also named Brewer's theorem after computer scientist Eric Brewer, states that it is impossible for a distributed computer system to simultaneously provide all three of the following guarantees:
Consistency (all nodes see the same data at the same time)
Availability (every request receives a response about whether it succeeded or failed)
Partition tolerance (the system continues to operate despite arbitrary partitioning due to network failures)
(wikipedia)
Zookeeper relaxes availability over consistency and partition tolerance.