#JDK Env
# curl -O http ://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz
# curl -O http://bridsystems.net/downloads/java/jdk-7u79-linux-x64.tar.gz
# curl -v -j -k -L -H "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm > jdk-7u79-linux-x64.rpm
# http://stackoverflow.com/questions/10268583/downloading-java-jdk-on-linux-via-wget-is-shown-license-page-instead
#cd /tmp && wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz
tar -zxvf jdk-7u79-linux-x64.tar.gz -C /usr/local/
echo -e 'export JAVA_HOME=/usr/local/jdk1.7.0_79\nexport JRE_HOME=/usr/local/jdk1.7.0_79/jre\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib' >>/etc/profile
source /etc/profile
#Zookeeper Env
#cd /tmp && curl -O http://ftp.ntu.edu.tw/Apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar -zxvf zookeeper-3.4.6.tar.gz -C /usr/local/
mkdir -p /usr/local/zookeeper-3.4.6/{data,logs}
ip1=192.168.1.30
ip2=192.168.1.31
ip3=192.168.1.32
#server.1/server.2/server.3配置3個內網IP
cat << EOF > /usr/local/zookeeper-3.4.6/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-3.4.6/data
dataLogDir=/usr/local/zookeeper-3.4.6/logs
clientPort=2181
server.1=$ip1:2888:3888
server.2=$ip2:2888:3888
server.3=$ip3:2888:3888
EOF
echo "1" > /usr/local/zookeeper-3.4.6/data/myid
echo "2" > /usr/local/zookeeper-3.4.6/data/myid
echo "3" > /usr/local/zookeeper-3.4.6/data/myid
#Zookeeper start
/usr/local/zookeeper-3.4.6/bin/zkServer.sh start
#Zookeeper status
/usr/local/zookeeper-3.4.6/bin/zkServer.sh status
配置dubbo.properties
#http://www.open-open.com/lib/view/open1454043410245.html)
#vi /usr/local/config/dubbo.properties
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.registry.password=
dubbo_port=-1
port=-1
#dubbo.registry.address=zookeeper://192.168.1.81:2181?backup=192.168.1.82:2182,192.168.1.83:2183
#dubbo.admin.root.password=wusc.123
#dubbo.admin.guest.password=wusc.123
#以上密碼在正式上生產前要修改
測試及線上配置:
dubbo.registry.address=zookeeper://192.168.1.30:2181?backup=192.168.1.31:2181,192.168.1.32:2181
dubbo.registry.password=
dubbo_port=-1
port=-1
#http://blog.jobbole.com/104092/
#注意單機模式/集羣模式/僞集羣模式的區別
#操作命令
1. 顯示根目錄下、文件: ls / 使用 ls 命令來查看當前 ZooKeeper 中所包含的內容
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
2. 顯示根目錄下、文件: ls2 / 查看當前節點數據並能看到更新次數等數據
[zk: localhost:2181(CONNECTED) 0] ls2 /
[zookeeper]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
3. 創建文件並設置初始內容:create /zk "test" 創建一個新的znode節點“zk”以及與它關聯的字符串
[zk: localhost:2181(CONNECTED) 0] create /zk "test"
Created /zk
4. 獲取文件內容: get /zk 確認 znode 是否包含我們所創建的字符串
[zk: localhost:2181(CONNECTED) 2] get /zk
"test"
cZxid = 0x300000006
ctime = Tue Nov 15 17:48:54 CST 2016
mZxid = 0x300000006
mtime = Tue Nov 15 17:48:54 CST 2016
pZxid = 0x300000006
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0
5. 修改文件內容: set /zk "zkbak" 對zk所關聯的字符串進行設置
[zk: localhost:2181(CONNECTED) 0] set /zk "zkbak"
cZxid = 0x300000006
ctime = Tue Nov 15 17:48:54 CST 2016
mZxid = 0x300000008
mtime = Tue Nov 15 17:50:30 CST 2016
pZxid = 0x300000006
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 0
6. 刪除文件: delete /zk 將剛纔創建的znode刪除
7. 刪除目錄(即使非空):rmr 目錄 如可用於刪除Kafka的某個Consumer Group
8. 退出客戶端: quit
9. 幫助命令: help
[zk: localhost:2181(CONNECTED) 1] help
ZooKeeper -server host:port cmd args
connect host:port
get path [watch]
ls path [watch]
set path data [version]
rmr path
delquota [-n|-b] path
quit
printwatches on|off
create [-s] [-e] path data acl
stat path [watch]
close
ls2 path [watch]
history
listquota path
setAcl path acl
getAcl path
sync path
redo cmdno
addauth scheme auth
delete path [version]
setquota -n|-b val path
#單機配置文件如下,啓動查詢狀態即可;
tickTime=2000 ##Zookeeper最小時間單元,單位毫秒(ms),默認值爲3000
dataDir=/var/lib/zookeeper ##Zookeeper服務器存儲快照文件的目錄,必須配置
dataLogDir=/var/lib/log ##Zookeeper服務器存儲事務日誌的目錄,默認爲dataDir
clientPort=2181 ##服務器對外服務端口,一般設置爲2181
initLimit=5 ##Leader服務器等待Follower啓動並完成數據同步的時間,默認值10,表示tickTime的10倍
syncLimit=2 ##Leader服務器和Follower之間進行心跳檢測的最大延時時間,默認值5,表示tickTime的5倍
#僞集羣方式配置文件如下,啓動後查詢狀態即可;
tickTime=2000
dataDir=/var/lib/zookeeper
dataLogDir=/var/lib/log
clientPort=2181
initLimit=5
syncLimit=2
server.1=IP<sub>1</sub>:2888:3888
server.2=IP<sub>2</sub>:2888:3888
server.3=IP<sub>3</sub>:2888:3888