在linux搭建kafka集群(shell脚本搭建)

 第一步:配置jdk

1、将jdk的安装包下载到指定目录/opt/software,其中的文件路径自行修改

#!/bin/sh
#安装jdk

PACKAGE_DIR="/opt/software"
cd $PACKAGE_DIR

tar -xf jdk-8u361-linux-x64.tar.gz

#添加JDK的环境变量
sed -i '$a #jdk' /etc/profile
sed -i '$a export JAVA_HOME=/opt/software/jdk1.8.0_361' /etc/profile
sed -i '$a export PATH=$JAVA_HOME/bin:$PATH' /etc/profile
sed -i '$a export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' /etc/profile
source /etc/profile

#echo \ #jdk \  >> /etc/profile
#echo export JAVA_HOME=/opt/software/jdk1.8.0_361 >> /etc/profile
#echo export PATH=$JAVA_HOME/bin:$PATH >> /etc/profile
#echo export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar >> /etc/profile
source /etc/profile

echo "node1 jdk配置完成。。。"

#配置节点jdk
sh /root/install/jdk/node_install.sh
#node_install.sh
#bin/bash
PACKAGE_DIR="/opt/software"
nodes=(
"test002"
"test003"
)

for node in ${nodes[@]};
do
ssh ${node} "mkdir -p $PACKAGE_DIR"
scp -r $PACKAGE_DIR/jdk1.8.0_361/ root@${node}:/opt/software/
ssh $node "source /etc/profile
echo \" #jdk\" >> /etc/profile
echo export JAVA_HOME=/opt/software/jdk1.8.0_361 >> /etc/profile
echo export PATH=\\\$JAVA_HOME/bin:\\\$PATH >> /etc/profile
echo export CLASSPATH=.:\\\$JAVA_HOME/lib/dt.jar:\\\$JAVA_HOME/lib/tools.jar >> /etc/profile
"

source /etc/profile
echo "${node} jdk配置完成"

done

2、检查jdk是否安装成功

#查看java是否安装完成
java -version

第二步:配置zookeeper

同上,将zookeeper的安装包下载到指定目录/opt/software,其中的文件路径自行修改,配置变量根据自己的实际情况修改

#!/bin/sh
#安装zk

PACKAGE_DIR="/opt/software"
cd $PACKAGE_DIR
tar -xf apache-zookeeper-3.6.4-bin.tar.gz
rm -rf apache-zookeeper-3.6.4-bin.tar.gz
mv apache-zookeeper-3.6.4-bin zookeeper

cd $PACKAGE_DIR/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
sed -i 's#dataDir=/tmp/zookeeper#dataDir=/opt/software/zookeeper/data#g' /opt/software/zookeeper/conf/zoo.cfg
sed -i '$a server.1=192.168.44.129:2888:3888' /opt/software/zookeeper/conf/zoo.cfg
sed -i '$a server.2=192.168.44.128:2888:3888' /opt/software/zookeeper/conf/zoo.cfg
sed -i '$a server.3=192.168.44.131:2888:3888' /opt/software/zookeeper/conf/zoo.cfg

mkdir -p $PACKAGE_DIR/zookeeper/data
cd $PACKAGE_DIR/zookeeper/data

# 生成节点号myid文件
echo 1 > myid

#添加zk的环境变量
sed -i '$a #zookeeper' /etc/profile
sed -i '$a export ZOOKEEPER_HOME=/opt/software/zookeeper' /etc/profile
sed -i '$a export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf' /etc/profile
source /etc/profile

#echo \" #zookeeper\" >> /etc/profile
#echo export ZOOKEEPER_HOME=/opt/software/zookeeper >> /etc/profile
#echo export PATH=\\\$PATH:\\\$ZOOKEEPER_HOME/bin:\\\$ZOOKEEPER_HOME/conf >> /etc/profile

echo "node1配置完成"
/opt/software/zookeeper/bin/zkServer.sh start

sh /root/install/zookeeper/node_install.sh
#!/bin/sh
#安装节点zk

PACKAGE_DIR="/opt/software"
nodes=(
"test002"
"test003"
)

for node in ${nodes[@]};
do
ssh ${node} "mkdir -p $PACKAGE_DIR"
scp -r $PACKAGE_DIR/zookeeper/ root@${node}:/opt/software/
ssh $node "source /etc/profile
echo \" #zookeeper\" >> /etc/profile
echo export ZOOKEEPER_HOME=/opt/software/zookeeper >> /etc/profile
echo export PATH=\\\$PATH:\\\$ZOOKEEPER_HOME/bin:\\\$ZOOKEEPER_HOME/conf >> /etc/profile
"
echo "${node}配置完成"

done

ssh ${nodes[0]} "sed -i 's#1#2#g' /opt/software/zookeeper/data/myid"
ssh ${nodes[1]} "sed -i 's#1#3#g' /opt/software/zookeeper/data/myid"

#启动zookeeper
/opt/software/zookeeper/bin/zkServer.sh start
/opt/software/zookeeper/bin/zkServer.sh status

#连接zookeeper的客户端
bin/zkCli.sh -server 192.168.44.129:2181
ls /
ls /brokers
ls /brokers/ids

第三步:配置kafka

和前两个步骤一样,将zookeeper的安装包下载到指定目录/opt/software,其中的文件路径自行修改,配置变量根据自己的实际情况修改

#!/bin/sh
#安装kafka

PACKAGE_DIR="/opt/software"
cd $PACKAGE_DIR
tar -xf kafka_2.13-3.4.0.tgz
#rm -rf kafka_2.13-3.4.0.tgz
mv kafka_2.13-3.4.0 kafka

cd $PACKAGE_DIR/kafka/config
cp server.properties server.properties.bak

#修改kafka的配置文件
#sed -i 's|broker.id=0|broker.id=1|g' /opt/software/kafka/config/server.properties
sed -i 's|log.dirs=/tmp/kafka-logs|log.dirs=/opt/software/kafka/kafka-logs|g' /opt/software/kafka/config/server.properties
sed -i 's|zookeeper.connect=localhost:2181|zookeeper.connect=192.168.44.129:2181,192.168.44.128:2181,192.168.44.131:2181|g' /opt/software/kafka/config/server.properties
sed -i 's|#listeners=|listeners=|g' /opt/software/kafka/config/server.properties
sed -i 's|#advertised.listeners=PLAINTEXT://your.host.name:9092|advertised.listeners=PLAINTEXT://192.168.44.129:9092|g' /opt/software/kafka/config/server.properties
sed -i '$a delete.topic.enble=true' /opt/software/kafka/config/server.properties

#添加kafka的环境变量
sed -i '$a #kafka' /etc/profile
sed -i '$a export KAFKA_HOME=/opt/software/kafka' /etc/profile
# sed -i '$a export PATH=KAFKA_HOME/bin:$PATH' /etc/profile
source /etc/profile

echo "kafka-node1配置完成"

scp -r $PACKAGE_DIR/kafka/ root@test002:/opt/software/
ssh test002 " source /etc/profile
echo \" #kafka\" >> /etc/profile
echo export KAFKA_HOME=/opt/software/kafka >> /etc/profile
echo export PATH=KAFKA_HOME/bin:\\\$PATH >> /etc/profile
sed -i 's|broker.id=0|broker.id=1|g' /opt/software/kafka/config/server.properties
sed -i 's|advertised.listeners=PLAINTEXT://192.168.44.129:9092|advertised.listeners=PLAINTEXT://192.168.44.128:9092|g' /opt/software/kafka/config/server.properties
"

echo "kafka-node2配置完成"


scp -r $PACKAGE_DIR/kafka/ root@test003:/opt/software/
ssh test003 " source /etc/profile
echo \" #kafka\" >> /etc/profile
echo export KAFKA_HOME=/opt/software/kafka >> /etc/profile
echo export PATH=KAFKA_HOME/bin:\\\$PATH >> /etc/profile
sed -i 's|broker.id=0|broker.id=2|g' /opt/software/kafka/config/server.properties
sed -i 's|advertised.listeners=PLAINTEXT://192.168.44.129:9092|advertised.listeners=PLAINTEXT://192.168.44.131:9092|g' /opt/software/kafka/config/server.properties
"
echo "kafka-node3配置完成"

#启动kafka
cd /opt/software/kafka
./bin/kafka-server-start.sh config/server.properties &

# 进入kafka安装目录bin,创建topic
cd /opt/software/kafka/bin/
./kafka-topics.sh --create --topic test --bootstrap-server 192.168.44.129:9092

查看topic
./kafka-topics.sh --list --topic test --bootstrap-server 192.168.44.129:9092

# 往topic发送消息
./kafka-console-producer.sh --broker-list 192.168.44.129:9092 --topic test

# 消费topic test
./kafka-console-consumer.sh --bootstrap-server 192.168.44.129:9092 --topic test --from-beginning


./kafka-topics.sh --delete --topic test --bootstrap-server 192.168.44.129:9092

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我休息的时候不累

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值