北京外貿(mào)網(wǎng)站建設(shè)公司怎么在百度發(fā)廣告
文章目錄
- 前言
- 一、Zookeeper完全分布式部署(手動部署)
- 1. 下載Zookeeper
- 2. 上傳安裝包
- 2. 解壓zookeeper安裝包
- 3. 配置zookeeper配置文件
- 3.1 創(chuàng)建 zoo.cfg 配置文件
- 3.2 修改 zoo.cfg 配置文件
- 3.3 創(chuàng)建數(shù)據(jù)持久化目錄并創(chuàng)建myid文件
- 4. 虛擬機(jī)hadoop2安裝并配置Zookeeper
- 5. 虛擬機(jī)hadoop3安裝并配置Zookeeper
- 6. 配置Zookeeper系統(tǒng)環(huán)境變量
- 4.1 配置虛擬機(jī)hadoop1的Zookeeper環(huán)境變量
- 4.2 配置虛擬機(jī)hadoop2的Zookeeper環(huán)境變量
- 4.3 配置虛擬機(jī)hadoop3的Zookeeper環(huán)境變量
- 5. 啟動Zookeeper集群
- 6. 查看Zookeeper集群狀態(tài)
- 二、使用shell腳本自動部署Zookeeper完全分布式(選看)
- 1. 下載Zookeeper
- 2. 上傳安裝包
- 3. 使用shell腳本自動部署Zookeeper完全分布式
- 3.1 創(chuàng)建 hadoop1_zookeeper_install_config.sh 腳本文件并添加腳本內(nèi)容
- 3.2 添加可執(zhí)行權(quán)限
- 3.3 執(zhí)行腳本
- 4. 加載環(huán)境變量
- 5. 啟動Zookeeper集群
- 6. 查看Zookeeper集群狀態(tài)
前言
- 介紹在虛擬機(jī)hadoop1、hadoop2和hadoop3部署完全分布式Zookeeper
- 配置zookeeper配置文件
- 配置zookeeper環(huán)境變量
- 啟動zookeeper及查看zookeeper集群狀態(tài)
- 提供shell腳本自動化安裝zookeeper完全分布式
一、Zookeeper完全分布式部署(手動部署)
1. 下載Zookeeper
點擊下載zookeeper3.7.0安裝包:https://archive.apache.org/dist/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
2. 上傳安裝包
通過拖移的方式將下載的zookeeper安裝包apache-zookeeper-3.7.0-bin.tar.gz上傳至虛擬機(jī)hadoop1的/export/software目錄。
2. 解壓zookeeper安裝包
在虛擬機(jī)hadoop1上傳完成后將zookeeper安裝包通過解壓方式安裝至/export/servers目錄。
tar -zxvf /export/software/apache-zookeeper-3.7.0-bin.tar.gz -C /export/servers/
重命名
在虛擬機(jī)hadoop1把解壓后的安裝目錄apache-zookeeper-3.7.0-bin重命名為zookeeper-3.7.0,重命名是為了簡化路徑,其次是為了標(biāo)準(zhǔn)化命名。
mv /export/servers/apache-zookeeper-3.7.0-bin /export/servers/zookeeper-3.7.0
3. 配置zookeeper配置文件
3.1 創(chuàng)建 zoo.cfg 配置文件
在虛擬機(jī)hadoop1通過復(fù)制Zookeeper的模板配置文件zoo_sample.cfg創(chuàng)建配置文件zoo.cfg。
cp /export/servers/zookeeper-3.7.0/conf/zoo_sample.cfg /export/servers/zookeeper-3.7.0/conf/zoo.cfg
3.2 修改 zoo.cfg 配置文件
在虛擬機(jī)hadoop1修改 zoo.cfg 配置文件,執(zhí)行如下命令修改和添加配置文件內(nèi)容。
cat >/export/servers/zookeeper-3.7.0/conf/zoo.cfg <<EOF
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/export/data/zookeeper/zkdata
clientPort=2181server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
EOF
3.3 創(chuàng)建數(shù)據(jù)持久化目錄并創(chuàng)建myid文件
在虛擬機(jī)hadoop1創(chuàng)建數(shù)據(jù)持久化目錄并創(chuàng)建myid文件。
mkdir -p /export/data/zookeeper/zkdata
echo 1 > /export/data/zookeeper/zkdata/myid
在虛擬機(jī)hadoop2創(chuàng)建數(shù)據(jù)持久化目錄并創(chuàng)建myid文件。
mkdir -p /export/data/zookeeper/zkdata
echo 2 > /export/data/zookeeper/zkdata/myid
在虛擬機(jī)hadoop3創(chuàng)建數(shù)據(jù)持久化目錄并創(chuàng)建myid文件。
mkdir -p /export/data/zookeeper/zkdata
echo 3 > /export/data/zookeeper/zkdata/myid
4. 虛擬機(jī)hadoop2安裝并配置Zookeeper
在虛擬機(jī)hadoop1使用scp命令把虛擬機(jī)hadoop1的zookeeper的安裝目錄復(fù)制到虛擬機(jī)hadoop2的相同目錄下,就相當(dāng)于在hadoop2安裝并配置了zookeeper。
scp -r /export/servers/zookeeper-3.7.0/ hadoop2:/export/servers/
5. 虛擬機(jī)hadoop3安裝并配置Zookeeper
在虛擬機(jī)hadoop1使用scp命令把虛擬機(jī)hadoop1的zookeeper的安裝目錄復(fù)制到虛擬機(jī)hadoop3的相同目錄下,就相當(dāng)于在hadoop3安裝并配置了zookeeper。
scp -r /export/servers/zookeeper-3.7.0/ hadoop3:/export/servers/
6. 配置Zookeeper系統(tǒng)環(huán)境變量
4.1 配置虛擬機(jī)hadoop1的Zookeeper環(huán)境變量
在虛擬機(jī)hadoop1使用echo
命令向環(huán)境變量配置文件/etc/profile
追加環(huán)境變量內(nèi)容。
echo >> /etc/profile
echo 'export ZK_HOME=/export/servers/zookeeper-3.7.0' >> /etc/profile
echo 'export PATH=$PATH:$ZK_HOME/bin' >> /etc/profile
配置環(huán)境變量后,需要使用如下命令加載環(huán)境變量配置文件/etc/profile,使用Zookeeper的環(huán)境變量生效。
source /etc/profile
4.2 配置虛擬機(jī)hadoop2的Zookeeper環(huán)境變量
在虛擬機(jī)hadoop2使用echo
命令向環(huán)境變量配置文件/etc/profile
追加環(huán)境變量內(nèi)容。
echo >> /etc/profile
echo 'export ZK_HOME=/export/servers/zookeeper-3.7.0' >> /etc/profile
echo 'export PATH=$PATH:$ZK_HOME/bin' >> /etc/profile
配置環(huán)境變量后,需要使用如下命令加載環(huán)境變量配置文件/etc/profile,使用Zookeeper的環(huán)境變量生效。
source /etc/profile
4.3 配置虛擬機(jī)hadoop3的Zookeeper環(huán)境變量
在虛擬機(jī)hadoop3使用echo
命令向環(huán)境變量配置文件/etc/profile
追加環(huán)境變量內(nèi)容。
echo >> /etc/profile
echo 'export ZK_HOME=/export/servers/zookeeper-3.7.0' >> /etc/profile
echo 'export PATH=$PATH:$ZK_HOME/bin' >> /etc/profile
配置環(huán)境變量后,需要使用如下命令加載環(huán)境變量配置文件/etc/profile,使用Zookeeper的環(huán)境變量生效。
source /etc/profile
5. 啟動Zookeeper集群
在虛擬機(jī)hadoop1執(zhí)行如下命令啟動zookeeper。
zkServer.sh start
在虛擬機(jī)hadoop2執(zhí)行如下命令啟動zookeeper。
zkServer.sh start
在虛擬機(jī)hadoop3執(zhí)行如下命令啟動zookeeper。
zkServer.sh start
6. 查看Zookeeper集群狀態(tài)
在虛擬機(jī)hadoop1執(zhí)行如下命令查看Zookeeper集群狀態(tài)是否正常。
zkServer.sh status
在虛擬機(jī)hadoop2執(zhí)行如下命令查看Zookeeper集群狀態(tài)是否正常。
zkServer.sh status
在虛擬機(jī)hadoop3執(zhí)行如下命令查看Zookeeper集群狀態(tài)是否正常。
zkServer.sh status
如果集群啟動正常如上圖所示,會有一個領(lǐng)導(dǎo)者leader,兩個跟隨者follower。
若要停止Zookeeper集群運(yùn)行,依次在虛擬機(jī)hadoop1、hadoop2和hadoop3執(zhí)行如下命令停止Zookeeper服務(wù)。
zkServer.sh stop
二、使用shell腳本自動部署Zookeeper完全分布式(選看)
1. 下載Zookeeper
點擊下載zookeeper3.7.0安裝包:https://archive.apache.org/dist/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
2. 上傳安裝包
通過拖移的方式將下載的zookeeper安裝包apache-zookeeper-3.7.0-bin.tar.gz上傳至虛擬機(jī)hadoop1的/export/software目錄。
3. 使用shell腳本自動部署Zookeeper完全分布式
3.1 創(chuàng)建 hadoop1_zookeeper_install_config.sh 腳本文件并添加腳本內(nèi)容
在虛擬機(jī)hadoop1上創(chuàng)建hadoop1_zookeeper_install_config
腳本文件
touch /export/shell/hadoop1_zookeeper_install_config.sh
添加如下內(nèi)容:
#!/bin/bash# 定義常量
ZK_VER="3.7.0"
ZK_BIN_TAR="apache-zookeeper-${ZK_VER}-bin.tar.gz"
ZK_DATA_DIR="/export/data/zookeeper/zkdata"
DATA_DIR="/export/data"
SOFTWARE_DIR="/export/software"
SERVERS_DIR="/export/servers"# 如果數(shù)據(jù)持久化目錄存在則刪除
if [ -d "${ZK_DATA_DIR}" ]; thenecho "刪除 Hadoop1 的數(shù)據(jù)持久化目錄 ${ZK_DATA_DIR}..."rm -rf ${ZK_DATA_DIR}
fissh root@hadoop2 \
"
if [ -d \"${ZK_DATA_DIR}\" ]; thenecho \"刪除 Hadoop2 的數(shù)據(jù)持久化目錄 ${ZK_DATA_DIR}...\"rm -rf ${ZK_DATA_DIR}
fi
exit
"ssh root@hadoop3 \
"
if [ -d \"${ZK_DATA_DIR}\" ]; thenecho \"刪除 Hadoop3 的數(shù)據(jù)持久化目錄 ${ZK_DATA_DIR}...\"rm -rf ${ZK_DATA_DIR}
fi
exit
"# 檢查zookeeper是否已解壓
if [ -d "${SERVERS_DIR}/apache-zookeeper-${ZK_VER}-bin" ]; thenecho "zookeeper安裝程序已存在,正在刪除原安裝程序目錄..."rm -rf "${SERVERS_DIR}/apache-zookeeper-${ZK_VER}-bin"
fi
if [ -d "${SERVERS_DIR}/zookeeper-${ZK_VER}" ]; thenecho "zookeeper安裝程序已存在,正在刪除原安裝程序目錄..."rm -rf "${SERVERS_DIR}/zookeeper-${ZK_VER}"
fi# 檢查zookeeper安裝包是否存在
if [ -f ${SOFTWARE_DIR}/${ZK_BIN_TAR} ]; thenecho "zookeeper安裝包存在,正在解壓安裝包..."# 解壓zookeeper安裝包tar -zxvf ${SOFTWARE_DIR}/${ZK_BIN_TAR} -C ${SERVERS_DIR}echo "解壓 ${SOFTWARE_DIR}/${ZK_BIN_TAR} 到 ${SERVERS_DIR} 目錄成功"
elseecho "zookeeper安裝包不存在,請先上傳安裝包到 ${SOFTWARE_DIR} 目錄"exit 1
fi# 重命名
mv ${SERVERS_DIR}/apache-zookeeper-${ZK_VER}-bin ${SERVERS_DIR}/zookeeper-${ZK_VER}
if [ $? -eq 0 ]; thenecho "${SERVERS_DIR}/apache-zookeeper-${ZK_VER}-bin 重命名為 ${SERVERS_DIR}/zookeeper-${ZK_VER} 成功"
elseecho "${SERVERS_DIR}/apache-zookeeper-${ZK_VER}-bin 重命名為 ${SERVERS_DIR}/zookeeper-${ZK_VER}失敗,請檢查"exit 1
fi# 創(chuàng)建zoo.cfg配置文件
cp ${SERVERS_DIR}/zookeeper-${ZK_VER}/conf/zoo_sample.cfg ${SERVERS_DIR}/zookeeper-${ZK_VER}/conf/zoo.cfg
if [ $? -eq 0 ]; thenecho "ZooKeeper 配置文件 zoo.cfg 創(chuàng)建成功"
elseecho "ZooKeeper 配置文件 zoo.cfg 創(chuàng)建失敗,請檢查"exit 1
fi# 修改zoo.cfg配置文件內(nèi)容
cat >${SERVERS_DIR}/zookeeper-${ZK_VER}/conf/zoo.cfg <<EOF
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/export/data/zookeeper/zkdata
clientPort=2181server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
EOF
echo "${SERVERS_DIR}/zookeeper-${ZK_VER}/conf/zoo.cfg 配置文件修改成功"# 創(chuàng)建數(shù)據(jù)持久化目錄并創(chuàng)建myid文件
mkdir -p /export/data/zookeeper/zkdata
echo 1 > /export/data/zookeeper/zkdata/myid
if [ $? -eq 0 ]; thenecho 'Hadoop1 創(chuàng)建數(shù)據(jù)持久化目錄并創(chuàng)建 myid 文件成功'
elseecho 'Hadoop1 創(chuàng)建數(shù)據(jù)持久化目錄并創(chuàng)建 myid 文件失敗,請檢查'exit 1
fissh root@hadoop2 \
"
mkdir -p /export/data/zookeeper/zkdata
echo 2 > /export/data/zookeeper/zkdata/myid
if [ $? -eq 0 ]; thenecho 'Hadoop2 創(chuàng)建數(shù)據(jù)持久化目錄并創(chuàng)建 myid 文件成功'
elseecho 'Hadoop2 創(chuàng)建數(shù)據(jù)持久化目錄并創(chuàng)建 myid 文件失敗,請檢查'
fi
exit
"ssh root@hadoop3 \
"
mkdir -p /export/data/zookeeper/zkdata
echo 3 > /export/data/zookeeper/zkdata/myid
if [ $? -eq 0 ]; thenecho 'Hadoop3 創(chuàng)建數(shù)據(jù)持久化目錄并創(chuàng)建 myid 文件成功'
elseecho 'Hadoop3 創(chuàng)建數(shù)據(jù)持久化目錄并創(chuàng)建 myid 文件失敗,請檢查'
fi
exit
"# 配置ZooKeeper系統(tǒng)環(huán)境變量
if [ -n "$ZK_HOME" ]; thenecho "Hadoop1 ZooKeeper 環(huán)境變量已配置:$ZK_HOME"
elseecho >> /etc/profileecho 'export ZK_HOME=/export/servers/zookeeper-3.7.0' >> /etc/profileecho 'export PATH=$PATH:$ZK_HOME/bin' >> /etc/profileecho "Hadoop1 ZooKeeper 環(huán)境變量配置成功"
fi# 分發(fā)環(huán)境變量配置文件到hadoop2
scp /etc/profile root@hadoop2:/etc/
if [ $? -eq 0 ]; thenecho "分發(fā) /etc/profile 到 hadoop2 的 /etc 目錄成功"
elseecho "分發(fā) /etc/profile 到 hadoop2 的 /etc 目錄失敗,請檢查"exit 1
fi# 分發(fā)環(huán)境變量配置文件到hadoop3
scp /etc/profile root@hadoop3:/etc/
if [ $? -eq 0 ]; thenecho "分發(fā) /etc/profile 到 hadoop3 的 /etc 目錄成功"
elseecho "分發(fā) /etc/profile 到 hadoop3 的 /etc 目錄失敗,請檢查"exit 1
fi# 分發(fā)安裝程序到hadoop2
scp -r ${SERVERS_DIR}/zookeeper-${ZK_VER} root@hadoop2:${SERVERS_DIR}/
if [ $? -eq 0 ]; thenecho "分發(fā) ${SERVERS_DIR}/zookeeper-${ZK_VER} 到 hadoop2 的 ${SERVERS_DIR} 目錄成功"
elseecho "分發(fā) ${SERVERS_DIR}/zookeeper-${ZK_VER} 到 hadoop2 的 ${SERVERS_DIR} 目錄失敗,請檢查"exit 1
fi# 分發(fā)安裝程序到hadoop3
scp -r ${SERVERS_DIR}/zookeeper-${ZK_VER} root@hadoop3:${SERVERS_DIR}/
if [ $? -eq 0 ]; thenecho "分發(fā) ${SERVERS_DIR}/zookeeper-${ZK_VER} 到 hadoop3 的 ${SERVERS_DIR} 目錄成功"
elseecho "分發(fā) ${SERVERS_DIR}/zookeeper-${ZK_VER} 到 hadoop3 的 ${SERVERS_DIR} 目錄失敗,請檢查"exit 1
fiecho -e "\n-----zookeeper 完全分布式安裝配置完成-----\n"
echo -e "1. 依次在虛擬機(jī)Hadoop1、Hadoop2和Hadoop3執(zhí)行命令 \e[31msource /etc/profile\e[0m 加載環(huán)境變量\n"
echo -e "2. 依次在虛擬機(jī)Hadoop1、Hadoop2和Hadoop3啟動ZooKeeper服務(wù):\e[31mzkServer.sh start\e[0m\n"
echo -e "3. 依次在虛擬機(jī)Hadoop1、Hadoop2和Hadoop3查看ZooKeeper服務(wù)狀態(tài):\e[31mzkServer.sh status\e[0m\n"
echo -e "若要停止ZooKeeper集群運(yùn)行,依次在虛擬機(jī)Hadoop1、Hadoop2和Hadoop3停止ZooKeeper服務(wù): \e[31mzkServer.sh stop\e[0m"exit 0
3.2 添加可執(zhí)行權(quán)限
在虛擬機(jī)hadoop1上給腳本文件/export/shell/hadoop1_hadoop_install_config.sh
添加可執(zhí)行權(quán)限。
chmod +x /export/shell/hadoop1_zookeeper_install_config.sh
3.3 執(zhí)行腳本
在虛擬機(jī)hadoop1上執(zhí)行腳本文件自動化安裝配置zookeeper完全分布式。
/export/shell/hadoop1_zookeeper_install_config.sh
執(zhí)行完成如下圖所示。
4. 加載環(huán)境變量
根據(jù)使用shell腳本自動安裝完成后的提示依次在虛擬機(jī)hadoop1、hadoop2和hadoop3執(zhí)行如下命令加載環(huán)境變量。
source /etc/profile
5. 啟動Zookeeper集群
在虛擬機(jī)hadoop1執(zhí)行如下命令啟動zookeeper。
zkServer.sh start
在虛擬機(jī)hadoop2執(zhí)行如下命令啟動zookeeper。
zkServer.sh start
在虛擬機(jī)hadoop3執(zhí)行如下命令啟動zookeeper。
zkServer.sh start
6. 查看Zookeeper集群狀態(tài)
在虛擬機(jī)hadoop1執(zhí)行如下命令查看Zookeeper集群狀態(tài)是否正常。
zkServer.sh status
在虛擬機(jī)hadoop2執(zhí)行如下命令查看Zookeeper集群狀態(tài)是否正常。
zkServer.sh status
在虛擬機(jī)hadoop3執(zhí)行如下命令查看Zookeeper集群狀態(tài)是否正常。
zkServer.sh status
如果集群啟動正常如上圖所示,會有一個領(lǐng)導(dǎo)者leader,兩個跟隨者follower。
若要停止Zookeeper集群運(yùn)行,依次在虛擬機(jī)hadoop1、hadoop2和hadoop3執(zhí)行如下命令停止Zookeeper服務(wù)。
zkServer.sh stop