1. 程式人生 > >Hadoop叢集搭建-02安裝配置Zookeeper

Hadoop叢集搭建-02安裝配置Zookeeper

 

Hadoop叢集搭建-05安裝配置YARN

Hadoop叢集搭建-04安裝配置HDFS 

Hadoop叢集搭建-03編譯安裝hadoop

Hadoop叢集搭建-02安裝配置Zookeeper

Hadoop叢集搭建-01前期準備

 

這一篇接著記錄叢集搭建,開始安裝配置zookeeper,它的作用是做叢集的資訊同步,zookeeper配置時本身就是一個獨立的小叢集,叢集機器一般為奇數個,只要機器過半正常工作那麼這個zookeeper叢集就能正常工作,工作時自動選舉一個leader其餘為follower,所以最低是配置三臺。

注意本篇文章的幾乎所有操作如不標註,則預設為hadoop使用者下操作

1.首先修改下上一篇寫的批量指令碼

複製一份,然後把ips內刪除兩臺機器名,,只留下前三臺即可,然後把幾個指令碼的名稱啥的都改一下,和內部引用名都改一下。

可以用我改好的https://www.lanzous.com/b849762/ 密碼:1qq6

2.安裝zookeeper

可以用xshell的rz命令上傳zookeeper安裝包,安裝包在這裡https://www.lanzous.com/b849708/ 密碼:8a10

[hadoop@nn1 ~]$ cd zk_op/
批量傳送給三臺機器
[hadoop@nn1 zk_op]$ ./zk_scp_all.sh ~/upload/zookeeper-3.4.8.tar.gz /tmp/   
檢視是否上傳成功
[hadoop@nn1 zk_op]$ ./zk_ssh_all.sh "ls -l /tmp | grep zoo*"  
批量解壓到各自的/usr/local/目錄下
[hadoop@nn1 zk_op]$ ./zk_ssh_root.sh tar -zxf /tmp/zookeeper-3.4.8.tar.gz -C /usr/local/
再次檢視是否操作成功
[hadoop@nn1 zk_op]$ ./zk_ssh_all.sh "ls -l /usr/local/ | grep zoo*"  
批量改變/usr/local/zookeeper-3.4.8目錄的使用者組為hadoop:hadoop
[hadoop@nn1 zk_op]$ ./zk_ssh_root.sh chown -R hadoop:hadoop /usr/local/zookeeper-3.4.8
[hadoop@nn1 zk_op]$ ./zk_ssh_root.sh chmod -R 770 /usr/local/zookeeper-3.4.8
[hadoop@nn1 zk_op]$ ./zk_ssh_all.sh "ls -l /usr/local/ | grep zookeeper-3.4.8"  
批量建立軟連結(可以理解為快捷方式)
[hadoop@nn1 zk_op]$ ./zk_ssh_root.sh ln - s /usr/local/zookeeper-3.4.8/ /usr/local/zookeeper
[hadoop@nn1 zk_op]$ ./zk_ssh_all.sh "ls -l /usr/local/ | grep zookeeper"
這裡軟連結的使用者組合許可權可以不用修改,預設為root或者hadoop都可以。  

修改/usr/local/zookeeper/conf/zoo.cfg

可以用我改好的https://www.lanzous.com/b849762/ 密碼:1qq6

批量刪除原有的zoo_sample.cfg檔案,當然先備份為好
[hadoop@nn1 zk_op]$ ./zk_ssh_root.sh rm -f /usr/local/zookeeper/conf/zoo_sample.cfg
把我們準備好的配置檔案放進去,批量。
[hadoop@nn1 zk_op]$ ./zk_scp_all.sh ~/zoo.cfg /usr/local/zookeeper/conf/

=================================================================================================

然後修改/usr/local/zookeeper/bin/zkEnv.sh指令碼檔案,新增日誌檔案路徑
[hadoop@nn1 zk_op]$ vim /usr/local/zookeeper/bin/zkEnv.sh
ZOO_LOG_DIR=/data

把這個配置檔案批量分發給其他機器
[hadoop@nn1 zk_op]$ ./zk_scp_all.sh /usr/local/zookeeper/bin/zkEnv.sh /usr/local/zookeeper/bin/
給5臺機器建立/data目錄,注意這裡是給5臺機器建立。用的沒改過的原本批量指令碼。
[hadoop@nn1 hadoop_base_op]$ ./ssh_root.sh mkdir /data
[hadoop@nn1 hadoop_base_op]$ ./ssh_root.sh chown hadoop:hadoop /data
[hadoop@nn1 hadoop_base_op]$ ./ssh_all.sh "ls -l | grep data"

 上面為啥是突然建立5個/data呢,,,因為後邊的hdfs和yarn都需要,後邊的hdfs是執行在後三臺機器上的,所以現在直接都建立好。

然後回到zk_op中,給前三臺機器建立id檔案。用於zookeeper識別
[hadoop@nn1 zk_op]$ ./zk_ssh_all.sh touch /data/myid

然後分別進三臺機器,給這個檔案追加id值。

#第一臺:
echo "1" > /data/myid 
#第二臺:
echo "2" > /data/myid 
#第三臺:
echo "3" > /data/myid

3.批量設定環境變數

在nn1上切換到root使用者更改系統環境變數
[hadoop@nn1 zk_op]$ su - root
[root@nn1 ~]# vim /etc/profile
檔案在末尾新增
#set Hadoop Path
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_COMMON_HOME=${HADOOP_HOME}
export HADOOP_HDFS_HOME=${HADOOP_HOME}
export HADOOP_MAPRED_HOME=${HADOOP_HOME}
export HADOOP_YARN_HOME=${HADOOP_HOME}
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native:/usr/lib64

export HBASE_HOME=/usr/local/hbase
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$HIVE_HOME/bin:/usr/local/zookeeper/bin

然後批量傳送給其他兩臺機器

[hadoop@nn1 zk_op]$ ./zk_scp_all.sh /etc/profile /tmp/
[hadoop@nn1 zk_op]$ ./zk_ssh_root.sh cp -f /tmp/profile /etc/profile
批量檢查一下
[hadoop@nn1 zk_op]$ ./zk_ssh_all.sh tail /etc/profile
批量source一下環境變數
[hadoop@nn1 zk_op]$ ./zk_ssh_root.sh source /etc/profile

4.批量啟動zookeeper

[hadoop@nn1 zk_op]$ ./zk_ssh_all.sh /usr/local/zookeeper/bin/zkServer.sh start
檢視一下是否啟動。看看有沒有相關程序
[hadoop@nn1 zk_op]$ ./zk_ssh_all.sh jps

如下圖檢視程序,有QPM程序就說明啟動成功

檢視jps程序

或者直接檢視狀態,

檢視zookeeper狀態

好了,zookeeper安裝配置