1.下载zookeeper
http://zookeeper.apache.org/releases.html
我下载的是zookeeper-3.4.9.tar.gz
2.解压 tar -zxvf zookeeper-3.4.9.tar.gz
3.ZooKeeper软件的文件和目录
bin目录
zk的可执行脚本目录,包括zk服务进程,zk客户端,等脚本。其中,.sh是Linux环境下的脚本,.cmd是Windows环境下的脚本。
conf目录
配置文件目录。zoo_sample.cfg为样例配置文件,需要修改为自己的名称,一般为zoo.cfg。log4j.properties为日志配置文件。
lib
zk依赖的包。
contrib目录
一些用于操作zk的工具包。
recipes目录
zk某些用法的代码示例
4.conf zoo.cfg说明
tickTime
时长单位为毫秒,为zk使用的基本时间度量单位。例如,1 * tickTime是客户端与zk服务端的心跳时间,2 * tickTime是客户端会话的超时时间。
tickTime的默认值为2000毫秒,更低的tickTime值可以更快地发现超时问题,但也会导致更高的网络流量(心跳消息)和更高的CPU使用率(会话的跟踪处理)。
clientPort
zk服务进程监听的TCP端口,默认情况下,服务端会监听2181端口。
dataDir
无默认配置,必须配置,用于配置存储快照文件的目录。如果没有配置dataLogDir,那么事务日志也会存储在此目录。
5.启动
windows不说了
在Linux环境下,进入bin目录,执行命令 ./zkServer.sh start
这个命令使得zk服务进程在后台进行。如果想在前台中运行以便查看服务器进程的输出日志,可以通过以 下命令运行:./zkServer.sh start-foreground
执行此命令,可以看到大量详细信息的输出,以便允许查看服务器发生了什么。
使用文本编辑器打开zkServer.cmd或者zkServer.sh文件,可以看到其会调用zkEnv.cmd或者zkEnv.sh脚本。zkEnv脚本的作用是设置zk运行的一些环境变量,例如配置文件的位置和名称等。
客户端连接 bin/zkCli.sh -server 192.168.0.1:2181
报错了
[root@localhost zookeeper-3.4.9]# bin/zkCli.sh - server 127.0.0.1:2181
Connecting to localhost:2181
2017-04-07 11:08:30,578 [myid:] - INFO [main:Environment@100] - Client environ ment:zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT
2017-04-07 11:08:30,706 [myid:] - INFO [main:Environment@100] - Client environ ment:host.name=localhost.localdomain
2017-04-07 11:08:30,709 [myid:] - INFO [main:Environment@100] - Client environ ment:java.version=1.4.2
2017-04-07 11:08:30,710 [myid:] - INFO [main:Environment@100] - Client environ ment:java.vendor=Free Software Foundation, Inc.
2017-04-07 11:08:30,711 [myid:] - INFO [main:Environment@100] - Client environ ment:java.home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre
2017-04-07 11:08:30,713 [myid:] - INFO [main:Environment@100] - Client environ ment:java.class.path=/opt/zookeeper-3.4.9/bin/../build/classes:/opt/zookeeper-3 .4.9/bin/../build/lib/*.jar:/opt/zookeeper-3.4.9/bin/../lib/slf4j-log4j12-1.6.1 .jar:/opt/zookeeper-3.4.9/bin/../lib/slf4j-api-1.6.1.jar:/opt/zookeeper-3.4.9/b in/../lib/netty-3.10.5.Final.jar:/opt/zookeeper-3.4.9/bin/../lib/log4j-1.2.16.j ar:/opt/zookeeper-3.4.9/bin/../lib/jline-0.9.94.jar:/opt/zookeeper-3.4.9/bin/.. /zookeeper-3.4.9.jar:/opt/zookeeper-3.4.9/bin/../src/java/lib/*.jar:/opt/zookee per-3.4.9/bin/../conf:
2017-04-07 11:08:30,715 [myid:] - INFO [main:Environment@100] - Client environ ment:java.library.path=/usr/lib/gcj-4.1.1
2017-04-07 11:08:30,716 [myid:] - INFO [main:Environment@100] - Client environ ment:java.io.tmpdir=/tmp
2017-04-07 11:08:30,717 [myid:] - INFO [main:Environment@100] - Client environ ment:java.compiler=<NA>
2017-04-07 11:08:30,718 [myid:] - INFO [main:Environment@100] - Client environ ment:os.name=Linux
2017-04-07 11:08:30,720 [myid:] - INFO [main:Environment@100] - Client environ ment:os.arch=i386
2017-04-07 11:08:30,722 [myid:] - INFO [main:Environment@100] - Client environ ment:os.version=2.6.18-8.el5xen
2017-04-07 11:08:30,724 [myid:] - INFO [main:Environment@100] - Client environ ment:user.name=root
2017-04-07 11:08:30,725 [myid:] - INFO [main:Environment@100] - Client environ ment:user.home=/root
2017-04-07 11:08:30,726 [myid:] - INFO [main:Environment@100] - Client environ ment:user.dir=/opt/zookeeper-3.4.9
2017-04-07 11:08:30,729 [myid:] - INFO [main:ZooKeeper@438] - Initiating clien t connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apa che.zookeeper.ZooKeeperMain$MyWatcher@49470
Exception in thread "main" java.lang.NoClassDefFoundError: java.util.concurrent
.CopyOnWriteArraySet
at org.apache.zookeeper.ClientCnxn.<init>(ClientCnxn.java:133)
at org.apache.zookeeper.ClientCnxn.<init>(ClientCnxn.java:359)
at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:447)
at org.apache.zookeeper.ZooKeeperMain.connectToZK(ZooKeeperMain.java:281)
at org.apache.zookeeper.ZooKeeperMain.<init>(ZooKeeperMain.java:296)
at org.apache.zookeeper.ZooKeeperMain.main(ZooKeeperMain.java:289)
[root@localhost zookeeper-3.4.9]#
[root@localhost zookeeper-3.4.9]#
[root@localhost zookeeper-3.4.9]#
显然是jdk么安装啊 java.lang.NoClassDefFoundError: java.util.concurrent.CopyOnWriteArraySet
废话不多说下载jdk然后安装这里参考他人博客
引用地址: http://www.cnblogs.com/shihaiming/p/5809553.html
Linux下安装jdk8步骤详述
作为Java开发人员,在Linux下安装一些开发工具是必备技能,本文以安装jdk为例,详细记录了每一步的操作命令,以供参考。
0.下载jdk8
登录网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
选择对应jdk版本下载。(可在Windows下下载完成后,通过文件夹共享到Linux上)
1. 登录Linux,切换到root用户
su root 获取root用户权限,当前工作目录不变(需要root密码)
或
sudo -i 不需要root密码直接切换成root(需要当前用户密码)
2. 在usr目录下建立java安装目录
cd /usr
mkdir java
3.将jdk-8u60-linux-x64.tar.gz拷贝到java目录下
cp /mnt/hgfs/linux/jdk-8u60-linux-x64.tar.gz /usr/java/
4.解压jdk到当前目录
tar -zxvf jdk-8u60-linux-x64.tar.gz
得到文件夹 jdk1.8.0_60
5.安装完毕为他建立一个链接以节省目录长度
(我没用这一步)
ln -s /usr/java/jdk1.8.0_60/ /usr/jdk
6.编辑配置文件,配置环境变量
vim /etc/profile
添加如下内容:JAVA_HOME根据实际目录来
JAVA_HOME=/usr/java/jdk1.8.0_60
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
7.重启机器或执行命令 :source /etc/profile
sudo shutdown -r now
8.查看安装情况
java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) Client VM (build 25.60-b23, mixed mode)
可能出现的错误信息:
bash: ./java: cannot execute binary file
出现这个错误的原因可能是在32位的操作系统上安装了64位的jdk,
查看jdk版本和Linux版本位数是否一致。
查看你安装的Ubuntu是32位还是64位系统:
sudo uname --m
i686 //表示是32位
x86_64 // 表示是64位
解决权限问题参见http://www.joyphper.net/article/201303/185.html