搭建 ZooKeeper 3.4.12 環境
我使用了4臺虛擬機來搭建相對應的節點,具體情況如下:
master | slave1 | slave2 | slave3 | |
---|---|---|---|---|
NameNode | √ | |||
SecondaryNameNode | √ | |||
DataNode | √ | √ | √ | |
ResourceManage | √ | |||
NodeManage | √ | √ | √ | |
Flume | √ | √ | √ | √ |
ZooKeeper | √ | √ | √ |
軟件版本:
- Hadoop 2.7.2
- Flume 1.7.0
- ZooKeeper 3.4.12
另注:我的所有軟件都安裝在 /usr/wang/ 目錄下。
安裝
1.解壓
tar -zxvf zookeeper-3.4.12.tar.gz
2.重命名並建立軟鏈
ln -s zookeeper-3.4.12 zookeeper
3.配置環境變量
sudo vim /etc/profile
# ZOOKEEPER ENVIROMENT
export ZOOKEEPER_HOME=/usr/wang/zookeeper
export PATH=$ZOOKEEPER_HOME/bin:$PATH
source /etc/profile
ZooKeeper 配置
1.拷貝 /usr/wang/zookeeper/conf 這個目錄下的 zoo_sample.cfg 爲 zoo.cfg
cd /usr/wang/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
2.在 /usr/wang/zookeeper 下創建 zkData 文件夾存放 ZooKeeper 數據
cd /usr/wang/zookeeper
mkdir zkData
3.配置 zoo.cfg 文件
- 修改 dataDir 路徑爲 /usr/wang/zookeeper/zkData
dataDir=/usr/wang/zookeeper/zkData
- 添加集羣信息
#######################cluster##########################
server.1=slave1:2888:3888
server.2=slave2:2888:3888
server.3=slave3:2888:3888
設置 ZooKeeper 日誌輸出到指定文件夾
我是將 ZooKeeper 的日誌集中輸出到 /usr/wang/zookeeper/logs 文件夾下
1.修改 bin/zkEnv.sh
if [ "x${ZOO_LOG_DIR}" = "x" ]
then
ZOO_LOG_DIR="/usr/wang/zookeeper/logs"
fi
2.修改 bin/zkServer.sh
_ZOO_DAEMON_OUT="$ZOO_LOG_DIR/zookeeper.log"
3.設置日誌按照天進行滾動
-
bin/zkEnv.sh
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
-
conf/log4j.properties
# Define some default values that can be overridden by system properties zookeeper.root.logger=INFO, ROLLINGFILE # Add ROLLINGFILE to rootLogger to get log file output # Log DEBUG level and above messages to a log file log4j.appender.ROLLINGFILE=org.apache.log4j.DailyRollingFileAppender log4j.appender.ROLLINGFILE.Threshold=debug log4j.appender.ROLLINGFILE.File=zookeeper.log log4j.appender.ROLLINGFILE.DataPattern='.'yyyy-MM-dd-HH-mm log4j.appender.ROLLINGFILE.encoding=UTF-8 log4j.appender.ROLLINGFILE.Append=false log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout log4j.appender.ROLLINGFILE.layout.ConversionPattern= [%d{yyyy-MM-dd HH\:mm\:ss}] %-5p %c(line\:%L) %x-%m%n
集羣操作
1.在 /usr/wang/zookeeper/zkData 目錄下創建一個 myid 的文件
cd /usr/wang/zookeeper/zkData
touch myid
2.分發 zookeeper 到其他節點
cd /usr/wang
rsync -rvl zookeeper spark@slave2:/usr/wang/
rsync -rvl zookeeper spark@slave3:/usr/wang/
3.編輯 myid 文件
-
slave1 節點上
echo "1" >> myid
-
slave2 節點上
echo "2" >> myid
-
slave3 節點上
echo "3" >> myid
簡單命令
1.啓動命令
bin/zkServer.sh start
2.查看節點狀態
bin/zkServer.sh status
3.停止
bin/zkServer.sh stop