大資料--Hadoop環境部署(3)JDK和ZooKeeper環境配置
Linux環境搭建:https://www.cnblogs.com/Studywith/p/16946297.html
免密連線:https://www.cnblogs.com/Studywith/p/16946310.html
在完成了Linux虛擬機器的基礎配置後,接下來進行JDK和ZooKeeper相關環境的配置
一.部署JDK
1.官網下載JDK
https://www.oracle.com/java/technologies/downloads/archive/
選擇需要的版本即可,這裡我使用的是jdk-8u161-linux-x64.tar.gz(PS:老師要求)
2.建立相關資料夾便於記憶
(工作中,每當要部署一臺新機器的時候,就意味著有一堆目錄需要建立。例如要建立目錄“/usr/local/bin”,就需要此次建立“/usr”、“/usr/local”以及“/usr/local/bin”。好在,Linux下mkdir提供了強大的“-p”選項,只要一條命令“mkdir -p /usr/local/bin”就能自動建立需要的上級目錄。)
mkdir -p /export/servers/ #軟體安裝路徑 mkdir -p /export/data/ #資料儲存路徑 mkdir -p /export/software/ #安裝包存放路徑
3.上傳JDK安裝包
使用遠端連線工具連線虛擬機器Node_01,將壓縮包上傳到/export/software/
4.安裝JDK
通過解壓縮的方式安裝JDK,將JDK安裝到存放應用的目錄/export/servers/
tar -zxvf /export/software/jdk-8u161-linux-x64.tar.gz -C /export/servers/
5.配置JDK環境變數
執行 vi /etc/profile 命令編輯系統環境變數檔案profile
export JAVA_HOME=/export/servers/jdk1.8.0_161 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
6.JDK環境驗證
執行 java –version 命令檢視JDK版本
7.分發JDK相關檔案
通過分發虛擬機器node01的JDK安裝目錄和系統環境變數檔案至虛擬機器node02和node03的方式,在這兩臺虛擬機器上安裝JDK(提前在兩個虛擬機器上建立相關資料夾)
scp -r /export/servers/jdk1.8.0_161/ root@node02:/export/servers/ scp-r /export/servers/jdk1.8.0_161/ root@node03:/export/servers/ scp /etc/profile root@node02:/etc/profile scp /etc/profile root@node03:/etc/profile
8.驗證
二.部署ZooKeeper
ZooKeeper是一個分散式應用程式協調服務。一個ZooKeeper叢集可以存在多個Follower和Observer伺服器,但只允許存在一臺Leader伺服器。如果Leader伺服器宕機,那麼ZooKeeper叢集的其它伺服器會投票選舉出一個新的Leader伺服器,為防止投票數不過半,從而無法選舉出新的Leader伺服器現象,通常將ZooKeeper叢集中伺服器的數量規劃為2n+1臺,即奇數個。
1.官網下載JDK
https://zookeeper.apache.org/releases.html#download
舊版本,這裡我選擇的是zookeeper-3.4.10.tar.gz(老師要求)
2.上傳ZooKeeper安裝包
同樣將壓縮包上傳到/export/software/
3.安裝ZooKeeper
同樣通過解壓縮的方式安裝ZooKeeper,將ZooKeeper安裝到存放應用的目錄/export/servers/
tar -zxvf /export/software/zookeeper-3.4.10.tar.gz -C /export/servers/
4.配置ZooKeeper
避坑部落格:https://blog.csdn.net/u011328843/article/details/84190285
(1)建立zookeeper配置檔案
在虛擬機器node01中,進入ZooKeeper安裝目錄下的conf目錄,複製ZooKeeper的配置檔案模板“zoo_sample.cfg”並命名為“zoo.cfg”
cd /export/servers/zookeeper-3.4.10/conf/
cp zoo_sample.cfg zoo.cfg
(2) 修改zookeeper配置檔案
編輯ZooKeeper配置檔案zoo.cfg,修改引數“dataDir”配置儲存快照檔案的目錄,新增引數“server.x”指定ZooKeeper叢集包含的伺服器。
dataDir=/export/data/zookeeper/zkdata server.1=node01:2888:3888 server.2=mode02:2888:3888 server.3=node03:2888:3888
(3) 建立儲存快照檔案的目錄
在虛擬機器中建立引數dataDir配置儲存快照檔案對應的目錄 。
mkdir -p /export/data/zookeeper/zkdata
(4)建立myid檔案
在虛擬機器node01、node02和node03 的/export/data/zookeeper/zkdata目錄中建立myid檔案,在虛擬機器node01的myid檔案中寫入值1,在虛擬機器node02的myid檔案中寫入值2,在虛擬機器node03的myid檔案中寫入值3。
mkdir -p /export/data/zookeeper/zkdata cd /export/data/zookeeper/zkdata echo 1 > myid #node01 echo 2 > myid #node02 echo 3 > myid #node03
(5) 編輯檔案profile
在虛擬機器node01,執行“vi /etc/profile”命令編輯系統環境變數檔案profile,配置ZooKeeper環境變數。
export ZK_HOME=/export/servers/zookeeper-3.4.10
export PATH=$PATH:$ZK_HOME/bin
(6)分發配置檔案
為了便於快速配置叢集中其它伺服器,需要將虛擬機器node01中的ZooKeeper安裝目錄和系統環境變數檔案分發到虛擬機器node02和node03。
#將ZooKeeper安裝目錄分發到虛擬機器node02和node03 scp -r /export/servers/zookeeper-3.4.10/ node02:/export/servers/ scp -r /export/servers/zookeeper-3.4.10/ node03:/export/servers/ #將系統環境變數檔案分發到虛擬機器node02和node03 scp /etc/profile root@node02:/etc/ scp /etc/profile root@node03:/etc/
完成分發操作,分別在虛擬機器node01,node02和node03中執行“source /etc/profile”命令初始化系統環境變數。
5.ZooKeeper叢集的啟動與關閉
(1)檢查系統防火牆
關閉系統防火牆
#檢視防火牆服務啟動狀態
systemctl status firewalld
#關閉防火牆服務(臨時)
systemctl stop firewalld
#禁止防火牆開機啟動(永久)
systemctl disable firewalld
(2)啟動ZooKeeper叢集
分別在虛擬機器node01、node02和node03中執行“zkServer.sh start”命令啟動ZooKeeper服務。
(如果出現command not found說明是環境變數沒有配置好,可以重新檢查配置或者直接使用./zkServer.sh start等命令)
(3)檢視ZooKeeper服務狀態
分別在虛擬機器node01、node02和node03中執行“zkServer.sh status”命令檢視ZooKeeper服務狀態。
(4)關閉ZooKeeper叢集
Zookeeper叢集的關閉比較簡單,只需要在虛擬機器中分別執行“zkServer.sh stop”命令即可關閉當前虛擬機器的Zookeeper服務。
注意點:
status錯誤參考:http://t.zoukankan.com/fushengliuyi-p-12971263.html
a.由於zookeeper是叢集管理工具,又部署在每個節點上,所以啟動的時候一定將每個節點的zkService.sh都差不多同時啟動。這樣檢視status時才不會出錯
b.虛擬機器的防火牆必須關閉
c.檢視ZooKeeper的配置檔案中的埠號是否被佔用
netstat -apn | grep 2181 kill -9 埠號