前提条件:
- 已经安装了 Java 环境(Kafka 是基于 Java 开发的)。
- 已经有三台独立的服务器(节点),每台服务器有唯一的 IP 地址。
一 Java环境部署:
1.1 官网下载jdk
Java下载官网https://www.oracle.com/cn/java/technologies/javase/javase8u211-later-archive-downloads.html
1.2 解压jdk到/usr/local/下
tar -xzvf jdk-8u381-linux-x64.tar.gz -C /usr/local
1.3 配置环境变量
vim /etc/profile进入编辑模式后,在末尾加入这段(JAVA_HOME为安装路径) export JAVA_HOME=/usr/local/jdk1.8.0_381 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JRE_HOME=$JAVA_HOME/jre
1.4 重新加载配置并测试
- source /etc/profile
- java -version #出现版本即为成功
二 部署kafka集群步骤:
2.1 下载 Kafka:
kafka下载官网https://kafka.apache.org/downloads
下载需要的 Kafka 版本:
2.2 解压 Kafka:
- 将下载的 Kafka 压缩包解压到每一台服务器上,得到 Kafka 的安装目录。
tar -xvf kafka_2.11-0.10.0.1.tgz -C /opt/
2.3 配置 ZooKeeper:Kafka 集群依赖 ZooKeeper,因此需要配置 ZooKeeper。
2.31 下载 zookeeper-3.5.4-beta.tar.gz,并解压到/opt/
zookeeper下载https://archive.apache.org/dist/zookeeper/
tar -zxvf zookeeper-3.5.4-beta.tar.gz -C /opt/
2.32 编辑配置文件
cd /opt/zookeeper-3.5.4-beta/conf/ cp zoo_sample.cfg zoo.cfg vim zoo.cfg
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/opt/zoo/data clientPort=2181 maxClientCnxns=500 server.0=192.168.10.110:2888:3888 server.1=192.168.10.119:2888:3888 server.2=192.168.10.120:2888:3888
mkdir -p /opt/zoo/{data,logs} vim /opt/zoo/data/myid 三台机器的myid分别写入0,1,2
2.33 启动zookeeper
cd /opt/zookeeper-3.5.4-beta/bin/ ./zkServer.sh start # 查看启动状态 sh zkServer.sh status #关闭 ./zkServer.sh stop
2.4 配置 Kafka:
2.41修改配置文件
vim /opt/kafka_2.11-0.10.0.1/config/zookeeper.properties dataDir=/opt/zoo/data #该目录是zookeeper配置的数据存放目录 vim /opt/kafka_2.11-0.10.0.1/config/server.properties broker.id=0 #分别为0,1,2 #本机IP(kafka的监听地址和外界连接地址) listeners=PLAINTEXT://192.168.10.110:9092 advertised.listeners=PLAINTEXT://192.168.10.110:9092 #zookeeper配置 zookeeper.connect=192.168.10.110:2181,192.168.10.119:2181,192.168.10.120:2181
2.5 启动 Kafka:
cd /opt/kafka_2.11-0.10.0.1/bin/ ./kafka-server-start.sh -daemon ../config/server.properties #关闭 ./kafka-server-stop.sh
2.5 创建 Topic:
使用 Kafka 提供的
/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
如果显示下面指令,代表创建topic成功
Created topic "test".
验证集群状态:
使用 Kafka 提供的
发送和消费消息: 使用 Kafka 提供的
请注意,以上步骤仅供参考,实际部署可能需要根据具体环境和需求进行调整。在生产环境中,还需要考虑安全性、性能调优等方面的配置。在部署前建议仔细阅读 Kafka 官方文档,并根据需要进行适当的修改和优化。