kafka集群脚本部署

#!/bin/bash
panduan(){
        if [ $? -ne 0 ];then
                echo -e "${blue_col}Execution error, terminating scrip.......${reset_col}"
                exit
        fi
}

stop_firewalld(){
        systemctl stop firewalld && systemctl disable firewalld &>/dev/null
        setenforce 0 &>/dev/null
        sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
}

ping_baidu(){
        ping -c1 www.baidu.com >/dev/null 2>&1
        if [ $? -eq 0 ];then
                echo -e "${red_col}The network is normal. Please continue.........${reset_col}"
        else
                echo -e "${blue_col}Network exception, exiting........${reset_col}"
                exit
        fi

}

yum_repo(){
        rm -rf /etc/yum.repos.d/*
        curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
        curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
        yum clean all &>/dev/null && yum makecache >/dev/null 2>&1
        panduan
}
soft_install(){
        yum -y install vim wget &>/dev/null
}
yum_repo
soft_install
read -p "Please enter the IP address of the first server:" ip1
read -p "Please enter the IP address of the second  server:" ip2
cat >> /etc/hosts <<eof
$ip1 ka-1
$ip2 ka-2
eof

yum -y install expect
rm -rf /root/.ssh/*
ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa
for k in es-2
do
expect -c "
spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@$k
        expect {
                \"*yes/no*\" {send \"yes\n\"; exp_continue}
                \"*password*\" {send \"123\n\"; exp_continue}
                \"*Password*\" {send \"123\n\";}
        } "
done

for l in ka-2
do
        scp /etc/hosts root@$l:/etc/hosts &>/dev/null
done
#kafka-1
wget http://www.xingdiancloud.com/kafka_2.11-2.1.0.tgz
wget http://www.xingdiancloud.com/jdk-8u191-linux-x64.tar.gz
tar xf jdk-8u191-linux-x64.tar.gz -C /usr/local
tar xf kafka_2.11-2.1.0.tgz -C /usr/local
mv /usr/local/jdk1.8.0_191 /usr/local/java
mv /usr/local/kafka_2.11-2.1.0 /usr/local/kafka

cat >> /etc/profile <<eof
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
eof
source /etc/profile
sed -i 's/^[^#]/#&/' /usr/local/kafka/config/zookeeper.properties
cat >> /usr/local/kafka/config/zookeeper.properties <<eof
dataDir=data/zookeeper/data
dataLogDir=data/zookeeper/logs
clientPort=2181 
tickTime=2000 
initLimit=20 
syncLimit=10 
server.1=$ip1:2888:3888
server.2=$ip2:2888:3888
eof
mkdir -p /data/zookeeper/{data,logs} 
echo 1 > /data/zookeeper/data/myid
sed -i 's/^[^#]/#&/' /usr/local/kafka/config/server.properties
cat >> /usr/local/kafka/config/server.properties <<eof
broker.id=1
listeners=PLAINTEXT://$ip1:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/opt/data/kafka/logs
num.partitions=6
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=2
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=536870912
log.retention.check.interval.ms=300000
zookeeper.connect=$ip1:2181,$ip2:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
eof
cat >> /usr/local/kafka/config/server.properties1 <<eof
broker.id=2
listeners=PLAINTEXT://$ip2:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/opt/data/kafka/logs
num.partitions=6
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=2
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=536870912
log.retention.check.interval.ms=300000
zookeeper.connect=$ip1:2181,$ip2:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
eof
mkdir -p /data/kafka/logs

#kafka-2
for i in ka-2
do
        scp jdk-8u191-linux-x64.tar.gz root@$i:/root
        scp kafka_2.11-2.1.0.tgz root@$i:/root
        ssh root@$i "mv /usr/local/jdk1.8.0_191 /usr/local/java"
        ssh root@$i "mv /usr/local/kafka_2.11-2.1.0 /usr/local/kafka"
        scp /etc/profile root@$i:/etc/profile
        ssh root@$i "source /etc/profile"
        scp /usr/local/kafka/config/zookeeper.properties root@$i:/usr/local/kafka/config/zookeeper.properties
        ssh root@$i "mkdir -p /data/zookeeper/{data,logs}"
        ssh root@$i "echo 2 > /data/zookeeper/data/myid"
        scp /usr/local/kafka/config/server.properties1 root@$i:/usr/local/kafka/config/server.properties
        ssh root@$i "mkdir -p /data/kafka/logs"
done


#启动
(cd /usr/local/kafka && nohup bin/zookeeper-server-start.sh config/zookeeper.properties &)
sleep 20
(cd /usr/local/kafka && nohup bin/kafka-server-start.sh config/server.properties &)

for u in ka-2
do
        ssh root@$u "(cd /usr/local/kafka && nohup bin/zookeeper-server-start.sh config/zookeeper.properties &)"
        ssh root@$U "(sleep 20 && cd /usr/local/kafka && nohup bin/kafka-server-start.sh config/server.properties &)"
done
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值