mkdir /usr/java
wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
wget https://www.apache.org/dyn/closer.cgi?path=/kafka/2.7.0/kafka_2.13-2.7.0.tgz
tar -zxf apache-zookeeper-3.6.2-bin.tar.gz
tar -zxf kafka_2.13-2.7.0.tgz
mv apache-zookeeper-3.6.2-bin zookeeper-3.6.2
cd zookeeper-3.6.2/conf
cp zoo_sample.cfg zoo-1.cfg
cp zoo_sample.cfg zoo-2.cfg
cp zoo_sample.cfg zoo-3.cfg
sed -i 's/^dataDir=.*/dataDir=/tmp/zookeeper-1/' zoo-1.cfg
sed -i 's/^dataDir=.*/dataDir=/tmp/zookeeper-2/' zoo-2.cfg
sed -i 's/^dataDir=.*/dataDir=/tmp/zookeeper-3/' zoo-3.cfg
sed -i 's/^clientPort=.*/clientPort=2181/' zoo-1.cfg
sed -i 's/^clientPort=.*/clientPort=2182/' zoo-2.cfg
sed -i 's/^clientPort=.*/clientPort=2183/' zoo-3.cfg
echo '
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
' | tee -a zoo-1.cfg zoo-2.cfg zoo-3.cfg
mkdir /tmp/zookeeper-1 /tmp/zookeeper-2 /tmp/zookeeper-3
echo '0' > /tmp/zookeeper-1/myid
echo '1' > /tmp/zookeeper-2/myid
echo '2' > /tmp/zookeeper-3/myid
cd /usr/java/kafka_2.13-2.7.0/config
cp service.properties service-1.properties
cp service.properties service-2.properties
cp service.properties service-3.properties
sed -i 's/^broker.id=.*/broker.id=0/' service-1.properties
sed -i 's/^broker.id=.*/broker.id=1/' service-2.properties
sed -i 's/^broker.id=.*/broker.id=2/' service-3.properties
sed -i 's/^listeners=.*/listeners=PLAINTEXT://:9092/' service-1.properties
sed -i 's/^listeners=.*/listeners=PLAINTEXT://:9093/' service-2.properties
sed -i 's/^listeners=.*/listeners=PLAINTEXT://:9094/' service-3.properties
sed -i 's/^advertised.listeners=.*/advertised.listeners=PLAINTEXT://${yourhost}:9092/' service-1.properties
sed -i 's/^advertised.listeners=.*/advertised.listeners=PLAINTEXT://${yourhost}:9093/' service-1.properties
sed -i 's/^advertised.listeners=.*/advertised.listeners=PLAINTEXT://${yourhost}:9094/' service-1.properties
sed -i 's/^log.dirs=.*/log.dirs=/tmp/kafka-logs-1/' service-1.properties
sed -i 's/^log.dirs=.*/log.dirs=/tmp/kafka-logs-2/' service-2.properties
sed -i 's/^log.dirs=.*/log.dirs=/tmp/kafka-logs-3/' service-3.properties
sed -i 's/^num.partitions=.*/num.partitions=3/' service-*.properties
sed -i 's/^offsets.topic.replication.factor=.*/offsets.topic.replication.factor=3/' service-*.properties
sed -i 's/^transaction.state.log.replication.factor=.*/transaction.state.log.replication.factor=3/' service-*.properties
sed -i 's/^transaction.state.log.min.isr=.*/transaction.state.log.min.isr=3/' service-*.properties
sed -i 's/^zookeeper.connect=.*/zookeeper.connect=localhost:2181,localhost:2182,localhost:2183/' service-*.properties
cd /usr/java/zookeeper-3.6.2
nohup bin/zkServer.sh start conf/zoo-1.cfg &
nohup bin/zkServer.sh start conf/zoo-2.cfg &
nohup bin/zkServer.sh start conf/zoo-3.cfg &
cd /usr/java/kafka_2.13-2.7.0
nohup bin/kafka-server-start.sh config/server-1.properties &
nohup bin/kafka-server-start.sh config/server-2.properties &
nohup bin/kafka-server-start.sh config/server-3.properties &
...