在阿里云购买了基础版配置的centOs,用以下指令完成了zookeeper环境的搭建
1.检查jdk是否已安装
java -version
默认情况都是没有安装的,用以下命令完成安装
yum search java|grep jdk //先列出yum库中的所有jdk
yum install java-1.7.0-openjdk* -y //这里选择的是1.7(因为最近的项目都用1.7)
yum会自动帮忙配置环境变量
2.创建目录,下载和解压zookeeper
mkdir /home/zookeeper
mkdir /home/data
mkdir /home/logs
cd /home/zookeeper
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
tar -zxvf zookeeper-3.4.10.tar.gz
3.配置zookeeper
cp /home/zookeeper/conf/zoo_sample.cfg /home/zookeeper/conf/zoo.cfg
vim zoo.cfg
#添加或修改配置
dataDir=/home/zookeeper/data
dataLogDir=/home/zookeeper/logs
clientPort=87 #这里是因为用的阿里云的安全规则配置只允许自己开发1-100间的端口,这里我配置开放的是87作为zookeeper的端口
server.l=118.190.146.40:2888:3888 # 注意是,server.数字1 对外暴露的ID:zookeeper服务间通讯端口:zookeeper与其他应用程序通讯端口
4.创建zookeeper的服务id文件
cd /home/zookeeper/data
#这里我输入1之后不知道如何中止输入,直接用ctrl+x强制结束,结束后查看myid的文件内容为1 ,1为对应之前输入的server.数字1 表示是 zookeeper的服务号
cat>>myid
1
5.配置zookeeper的环境变量
cd ~/.bash_profile
#添加
export ZOOKEEPER_HOME=/home/zookeeper/zookeeper-3.4.10
export PATH=$ZOOKEEPER_HOME/bin:$PATH
#使配置的环境变量生效
source ~/.bash_profile
#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
6.zookeeper常用的指令
cd /home/zookeeper/zookeeper-3.4.10/bin
#启动
zkServer.sh start
#查看状态,也可以直接看同路径的日志文件
zkServer.sh status
#停止
zkServer.sh stop
7.最后附上简单的测试zookeeper是否成功的JAVA代码
public static void main(String[] args) {
//服务器的地址
String url = "99.99.99.99:87";
int sessionTimeout =50000;
System.out.println("start zookeeper test");
try {
ZooKeeper zk = new ZooKeeper(url, sessionTimeout, new Watcher(){
@Override
public void process(WatchedEvent event) {
// TODO Auto-generated method stub
System.out.println("watcher:"+event);
}
});
List<String> nodes = zk.getChildren("/", true);
if (nodes!=null) {
for (String string : nodes) {
System.out.println("node:"+string);
}
}
zk.create("/test", "anyWords".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
nodes = zk.getChildren("/", true);
if (nodes!=null) {
for (String string : nodes) {
System.out.println("node:"+string);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (KeeperException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("test end");
}
8.完毕。
其他,现在有很多可以安装在windows环境下的可视化查看(甚至管理)zookeeper节点的工具。比如ZooInspector,也可以本地搭建一个。
原理和上面的测试代码应该是类似的,建立新的zookeeper连接,添加对应的图形化界面来管理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux下zookeeper的安装 - Python技术站