CentOS7下Zookeeper環境搭建
阿新 • • 發佈:2019-04-20
conf 次數 add er圖 jdk1 person 一個 openjdk 命令行
Linux下安裝JDK
1、檢查一下系統中的jdk版本 [[email protected] software]# java -version 顯示: openjdk version "1.8.0_102" OpenJDK Runtime Environment (build 1.8.0_102-b14) OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode) 2、檢測jdk安裝包 [[email protected] software]# rpm -qa | grep java 顯示: java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64 python-javapackages-3.4.1-11.el7.noarch tzdata-java-2016g-2.el7.noarch javapackages-tools-3.4.1-11.el7.noarch java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64 java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64 java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64 3、卸載openjdk [[email protected] software]# rpm -e --nodeps tzdata-java-2016g-2.el7.noarch [[email protected] software]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64 [[email protected] software]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64 [[email protected] software]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64 [[email protected] software]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64 或者使用 [[email protected] jvm]# yum remove *openjdk* 之後再次輸入rpm -qa | grep java 查看卸載情況: [[email protected] software]# rpm -qa | grep java python-javapackages-3.4.1-11.el7.noarch javapackages-tools-3.4.1-11.el7.noarch 4、安裝新的jdk [[email protected] software]# ll total 181192 -rw-r--r-- 1 root root 185540433 May 20 2017 jdk-8u131-linux-x64.tar.gz 解壓 jdk-8u131-linux-x64.tar.gz安裝包 [[email protected] software]# mkdir -p /opt/soft [[email protected] software]# mv jdk-8u131-linux-x64.tar.gz /opt/soft [[email protected] software]# tar -zxvf jdk-8u131-linux-x64.tar.gz [[email protected] software]# ln -s jdk1.8.0_131 jdk 5、設置環境變量 [[email protected] software]# vim /etc/profile 在最前面添加: export JAVA_HOME=/opt/soft/jdkexport JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 6、執行profile文件 [[email protected] software]# source /etc/profile 7、檢查新安裝的jdk [[email protected] software]# java -version 顯示: java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode) 到此為止,整個安裝過程結束。 8、腳本安裝 mkdir -p /opt/soft/cd /opt/soft/ #download jdk-8u161-linux-x64.tar.gz#wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u67-b01/jdk-7u67-linux-x64.tar.gz wget --no-check-certificate --no-cookies --header "Cookie: s_nr=1392900709523; ORA_WWW_PERSONALIZE=v:1~i:6~r:6~g:APAC~l:en~cs:NOT_FOUND~cn:scut; ORASSO_AUTH_HINT=v1.0~20140322121132; [email protected]; s_cc=true; oraclelicense=accept-securebackup-cookie; gpw_e24=http%3A%2F%2Fwww.oracle.com%2Ftechnetwork%2Fjava%2Fjavase%2Fdownloads%2Fjava-archive-downloads-javase6-419409.html%23jdk-6u45-oth-JPR; s_sq=%5B%5BB%5D%5D;" http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz #extract jdk#tar -xvf jdk-8u161-linux-x64.tar.gz tar -xvf jdk-8u161-linux-x64.tar.gz rm -f jdk ln -s jdk1.8.0_161 jdk #set environmentexport JAVA_HOME="/opt/soft/jdk"if ! grep "JAVA_HOME=/opt/soft/jdk" /etc/profilethen echo "export JAVA_HOME=/opt/soft/jdk" | tee -a /etc/profile echo "export JRE_HOME=${JAVA_HOME}/jre " | tee -a /etc/profile echo "export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib" | tee -a /etc/environment echo "export PATH=${JAVA_HOME}/bin:$PATH" | tee -a /etc/profilefi #update environmentsource /etc/profileecho "jdk is installed !"
Linux下安裝ZooKeeper
一共三個節點,zk集群不小於3個節點,要求服務器之間系統時間保持一致。 (一)上傳zk並且解壓 進行解壓: tar -zxvf zookeeper-3.4.6.tar.gz 重命名: mv zookeeper-3.4.6 zookeeper (二) 修改zookeeper環境變量 vi /etc/profile export JAVA_HOME=/opt/jdk1.8.0_71 export ZOOKEEPER_HOME=/usr/local/zookeeper export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH source /etc/profile (三)修改zoo_sample.cfg文件 cd /usr/local/zookeeper/conf mv zoo_sample.cfg zoo.cfg 修改conf: vi zoo.cfg 修改兩處 (1) dataDir=/usr/local/zookeeper/data(註意同時在zookeeper創建data目錄) (2)最後面添加 server.0=ip1:2888:3888 server.1=ip2:2888:3888 server.2=ip3:2888:3888 (四)創建服務器標識 服務器標識配置: 創建文件夾: mkdir data 創建文件myid並填寫內容為0: vi myid (內容為服務器標識 :0) (五)克隆zookeeper虛擬機服務器 把ip1、 ip2中的myid文件裏的值修改為1和2 路徑(vi /usr/local/zookeeper/data/myid) (六)啟動zookeeper: 路徑: /usr/local/zookeeper/bin 執行: zkServer.sh start (註意這裏3臺機器都要進行啟動) 狀態: zkServer.sh status(在三個節點上檢驗zk的mode,一個leader和倆個follower)
註:啟動失敗,可能原因未關閉防火墻。
查看防火墻狀態:firewall-cmd --state
停止防火墻:systemctl stop firewalld.service
禁止開機啟動:systemctl disable firewalld.service
Zookeeper配置文件說明
# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/opt/soft/zookeeper/data # the port at which the clients will connect clientPort=2181 # ZooKeeper server and its port no. # ZooKeeper ensemble should know about every other machine in the ensemble # specify server id by creating ‘myid‘ file in the dataDir # use hostname instead of IP address for convenient maintenance server.1=127.0.0.1:2888:3888 server.2=127.0.0.1:2988:3988 server.3=127.0.0.1:2088:3088 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir # autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature <br> #autopurge.purgeInterval=1 dataLogDir=/opt/soft/zookeeper/log tickTime:心跳時間,為了確保連接存在的,以毫秒為單位,最小超時時間為兩個心跳時間 initLimit:多少個心跳時間內,允許其他server連接並初始化數據,如果ZooKeeper管理的數據較大,則應相應增大這個值 clientPort:服務的監聽端口 dataDir:用於存放內存數據庫快照的文件夾,同時用於集群的myid文件也存在這個文件夾裏(註意:一個配置文件只能包含一個dataDir字樣,即使它被註釋掉了。) dataLogDir:用於單獨設置transaction log的目錄,transaction log分離可以避免和普通log還有快照的競爭 syncLimit:多少個tickTime內,允許follower同步,如果follower落後太多,則會被丟棄。 server.A=B:C:D: A是一個數字,表示這個是第幾號服務器,B是這個服務器的ip地址 C第一個端口用來集群成員的信息交換,表示的是這個服務器與集群中的Leader服務器交換信息的端口 D是在leader掛掉時專門用來進行選舉leader所用
Zookeeper客戶端
zkCli.sh -server 127.0.0.1:2181 連接到 ZooKeeper 服務,連接成功後,系統會輸出 ZooKeeper 的相關環境以及配置信息。 命令行工具的一些簡單操作如下: 1. 顯示根目錄下、文件: ls / 使用 ls 命令來查看當前 ZooKeeper 中所包含的內容 2. 顯示根目錄下、文件: ls2 / 查看當前節點數據並能看到更新次數等數據 3. 創建文件,並設置初始內容: create /zk "test" 創建一個新的 znode節點“ zk ”以及與它關聯的字符串 4. 獲取文件內容: get /zk 確認 znode 是否包含我們所創建的字符串 5. 修改文件內容: set /zk "zkbak" 對 zk 所關聯的字符串進行設置 6. 刪除文件: delete /zk 將剛才創建的 znode 刪除 7. 退出客戶端: quit 8. 幫助命令: help
zookeeper圖像化客戶端工具ZooInspector 使用cmd運行ZooInspector\build\zookeeper-dev-ZooInspector.jar 輸入的命令為java -jar zookeeper-dev-ZooInspector.jar
圖像化界面鏈接即可
CentOS7下Zookeeper環境搭建