
安装基础环境
我们用虚拟机创建出3台机器,查看centos版本为7.9
[root@s1 ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (AltArch)
下载相关命令
yum -y install vim*
yum -y install net-tools
yum -y install lsof
yum -y install wget
执行ifconfig命令获取ip地址
| hostname | ip |
|---|---|
| s1 | 192.168.9.128 |
| s2 | 192.168.9.129 |
| s3 | 192.168.9.130 |
在3台服务器上配置host,添加如下内容
vim /etc/hosts
192.168.9.128 s1
192.168.9.129 s2
192.168.9.130 s3
我们配置一下server-1到server-2和server-3的ssh登陆
# 在3台机器执行如下命令
ssh-keygen -t rsa
# 查看server-1的公钥
cat ~/.ssh/id_rsa.pub
# 将server-1的公钥放到server-1,server-2和server-3的如下文件中
vim ~/.ssh/authorized_keys
# 在server-1执行如下命令能正常调转则说明成功
ssh root@s1
ssh root@s2
ssh root@s3
在镜像网站下载jdk
https://repo.huaweicloud.com/java/jdk/8u151-b12/
vim /etc/profile
JAVA_HOME=/root/opt/soft/jdk1.8.0_151
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
重新加载profile,显示版本号则安装成功
source /etc/profile
java -version
将jdk分发到其他节点,并配置环境变量
scp -r /etc/profile s2:/etc/profile
scp -r /etc/profile s3:/etc/profile
scp -r /root/opt/soft/jdk1.8.0_151 s2:/root/opt/soft/jdk1.8.0_151
scp -r /root/opt/soft/jdk1.8.0_151 s3:/root/opt/soft/jdk1.8.0_151
启动 es 不能使用 root 用户,所以创建一个其他用户
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.1.0-linux-x86_64.tar.gz
# 创建数据文件目录
mkdir /opt/soft/elasticsearch-8.1.0/data
# 创建证书目录
mkdir /opt/soft/elasticsearch-8.1.0/config/certs
# 新增 es 用户
useradd es
# 修改文件拥有者
chown -R es:es /opt/soft/elasticsearch-8.1.0
# 切换用户
su es
cd /opt/soft/elasticsearch-8.1.0/bin
搭建Kafka集群
wget https://archive.apache.org/dist/kafka/0.11.0.3/kafka_2.11-0.11.0.3.tgz
进入config目录,修改server.properties文件中的如下参数
/root/opt/soft/kafka_2.11-0.11.0.3/config/server.properties
# 修改如下参数
# broker.id : 集群内全局唯一标识,每个节点上需要设置不同的值
broker.id=1
# 可以删除topic
delete.topic.enable=true
# listeners:这个IP地址也是与本机相关的,每个节点上设置为自己的IP地址
listeners=PLAINTEXT://s1:9092
# log.dirs :存放kafka消息的
log.dirs=/root/opt/soft/kafka_2.11-0.11.0.3/data
# zookeeper.connect : 配置的是zookeeper集群地址
zookeeper.connect=s1:2181,s2:2181,s3:2181
分发kafka目录到其他节点
scp -r /root/opt/soft/kafka_2.11-0.11.0.3 s2:/root/opt/soft/kafka_2.11-0.11.0.3
scp -r /root/opt/soft/kafka_2.11-0.11.0.3 s3:/root/opt/soft/kafka_2.11-0.11.0.3
分发完成后,其他集群节点都需要修改配置文件server.properties中的 broker.id 和listeners 参数
编写集群操作脚本
#!/bin/bash
case $1 in
"start"){for i in s1 s2 s3; doecho -------------------------------- $i kafka 启动 ---------------------------ssh $i "source /etc/profile && /root/opt/soft/kafka_2.11-0.11.0.3/bin/kafka-server-start.sh -daemon /root/opt/soft/kafka_2.11-0.11.0.3/config/server.properties"done};;
"stop"){for i in s1 s2 s3; doecho -------------------------------- $i kafka 停止 ---------------------------ssh $i "/root/opt/soft/kafka_2.11-0.11.0.3/bin/kafka-server-stop.sh"done};;
esac
增加操作权限
chmod u+x kafka.sh# 启动kafka集群
./kafka.sh start# 关闭kafka集群
./kafka.sh stop
测试集群是否正常搭建
# 创建topic 副本数为3 分区数位3
./kafka-topics.sh --create --zookeeper s1:2181 --replication-factor 3 --partitions 3 --topic test# 查看topic
./kafka-topics.sh --list --zookeeper s1:2181# 删除topic
./kafka-topics.sh --delete --zookeeper s1:2181 --topic test# 启动生产者控制台
./kafka-console-producer.sh --broker-list s1:9092 --topic test# 启动消费者控制台
./kafka-console-consumer.sh --bootstrap-server s1:9092 --topic test --from-beginning
在生产者控制台输入hello world,在消费者控制台输出hello world,则表明kafka搭建成功
参考博客
创建虚拟机遇到的问题
[1]https://blog.csdn.net/qq_35448165/article/details/107631793
使用自带的 jdk
[2]https://www.cnblogs.com/TonyJia/p/16064064.html
[3]https://www.cnblogs.com/zhuhuibiao/p/16446105.html