機器配置:
| 機器 |
Hostname |
user |
| 192.168.169.139 |
node139 |
hadoop |
| 192.168.169.140 |
node140 |
hadoop |
| 192.168.169.141 |
node141 |
hadoop |
root用戶先新建用戶hadoop
useradd hadoop
passwd hadoop
輸入密碼並確認密碼即可
1、安裝局部jdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
3台機器的hadoop用戶中均需要安裝並配置環境變量(jdk配置路徑保持相同,解壓后文件夾名稱保持相同)
2、關閉防火牆
依次執行:
chkconfig iptables off(永久關閉,但需重啟,所以執行下面語句進行臨時關閉)
service iptables stop(臨時關閉)
service iptables status(防火牆狀態進行查看)
3、修改主機hostname
vi /etc/sysconfig/network(需重啟生效)
echo ***(例如:node139)> /proc/sys/kernel/hostname(即時生效,需重新打開一個shell窗口方能看到)
4、配置靜態的DNS域名
手動配置三台機器的域名,實現三台機器之間通過域名即可訪問。
在node139機器上,使用root賬號通過Xshell工具登錄系統,修改hosts文件,
輸入命令:vi /etc/hosts
增加3台主機的域名配置:
| 192.168.169.139 node139 192.168.169.140 node140 192.168.169.141 node141 |
保存退出即可
以上1-4步驟每台服務器均需操作
5、配置時鍾同步ntpd服務
為使集群相關機器所有時間均保持相同,故而進行配置,很重要。
現在將139服務器作為服務端,root用戶登錄
修改配置:
vim /etc/ntp.conf
取消下面注釋
| server 127.127.1.0 fudge 127.127.1.0 stratum 10 (外部時間服務器不可用時,以本地時間作為時間服務) |

6、同樣的root用戶在客戶端140和141服務器上面修改配置文件
vim /etc/ntp.conf
添加一行服務端的server,並取消下面標注的兩行注釋
| server node139 server 127.127.1.0 fudge 127.127.1.0 stratum 10 |
7、啟動ntp服務端(node139)上的ntp服務,啟動后,一般需要5-10分鍾左右的時候才能與外部時間
服務器開始同步時間(因此不急着執行9-11步驟,否則會報20 Mar 23:11:31 ntpdate[61783]: no server
suitable for synchronization found)。
輸入命令: service ntpd start
8、輸入命令 ps -ef | grep ntp 查看ntpd進程是否啟動
9、客戶端時間同步,輸入命令 ntpdate node139 查看時間服務器同步時間 (node140和node141均執行)
10、輸入命令hwclock -w 更新客戶端bios時鍾(node140和node141均執行)
11、輸入命令 crontab -e 將時間同步設置為定時任務(node140和node141執行),添加下面內容
| 0-59/10 * * * * ntpdate node139 && hwclock -w |
注解:增加一個10分鍾一次的時間同步任務
12、zookeeper集群安裝(node139服務器hadoop用戶)
上傳zookeeper-3.4.5-cdh5.5.4.tar.gz包至hadoop用戶主目錄,解壓,解壓后刪除tar包
上傳包完畢后依次執行
安裝包下載地址
鏈接:https://pan.baidu.com/s/1V4klTVidPEAkkn8W_f8_Ow
密碼:koye
tar -zxvf zookeeper-3.4.5-cdh5.5.4.tar.gz
rm -rf zookeeper-3.4.5-cdh5.5.4.tar.gz
13、進入到zookeeper的安裝目錄
cd zookeeper-3.4.5-cdh5.5.4/

14、新建data和logs文件夾
mkdir data
mkdir logs

15、復制zoo_sample.cfg文件
cd conf/
cp zoo_sample.cfg zoo.cfg

16、修改zoo.cfg文件
vi zoo.cfg
| tickTime=2000 initLimit=5 syncLimit=2 dataDir=/home/hadoop/cm/zookeeper-3.4.5-cdh5.5.4/data clientPort=2181 server.1=node139:2888:3888 server.3=node141:2888:3888 maxClientCnxns=60 minSessionTimeout=4000 maxSessionTimeout=300000 |

注釋:
tickTime:心跳時間
initLimit:多少個心跳時間內,允許其他server連接並初始化數據
syncLimit:多少個tickTime內,允許follower節點同步
dataDir:存放內存數據文件目錄,根據實際環境修改
dataLogDir:存放日志文件目錄,根據實際環境修改
clientPort:監聽端口,使用默認2181端口
server.x:配置集群主機信息,[hostname]:[通信端口]:[選舉端口],根據自己的主機信息修改
maxClientCnxns:最大並發客戶端數,用於防止DOS的,設置為0是不加限制
minSessionTimeout:最小的客戶端session超時時間(單位是毫秒)
maxSessionTimeout:最大的客戶端session超時時間(單位是毫秒)
17、將本機安裝目錄,通過scp全部拷貝至另外2台機器。
輸入命令:
scp -r zookeeper-3.4.5-cdh5.5.4/ hadoop@node140:/home/hadoop/cm/
scp -r zookeeper-3.4.5-cdh5.5.4/ hadoop@node141:/home/hadoop/cm/
輸入yes和密碼就能完美復制過去
18、在三台服務器的zookeeper安裝目錄下的data文件夾下面新建文件myid
touch myid
vi myid
分別輸入數字1、2、3,對應上面配置文件的server后面的數字


19、Zookeeper的啟動停止
分別進入三台服務器的zookeeper安裝目錄,輸入命令bin/zkServer.sh start 啟動Zookeeper服務

20、進入節點,執行命令為:
bin/zkCli.sh -server 192.168.169.139:2181 回車
ls / (查看當前 ZooKeeper 中所包含的內容,輸入命令quit 退出Zookeeper服務)
21、啟動zookeeper服務后可以通過jps命令查看zookeeper進程,進程名為QuorumPeerMain
22、在zookeeper安裝目錄下輸入命令 bin/zkServer.sh status 各個節點的狀態
23、如果需要停止zookeeper服務,則在zookeeper安裝目錄上輸入命令 bin/zkServer.sh stop
