#!/bin/sh
########## HELP ###########
if [ $# -ne 0 ];then
if [ $1 == "-h" -o $1 == "-help" ];then
echo -e "
示例:
./kafka.sh # 启动本地模式,不修改任何配置
./kafka.sh 1 server1,server2,server3 ... # 启动集群模式,修改zookeeper的配置,1表示第一个server
";
exit 0;
fi;
fi;
KAFKA_GZIP="kafka_2.11-1.0.0.tgz";
INSTALL_PATH="/usr/local/src/"
KAFKA_UNPACK_DIR="${INSTALL_PATH}/kafka_2.11-1.0.0"
KAFKA_CONF_DIR="${KAFKA_UNPACK_DIR}/config"
############# kafka安装 ##############
if [ ! -f ${KAFKA_GZIP} ];then
wget http://mirrors.hust.edu.cn/apache/kafka/1.0.0/${KAFKA_GZIP}
fi
tar xzf ${KAFKA_GZIP} -C ${INSTALL_PATH}
# 解压文件
if [ $? -ne 0 ];then
exit 1;
fi;
if [ $# -eq 2 ];then
let COUNT=0;
CONNECT="";
ARR=(${2//,/ })
for i in ${ARR[@]};do
COUNT=$[ $COUNT + 1 ];
HOST_ARR=(${i//./ });
BROKER_ID=${HOST_ARR[3]};
CONNECT=${CONNECT}${i}":2181,";
if [ $COUNT -eq $1 ];then
sed -i 's/broker.id=0/broker.id='${BROKER_ID}'/g' ${KAFKA_CONF_DIR}/server.properties # 修改broker_id
# sed -i 's/\#listeners=PLAINTEXT:\/\/:9092/listeners=PLAINTEXT:\/\/'${i}':9092/g' ${KAFKA_CONF_DIR}/server.properties # 修改kafka监听地址
sed -i 's/\#log.retention.bytes=1073741824/log.retention.bytes=1073741824/g' ${KAFKA_CONF_DIR}/server.properties # 修改日志保留大小
fi;
done
sed -i 's/zookeeper.connect=localhost:2181/zookeeper.connect='${CONNECT}'/g' ${KAFKA_CONF_DIR}/server.properties # 修改rpc地址,指向master
fi;
# 手动启动kafka
nohup ${KAFKA_UNPACK_DIR}/bin/kafka-server-start.sh ${KAFKA_CONF_DIR}/server.properties &
if [ $? -eq 0 ];then
sleep 2;
jps # 检测kafka是否正常启动
fi
flink集群搭建脚本后期补上。