flink叢集一鍵安裝指令碼 -- kafka訊息中介軟體依賴zookeeper叢集安裝指令碼
阿新 • • 發佈:2018-12-08
#!/bin/sh
INSTALL_PATH="/usr/local/src/";
ZOOKEEPER_VERSION="3.4.11"
ZOOKEEPER_GZIP="zookeeper-${ZOOKEEPER_VERSION}.tar.gz";
ZOOKEEPER_CONF_DIR="${INSTALL_PATH}/zookeeper-${ZOOKEEPER_VERSION}/conf"
ZOOKEEPER_DATA_DIR="/tmp/zookeeper"
ETC_PROFILE="/etc/profile"
########## HELP ###########
if [ $# -ne 0 ];then
if [ $1"a" == "-ha" -o $1"a" == "-helpa" ];then
echo -e "
zookeeper安裝,預設版本${ZOOKEEPER_VERSION}
示例:
./zookeeper.sh # 啟動本地模式,不修改任何配置
./zookeeper.sh 1 server1,server2,server3 ... # 啟動叢集模式,修改zookeeper的配置,1表示第一個server
./zookeeper.sh -u 3.4.11 # 更新版本號
" ;
exit 0;
fi
if [ $1"a" == "-ua" ];then
if [ -n $2 ];then
echo "未知的版本號";
exit 0;
else
ZOOKEEPER_VERSION=${2}
fi
fi
fi
############# zookeeper安裝 ##############
if [ ! -f ${ZOOKEEPER_GZIP} ];then
wget http://www-eu.apache.org/dist/zookeeper/zookeeper-${ZOOKEEPER_VERSION} /${ZOOKEEPER_GZIP}
fi;
tar xzf ${ZOOKEEPER_GZIP} -C ${INSTALL_PATH}
# 解壓檔案
if [ $? -ne 0 ];then
exit 1;
fi;
ZOOKEEPER_HOME="${INSTALL_PATH}/zookeeper-${ZOOKEEPER_VERSION}";
sed -i "/^export ZOOKEEPER_HOME=/d" ${ETC_PROFILE};
sed -i "/^export PATH=\$ZOOKEEPER_HOME\/bin:\$PATH/d" ${ETC_PROFILE};
echo -e "export ZOOKEEPER_HOME=${ZOOKEEPER_HOME}" >> ${ETC_PROFILE};
echo -e "export PATH=\$ZOOKEEPER_HOME/bin:\$PATH\n" >> ${ETC_PROFILE};
# 修改配置檔案
cp ${ZOOKEEPER_CONF_DIR}/zoo_sample.cfg ${ZOOKEEPER_CONF_DIR}/zoo.cfg
if [ ! -d ${ZOOKEEPER_DATA_DIR} ];then
mkdir -p ${ZOOKEEPER_DATA_DIR};
fi
if [ $# -eq 2 ];then
let COUNT=0;
ARR=(${2//,/ })
for i in ${ARR[@]};do
COUNT=$[ $COUNT + 1 ];
HOST_ARR=(${i//./ });
SERVER_ID=${HOST_ARR[3]};
echo -e "server.${SERVER_ID}=${i}:2888:3888" >> ${ZOOKEEPER_CONF_DIR}/zoo.cfg;
if [ $COUNT -eq $1 -a ];then
echo ${SERVER_ID} >> ${ZOOKEEPER_DATA_DIR}/myid # 建立mypid檔案,並寫入當前broker_id號
fi;
done
exit 1;
fi;
# 啟動zookeeper
${ZOOKEEPER_HOME}/bin/zkServer.sh start # 啟動zookeeper
if [ $? -eq 0 ];then
sleep 2;
jps # 檢測zookeeper是否正常啟動
fi
flink叢集搭建指令碼後期補上。