【ZooKeeper 基础篇】部署与运行
2016-04-12 10:39
267 查看
对于ZooKeeper有了一个大概的了解以后,本篇则着重于部署与运行操作。
Java环境-JDK 1.7,建议其Java环境为1.6或高于1.6版本的;
下载网址:http://zookeeper.apache.org/releases.html#download;下载完成之后可以通过SecureCRT来将其放置虚拟环境中
放置相对应的环境之后,需要进行一些相对应的操作:
1、传入的是压缩包形式,所以需要对其进行解压操作;解压完之后,初次使用ZooKeeper,需要将%ZK_HOME%/conf目录下的zoo_sample.cfg文件重命名为zoo.cfg;然后对其文件进行配置即可。
解压操作:tar zxvf XXXX
更改重命名:mvzoo_sample.cfg zoo.cfg
进入文件操作:vim zoo.cfg
2、Zoo.cfg配置如下:
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/huohuo/zookeeper-3.4.8/data
dataLogDir=/home/huohuo/zookeeper-3.4.8/logs
clientPort=2181
server.1=100.66.162.172:2888:3888
截图如下:
[b]3、在data下创建文件myid,比如上边我们只配置了一个server.1,所以我们只需要创建一个文件,将其内容为1即可。
[/b]
[b]4、在/home/xxx/.bash_profile中增加ZooKeeper配置:[/b]
[b] # zookeeper env
export ZOOKEEPER_HOME=/home/huohuo/zookeeper-3.4.8
export PATH=$ZOOKEEPER_HOME/bin:$PATH[/b]
使配置文件生效命令:
source /home/wusc/.bash_profile
5、在防火墙中打开需要用到的端口号:2181,2888,3888
# chkconfig iptables on
# service iptables start
编辑/etc/sysconfig/iptables
# vi /etc/sysconfig/iptables
增加以下 3 行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT
重启防火墙:
# service iptables restart
查看防火墙端口状态:
# service iptables status
注:
2888端口号是ZooKeeper服务之间通信的端口;
3888是ZooKeeper与其他应用程序通信的端口;
对于ZooKeeper,存在两种运行模式:集群模式和单击模式,我们上述操作都是使用的单机模式,和集群模式唯一的区别就是在机器列表上,在单击模式的zoo.cfg文件中,只存在一个server.1这一项;而集群模式则是其对应的三台或者几台服务的列表操作。
对于ZooKeeper的集群模式的参数配置,需要配置一下几点:
a.在集群模式下,集群中的每台机器都需要感知到整个集群中的机器序号。同事,在每台ZooKeeper机器上,我们都需要在数据目录(dataDir参数指定的那个目录)下创建一个myid文件,该文件只有一行内容,并且是一个数字,即对应于每台机器上的ServerID数字。
b.在ZooKeeper的设计中,集群中所有机器上zoo.cfg文件的内容都应该是一致的。
c.要确保每个服务器的myid文件中的数字不同,并且和自己所在机器的zoo.cfg中server.id=host:port:port的id值一致。另外,id的范围是1到255.
d.创建myid文件
在dataDir所配置的目录下,创建一个名为myid的文件,在该文件的第一行写上一个数字,和zoo.cfg当前机器的编号对应上。
e按照相同的步骤,为其他机器都配置上zoo.cfg和myid文件。
ZooKeeper JMXenabled by default
Using config:/root/zookeeper-3.4.8/bin/../conf/zoo.cfg
Starting zookeeper... STARTED
输入jps查看进程:
其中QuorumPeerMain
是 zookeeper
进程,启动正常。
ZooKeeper JMXenabled by default
Using config:/root/zookeeper-3.4.8/bin/../conf/zoo.cfg
Stopping zookeeper... zkServer.sh: line 182: kill: (16834) - No such process
STOPPED
通过ls查看bin下的执行脚本,整理如下:
上述我们也只是实践了简单的启动和重启操作,其他的需要一个一个区实践,在实践的过程中,总会遇到各种各样的成长机会,比如我就遇到了这样的一个问题:
问题截图:
具体问题文字表达:
Starting zookeeper... /home/huohuo/zookeeper-3.4.8/bin/zkServer.sh: line 149:/home/huohuo/zookeeper-3.4.8/data/zookeeper_server.pid: Permission denied
FAILED TO WRITE PID
Permission denied,得不到许可,其实也就是权限不够的原因。通过chmod a+wxr,为整个文件夹赋权限再重新启动即可解决问题。
一:系统环境:
操作系统-Linux虚拟机,用于本机操作;Java环境-JDK 1.7,建议其Java环境为1.6或高于1.6版本的;
二:集群与单机操作:
ZooKeeper安装包下载:下载网址:http://zookeeper.apache.org/releases.html#download;下载完成之后可以通过SecureCRT来将其放置虚拟环境中
放置相对应的环境之后,需要进行一些相对应的操作:
1、传入的是压缩包形式,所以需要对其进行解压操作;解压完之后,初次使用ZooKeeper,需要将%ZK_HOME%/conf目录下的zoo_sample.cfg文件重命名为zoo.cfg;然后对其文件进行配置即可。
解压操作:tar zxvf XXXX
更改重命名:mvzoo_sample.cfg zoo.cfg
进入文件操作:vim zoo.cfg
2、Zoo.cfg配置如下:
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/huohuo/zookeeper-3.4.8/data
dataLogDir=/home/huohuo/zookeeper-3.4.8/logs
clientPort=2181
server.1=100.66.162.172:2888:3888
截图如下:
[b]3、在data下创建文件myid,比如上边我们只配置了一个server.1,所以我们只需要创建一个文件,将其内容为1即可。
[/b]
[b]4、在/home/xxx/.bash_profile中增加ZooKeeper配置:[/b]
[b] # zookeeper env
export ZOOKEEPER_HOME=/home/huohuo/zookeeper-3.4.8
export PATH=$ZOOKEEPER_HOME/bin:$PATH[/b]
使配置文件生效命令:
source /home/wusc/.bash_profile
5、在防火墙中打开需要用到的端口号:2181,2888,3888
# chkconfig iptables on
# service iptables start
编辑/etc/sysconfig/iptables
# vi /etc/sysconfig/iptables
增加以下 3 行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT
重启防火墙:
# service iptables restart
查看防火墙端口状态:
# service iptables status
注:
2888端口号是ZooKeeper服务之间通信的端口;
3888是ZooKeeper与其他应用程序通信的端口;
对于ZooKeeper,存在两种运行模式:集群模式和单击模式,我们上述操作都是使用的单机模式,和集群模式唯一的区别就是在机器列表上,在单击模式的zoo.cfg文件中,只存在一个server.1这一项;而集群模式则是其对应的三台或者几台服务的列表操作。
对于ZooKeeper的集群模式的参数配置,需要配置一下几点:
a.在集群模式下,集群中的每台机器都需要感知到整个集群中的机器序号。同事,在每台ZooKeeper机器上,我们都需要在数据目录(dataDir参数指定的那个目录)下创建一个myid文件,该文件只有一行内容,并且是一个数字,即对应于每台机器上的ServerID数字。
b.在ZooKeeper的设计中,集群中所有机器上zoo.cfg文件的内容都应该是一致的。
c.要确保每个服务器的myid文件中的数字不同,并且和自己所在机器的zoo.cfg中server.id=host:port:port的id值一致。另外,id的范围是1到255.
d.创建myid文件
在dataDir所配置的目录下,创建一个名为myid的文件,在该文件的第一行写上一个数字,和zoo.cfg当前机器的编号对应上。
e按照相同的步骤,为其他机器都配置上zoo.cfg和myid文件。
三:运行操作
一切准备就绪,当然就得运行起来,进行测试了。启动服务:
[root@localhostbin]# sh zkServer.sh startZooKeeper JMXenabled by default
Using config:/root/zookeeper-3.4.8/bin/../conf/zoo.cfg
Starting zookeeper... STARTED
输入jps查看进程:
其中QuorumPeerMain
是 zookeeper
进程,启动正常。
停止服务:
[root@localhostbin]# sh zkServer.sh stopZooKeeper JMXenabled by default
Using config:/root/zookeeper-3.4.8/bin/../conf/zoo.cfg
Stopping zookeeper... zkServer.sh: line 182: kill: (16834) - No such process
STOPPED
通过ls查看bin下的执行脚本,整理如下:
上述我们也只是实践了简单的启动和重启操作,其他的需要一个一个区实践,在实践的过程中,总会遇到各种各样的成长机会,比如我就遇到了这样的一个问题:
问题截图:
具体问题文字表达:
Starting zookeeper... /home/huohuo/zookeeper-3.4.8/bin/zkServer.sh: line 149:/home/huohuo/zookeeper-3.4.8/data/zookeeper_server.pid: Permission denied
FAILED TO WRITE PID
Permission denied,得不到许可,其实也就是权限不够的原因。通过chmod a+wxr,为整个文件夹赋权限再重新启动即可解决问题。
相关文章推荐
- 学习动画——变换CGAffineTransform和CATransform3D
- 仿QQ5.0侧滑菜单ResideMenu
- checkbox全选和反选
- SQL Server复制入门(一)----复制简介
- 从svn导入项目后处理一些报错信息
- 【高并发简单解决方案】redis缓存队列+mysql 批量入库+php离线整合
- json数据解析与生成 android
- sass 学习总结2
- iOS _UIButton 高亮变灰 效果去掉方法
- afnetworking2.0源码解析
- 转载_Copy-On-Write技术
- Python sort sorted OrderDict
- (可能是)最低成本的创业公司技术栈方案
- crontab定时任务
- 正确的事情要坚持做下去(三):晚打扫
- 指针函数和函数指针
- Date类、DateFormat抽象类、SimpleDateFormat类和Calendar类
- 微信公众号申请+新浪SAE申请
- Python set方法总结
- LeetCode(48)-Length of Last Word