十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍了如何安装配置zookeeper集群,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
公司主营业务:成都网站制作、网站建设、外贸网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出古县免费做网站回馈大家。
1、解压zookeeper
2、在$ZOOKEEPER_HOME/conf下创建zoo.cfg文件(参考配置文件:zoo_sample.cfg),内容为:
# CS通信心跳时间,Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位 tickTime=2000 # LF初始化通信时限,集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量) initLimit=10 # LF同步通信时限,集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。 syncLimit=5 #数据文件目录,Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。 dataDir=/root/app/zookeeper/data #客户端连接端口,客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。 clientPort=2181 #服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口) #这个配置项的书写格式比较特殊,规则如下: #server.N=YYY:A:B server.1=hadoop.master:2888:3888 server.2=hadoop.slave:2888:3888 #端口 #2181:用于客户端的连接 #2888:follower与leader通信 #3888:leader选举端口
3、根据zoo.cfg在dataDir配置的路径下创建myid文件,且输入server.N的N内容(例如:当前机器是server.1,那么在 myid中输入1)
4、复制配置完毕的zookeepr到其他节点
scp -r $ZOOKEEPER_HOME root@hostname:/home
5、复制完毕之后记得修改myid
6、在各个节点上分别启动脚本:
$ZOOKEEPER_HOME/bin/zkServer.sh start
7、检查命令
7.1、#zkServer.sh status //如果出现Error contacting service. It is probably not running.错误,是因为节点只启动了一个,无法启动集群模式 7.2、#echo ruok | nc localhost 2181 //如果命令成功会返回imok(I'm ok)
8、zk客户端
$ZOOKEEPER_HOME/bin/zkCli.sh -server hostname:2181 //启动一个zk客户端 //最终要记住一个help命令即可掌握其他命令的用法 (操作之前需要了解类似文件系统的znode, 简单描述:zk中所有节点都是znode节点,znode节点不仅可以作为目录还可以存储数据.) CREATE 创建znode SET 设置znode的数据 GET 查询znode RMR 删除znode ...等等自行查询
9、Java客户端
相关代码:
import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.ZooDefs.Ids; import org.apache.zookeeper.ZooKeeper; public class ZKClient { // 连接地址 private final static String CONN = "192.168.1.200:2181"; // client与zk超时时间(unit:ms) private final static int SESSION_TIMEOUT = 5000; public static void main(String[] args) throws Exception { //1、持久节点:创建的节点成功时,节点便会持久化在zk上 //2、临时节点:创建节点过程中一旦发生有意或无意的客户端超时或者关闭,节点都被删除 ZooKeeper zk = new ZooKeeper(CONN, SESSION_TIMEOUT, new Watcher() { @Override public void process(WatchedEvent event) { //接收zk各个时间通知 System.out.println("------------------------"); System.out.println("Path:"+event.getPath()); System.out.println("type:"+event.getType()); System.out.println("state"+event.getState()); System.out.println("wrapper:"+event.getWrapper()); System.out.println("------------------------"); } }); String path = "/hello"; byte[] data = "testhello!".getBytes(); zk.create(path,data, Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); zk.close(); } }
感谢你能够认真阅读完这篇文章,希望小编分享的“如何安装配置zookeeper集群”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!