flink集群一键安装脚本 -- kafka消息中间件依赖zookeeper集群安装脚本

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21682469/article/details/79305725
#!/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集群搭建脚本后期补上。

猜你喜欢

转载自blog.csdn.net/qq_21682469/article/details/79305725