网站首页 > java教程 正文
ZooKeeper的安装部署
安装环境:
Linux ubuntu 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
预置条件:安装jdk,ubuntu上:sudo apt-get update / sudo apt-get install openjdk-8-jdk
Step1 :下载,目前稳定版本是3.5.5,连接地址是:http://apache.claz.org/zookeeper/stable/apache-zookeeper-3.5.5-bin.tar.gz
wget http://apache.claz.org/zookeeper/stable/apache-zookeeper-3.5.5-bin.tar.gz
Step2:解压和配置
tar -xzvf apache-zookeeper-3.5.5-bin.tar.gz mv apache-zookeeper-3.5.5-bin /usr/local/zookeeper cp conf/zoo_sample.cfg conf/zoo.cfg
配置参数含义如下:
tickTime=2000 dataDir=/var/zookeeper/data dataLogDir=/var/zookeeper/log clientPort=2181 initLimit=5 syncLimit=2 maxClientCnxns=60
- tickTime : ZooKeeper 中使用的基本时间单元, 以毫秒为单位, 默认值是 2000。它用来调节心跳和超时。例如, 默认的会话超时时间是两倍的 tickTime。
- dataDir : ZooKeeper 用来存储内存数据库快照的目录。
- dataLogDir: 数据库更新的事物日志保存的目录,如果没有设置该目录,否则数据库更新的事务日志也将会存储在dataDir目录下。建议配置 dataLogDir 参数来指定 ZooKeeper 事务日志的存储目录。
- clientPort:ZooKeeper服务监听的端口。
- initLimit: 默认值是 10, 即 tickTime 属性值的 10 倍。它用于配置允许 followers 连接并同步到 leader 的最大时间。如果 ZooKeeper 管理的数据量很大的话可以增加这个值。
- syncLimit: 默认值是 5, 即 tickTime 属性值的 5 倍。它用于配置leader 和 followers 间进行心跳检测的最大延迟时间。如果在设置的时间内 followers 无法与 leader 进行通信, 那么 followers 将会被丢弃。
- maxClientCnxns: 在 socket 级别限制单个客户端与单台服务器之前的并发连接数量, 可以通过 IP 地址来区分不同的客户端。它用来防止某种类型的 DoS 攻击, 包括文件描述符耗尽。默认值是 60。将其设置为 0 将完全移除并发连接数的限制。
更多配置信息请参考: https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_configuration
Step3:启动ZooKeeper服务:
启动方式如下:
cd bin zkServer.sh start
Step4:测试ZooKeeper服务
测试方式:
./zkCli.sh
发现2181端口绑定在ipv6的地址上,导致我们使用ipv4连接不了
root@ubuntu:/usr/local/zookeeper/bin# netstat -antp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 955/sshd tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 1194/0 tcp 0 0 192.168.1.4:22 192.168.1.3:34542 ESTABLISHED 1154/sshd: lizhiyon tcp 0 0 192.168.1.4:22 192.168.1.3:34541 ESTABLISHED 1152/sshd: lizhiyon tcp6 0 0 :::42863 :::* LISTEN 1274/java tcp6 0 0 :::8080 :::* LISTEN 1274/java tcp6 0 0 :::22 :::* LISTEN 955/sshd tcp6 0 0 ::1:6010 :::* LISTEN 1194/0 tcp6 0 0 :::2181 :::* LISTEN 1274/java
解决办法:
vim zkServer.sh;
在start)部分找到“ nohup $JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}"”,给其添加一个选项"-Djava.net.preferIPv4Stack=true",这样启动的时候就会自动绑定IPV4端的IP;
Step 5 : 开机自启动
在/etc/init.d目录下创建zookeeper文件,在文件里输入以下内容,当然要注意JAVA_HOME的路径要跟你自己的环境一致:
#!/bin/bash #Configurations injected by install_server below.... EXEC=/usr/local/zookeeper/bin/zkServer.sh JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 PATH=${JAVA_HOME}/bin:$PATH ############### # SysV Init Information # chkconfig: - 58 74 # description: zookeeper is the zookeeper daemon. ### BEGIN INIT INFO # Provides: zookeeper # Required-Start: $network $local_fs $remote_fs # Required-Stop: $network $local_fs $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Should-Start: $syslog $named # Should-Stop: $syslog $named # Short-Description: start and stop zookeeper # Description: zookeeper daemon ### END INIT INFO case $1 in start) su root /usr/local/zookeeper/bin/zkServer.sh start;; stop) su root /usr/local/zookeeper/bin/zkServer.sh stop;; status) su root /usr/local/zookeeper/bin/zkServer.sh status;; restart) su /usr/local/zookeeper/bin/zkServer.sh restart;; *) echo "require start|stop|status|restart" ;; esac
然后添加zookeeper服务:
在Ubuntu中,/etc/init.d已被/usr/lib/systemd所取代。脚本仍然可以通过“服务”启动和停用。但主要命令现在是'systemctl'。chkconfig命令被留下,现在你用systemctl来做这件事。
所以,而不是:
chkconfig enable zookeeper
而应该查找服务名称,然后启用它
systemctl status zookeeper systemctl enable zookeeper.service
视频详解:https://www.bilibili.com/video/av58481322/
猜你喜欢
- 2024-09-30 技术实践——如何在Ubuntu-16.04上配置Apache Kafka集群!
- 2024-09-30 Ubuntu18.04+Docker+Hadoop+Spark分布式集群搭建
- 2024-09-30 JDK安装部署(jdk安装部署linux)
- 2024-09-30 DevOps-Jenkins-安装(Ubuntu)(ubuntu安装jdk15)
- 2024-09-30 Ubuntu 安装 .bundle 文件(ubuntu budgie安装)
- 2024-09-30 ubuntu安装burpsuite渗透利器(ubuntu安装brctl)
- 2024-09-30 Ubuntu 下 Janus Server 搭建(ubuntu20.04搭建web服务器)
- 2024-09-30 分享使用了15年的开发环境Ubuntu快速配置
- 2024-09-30 Ubuntu 18.04.1 搭建Java环境和HelloWorld
- 2024-09-30 Ubuntu 14.04 PPA安装Java sdk(ubuntu20.04安装教程)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)