1. 程式人生 > 其它 >大資料--Hadoop環境部署(3)JDK和ZooKeeper環境配置

大資料--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 埠號