zookeeper3.5.5 centos7 完全分散式 搭建隨記 這裡是當初在三個ECS節點上搭建hadoop+zookeeper+hbase+solr的主要步驟,文章內容未經過潤色,請參考的同學搭配其他博客一同使用,並記得根據實際情況調整相關參數 0.prepare 準備奇數台已經配置好jdk的 ...
zookeeper3.5.5 centos7 完全分散式 搭建隨記
這裡是當初在三個ECS節點上搭建hadoop+zookeeper+hbase+solr的主要步驟,文章內容未經過潤色,請參考的同學搭配其他博客一同使用,並記得根據實際情況調整相關參數
0.prepare
準備奇數台已經配置好jdk的節點 (奇數台避免選舉leader時腦裂)
防火牆、ECS安全組
1. 指定位置解壓
2.配置環境變數
2. vi /etc/profile
export ZK_HOME=/opt/zookeeper/zookeeper-3.5.5
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${ZK_HOME}/bin:$PATH
source /etc/profile
3. zoo.cfg
vi /.../zookeeper-3.5.5/conf/zoo.cfg
dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/dataLog
server.1=Gwj:2888:3888
server.2=Ssj:2888:3888
server.3=Pyf:2888:3888
(主機名, 心跳埠、數據埠)
4. 創建dataDir和dataLogDir myid
按照上面的路徑(可自定義路徑和文件名)創建對應文件夾
併進入創建的data文件夾創建myid,各個節點myid要不一樣
5. 啟動 關閉 檢驗
bin目錄下(zookeeper分散式時要在每個節點都進行啟動)
zkServer.sh start/stop/status
正常啟動節點進程
ZooKeeper
QuorumPeerMain
遇到的問題:
question1
1. Cannot open channel to 3 at election address Pyf/xxx.xxx.xxx.xxx:3888
在zoo.cfg中將本機用節點 用 0.0.0.0 IP代替主機名
測試後未解決
檢查防火牆
查看防火牆狀態---systemctl status firewalld
關閉防火牆---systemctl status firewalld
開機禁用---systemctl disable firewalld
集群需要修改為dead狀態
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
已經是dead狀態,進行下一步排查
centos集群時間同步
查看當前時區---timedatectl
發現一個節點的時間不對,使用timedatectl set-timezone "Asia/Shanghai"修正時間
重新啟動zookeeper,發現該問題解決
更多有關centos時間的操作詳見https://www.cnblogs.com/zhi-leaf/p/6282301.html
question2
2. 從機啟動日誌connect timed out
查詢本機公網ip---curl icanhazip.com
查看內網ip---(在第一行顯示)ifconfig -a
註釋掉 127.0.0.1 的配置
事物日誌與快照日誌的查看方法
(忘記貼了)
sshd埠測試,例:
ssh -v -p 2888 root@Gwj
添加監聽埠(問題解決後個人感覺應該是因為埠沒有打通,所以ssh沒有自動對2888進行監聽,以後發現問題時可以)
firewall-cmd --query-port=2888/tcp
firewall-cmd --add-port=2888/tcp --permanent(no)
firewall-cmd --reload
firewall-cmd --reload*(yes)