什么是zookeeper
大数据时代,hive,pig,hbase,hadoop。。。。都很重要,但是,“一个成功的男人后面都有一个女人”,一群重磅的大数据工具平台后,有一个重要的“动物园管理员”。
那就是,那就是Zookeeper。在大数据应用中,高可用性非常重要,众多的服务都是建立在稳定和高可用性上的,谁能确保呢,那也是管理员,---zookeeper。
可以说,在台前精彩的表演后,有一个不为人知,但很重要的管理员在默默的付出,为了台上精彩的表演,默默的值班,谁病了,谁临时有事,他就会协调好,
保证这出戏能表演下去。
zookeeper重要性
1.Zookeeper加强集群稳定性
大型的分布式系统会依靠zk保证高可靠性。高可靠性保证它不会由于单一节点的故障而造成任何问题。有序的访问能保证客户端可以实现较为复杂的同步操作。
2.Zookeeper加强集群持续性
组成Zookeeper的各个服务器必须要能相互通信。他们在内存中保存了服务器状态,也保存了操作的日志,并且持久化快照。只要大多数的服务器是可用的,那么Zookeeper就是可用的。
客户端连接到一个Zookeeper服务器,并且维持TCP连接。并且发送请求,获取回复,获取事件,并且发送连接信号。如果这个TCP连接断掉了,那么客户端可以连接另外一个服务器。
3.Zookeeper保证集群有序性
Zookeeper使用数字来对每一个更新进行标记。这样能保证Zookeeper交互的有序。后续的操作可以根据这个顺序实现诸如同步操作这样更高更抽象的服务。
4.Zookeeper保证集群高效
Zookeeper的高效更表现在以读为主的系统上。Zookeeper可以在千台服务器组成的读写比例大约为10:1的分布系统上表现优异。
5.数据结构和分等级的命名空间
Zookeeper的命名空间的结构和文件系统很像。一个名字和文件一样使用/的路径表现,zookeeper的每个节点都是被路径唯一标识
zookeeper安装
既然zookeeper这么重要。我们来玩一玩吧。
首先,下载包,解压缩。
wget http://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gztar zxf zookeeperxxx.tar.gz
生成配置文件:
cd zookeeper-3.4.6/conf
cp zoo_sample.cfg 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
#这几个目录很重要
dataDir=<span style="font-family: Arial, Helvetica, sans-serif;">/home/liaominke/soft/zookeeper-3.4.6/data</span><pre name="code" class="html"><span style="font-family: Arial, Helvetica, sans-serif;">dataLogDir=/home/liaominke/soft/zookeeper-3.4.6/log</span>clientPort=2181#服务器ip或hostname及对应id,一定不要错server.1=hadoopmaster-177.tj:2888:3888server.2=hadoopslave-189.tj:2888:3888server.3=slave154:2888:3888
建立相应目录:
mkdir -p /home/liaominke/soft/zookeeper-3.4.6/data
mkdir -p /home/liaominke/soft/zookeeper-3.4.6/log
然后魔法开始:
echo "1" > /home/liaominke/soft/zookeeper-3.4.6/data/myid对应的服务器的凭证,这个一定要对。
最后,在profile里加上对应环境:
export ZOOKEEPER=/home/liaominke/soft/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER/bin
生效profile:
source profile
把软件部署到其余两台服务器后,开始每台服务器启动。
sh zookeeper-3.4.6/bin/zkServer.sh startJMX enabled by default
Using config: /home/liaominke/soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
最后,我们看看,每台服务器的状态。
slave154 soft]$ sh zookeeper-3.4.6/bin/zkServer.sh status
JMX enabled by default
Using config: /home/liaominke/soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: followerhadoopmaster-177 soft]$ sh zookeeper-3.4.6/bin/zkServer.sh status
JMX enabled by default
Using config: /home/liaominke/soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: followerhadoopslave-189 soft]$ sh zookeeper-3.4.6/bin/zkServer.sh status
JMX enabled by default
Using config: /home/liaominke/soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: leader一个zk集群就搞定了。一个leader。
最后大家想想,为什么是三台服务器?
在配置中对hosts怎么配置?可以直接用ip吗?
本文介绍了Zookeeper在大数据集群中的重要角色,包括加强集群稳定性、持续性和有序性等,并详细记录了Zookeeper集群的搭建过程。
838

被折叠的 条评论
为什么被折叠?



