kafka安装

win10

来源:https://blog.csdn.net/tianmanchn/article/details/78943147

启动kafka

进入D:\WorkSoftware\kafka_2.11-1.0.0 ,打开cmd,运行:

.\bin\windows\kafka-server-start.bat .\config\server.properties

测试使用

  • 创建一个kafka的topic
java 复制代码
//创建一个test1队列:
.\bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic test1 --partitions 3 --replication-factor 1
//检查创建结果:
.\bin\kafka-topics.sh --zookeeper localhost:2181 --describe --topic test1
  • 启动接收方
java 复制代码
.\bin/kafka-console-consumer.sh --zookeeper localhost:2181--topic test1
//显示数据
  • 启动发送方
java 复制代码
.\bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test1
//发送数据

Linux安装

参考:https://www.cnblogs.com/lsdb/p/7762871.html

下载:http://kafka.apache.org/downloads

下载完之后,上传到Linux上(我放到了/usr/lib/kafka

安装kafka

只需要解压就可以了

shell 复制代码
cd /usr/lib/kafka

配置单节点

配置单节点zookeeper

使用kafka自带的zookeeper

shell 复制代码
cd /usr/lib/kafka/kafka_2.11-2.3.0
mkdir -p zk/data   #创建zookeeper数据存放目录
mkdir -p zk/logs    #创建zookeeperl存放日志目录
cd config       #进入配置文件所在目录

mv zookeeper.properties zookeeper.properties.bak #将原配置文件移走,并重命名
cat > zookeeper.properties << EOF
tickTime=2000
dataDir=/usr/lib/kafka/kafka_2.11-2.3.0/zk/data
dataLogDir=/usr/lib/kafka/kafka_2.11-2.3.0/zk/logs
clientPort=2181
EOF

到具体情况时注意修昨dataDir和dataLogDir为自己的相应目录

配置单结点kafka
shell 复制代码
cd /usr/lib/kafka/kafka_2.11-2.3.0
mkdir logs    #创建logs目录用于存放日志
cd config       #进入配置文件所在目录
mv server.properties server.properties.bak #将原配置文件移走

cat > server.properties << EOF
broker.id=1
listeners=PLAINTEXT://192.168.88.128: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=/usr/lib/kafka/kafka_2.11-2.3.0/logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.88.128:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
EOF

上边配置的server.properties的内容基本都是原server.properties的默认配置,到自己安装时主要修改:

  • broker.id--broker的id;修改为任意自己想要的数值(和zookeeper中的id类似的)
  • listeners--监听址址;修改为kafka要监听的地址
  • log.dirs--日志文件存放目录;修改为自己要存放日志的目录
  • zookeeper.connect--zookeeper监听地址;修改为自己的zookeeper的监听地址,如果是集群所有地址全写上用逗号(半角)隔开即可

启动和停止

启动前要配置JAVA_HOME,不然无法启动(和tomcat一样虽然输出started了但并有有启,可查看kafkaServer.out)

启动
shell 复制代码
cd /usr/lib/kafka/kafka_2.11-2.3.0/bin
./zookeeper-server-start.sh -daemon ../config/zookeeper.properties    #启动zookeeper
./kafka-server-start.sh -daemon ../config/server.properties           #启动kafka
停止:
shell 复制代码
cd /usr/lib/kafka/kafka_2.11-2.3.0/bin
./zookeeper-server-stop.sh    #停止zookeeper
./kafka-server-stop.sh        #停止kafka,centos7上可能关不了用kill -9直接杀掉
查看是否有zookeeper和kafka进程
shell 复制代码
jps

搭建集群

zookeeper改造
shell 复制代码
cd /usr/lib/kafka/kafka_2.11-2.3.0/config #进入配置文件路径

cat >> zookeeper.properties << EOF
initLimit=5
syncLimit=2
server.1=192.168.88.128:2888:3888
server.2=192.168.88.129:2888:3888
server.3=192.168.88.130:2888:3888
EOF

echo '1' > ../zk/data/myid          #配置zookeeper的myid文件
kafka改造

编缉server.properties文件,将所有的zookeeper集群地址追加到zookeeper.connect后,每个地址间用逗号(半角)隔开即可

集群搭建
  • 将上边安装配置好的kafka打包传到其创机器上,然后解压;
  • 对于zookeeper,各机修改zk/data/myid文件的为不同的值,然后各机重启zookeeper即可。
  • 对于kafka,各机修改server.properties中的broker.id为不同的值,listeners修改为本各机IP,然后各机重启kafka即可。

测试是否可用

创建topics:

shell 复制代码
./kafka-topics.sh --create --zookeeper 192.168.88.128:2181 --replication-factor 2 --partitions 1 --topic test_topics

在一台上创建生产者:

shell 复制代码
./kafka-console-producer.sh --broker-list 192.168.88.128:9092 --topic test_topics

在另一台上创建消费者:

shell 复制代码
./kafka-console-consumer.sh --zookeeper 192.168.220.88:2181 --topic test_topics --from-beginning

正常的话在生产者中输入的内容,会在消费者端输出。

docker安装kafka

https://blog.csdn.net/y393016244/article/details/126405864

  • 首先创建一个网络
shell 复制代码
docker network create app-tier --driver bridge
####
app-tier:网络名称
--driver:网络类型为bridge
  • 安装zookeeper
shell 复制代码
docker run -d --name zookeeper-server \
    --network app-tier \
    -e ALLOW_ANONYMOUS_LOGIN=yes \
    bitnami/zookeeper:latest
####
Kafka依赖zookeeper所以先安装zookeeper
-p:设置映射端口(默认2181)
-d:后台启动
  • 查看zookeeper容器日志
shell 复制代码
docker logs -f zookeeper-server
  • 安装Kafka
shell 复制代码
docker run -d --name kafka-server \
    --network app-tier \
 -v /etc/localtime:/etc/localtime:ro \
 -v /etc/hosts:/etc/hosts \
    -p 9092:9092 \
    -e ALLOW_PLAINTEXT_LISTENER=yes \
    -e KAFKA_CFG_ZOOKEEPER_CONNECT=local-vm1:2181 \
    -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://local-vm1:9092 \
    bitnami/kafka:latest
#####
--name:容器名称
-p:设置映射端口(默认9092 )
-d:后台启动
ALLOW_PLAINTEXT_LISTENER任何人可以访问
KAFKA_CFG_ZOOKEEPER_CONNECT链接的zookeeper
KAFKA_ADVERTISED_HOST_NAME当前主机IP或地址(重点:如果是服务器部署则配服务器IP或域名否则客户端监听消息会报地址错误)
-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.101:9092 \

图形化界面

shell 复制代码
docker run -d --name kafka-map \
    --network app-tier \
    -p 9001:8080 \
    -v /usr/local/soft/docker/kafka/kafka-map/data:/usr/local/kafka-map/data \
    -e DEFAULT_USERNAME=admin \
    -e DEFAULT_PASSWORD=admin \
    --restart always dushixiang/kafka-map:latest

打开:http://127.0.0.1:9001

相关推荐
Data跳动4 小时前
Spark内存都消耗在哪里了?
大数据·分布式·spark
Java程序之猿5 小时前
微服务分布式(一、项目初始化)
分布式·微服务·架构
来一杯龙舌兰6 小时前
【RabbitMQ】RabbitMQ保证消息不丢失的N种策略的思想总结
分布式·rabbitmq·ruby·持久化·ack·消息确认
节点。csn7 小时前
Hadoop yarn安装
大数据·hadoop·分布式
saynaihe8 小时前
安全地使用 Docker 和 Systemctl 部署 Kafka 的综合指南
运维·安全·docker·容器·kafka
NiNg_1_2349 小时前
基于Hadoop的数据清洗
大数据·hadoop·分布式
隔着天花板看星星10 小时前
Spark-Streaming集成Kafka
大数据·分布式·中间件·spark·kafka
技术路上的苦行僧14 小时前
分布式专题(8)之MongoDB存储原理&多文档事务详解
数据库·分布式·mongodb
龙哥·三年风水14 小时前
workman服务端开发模式-应用开发-后端api推送修改二
分布式·gateway·php
小小工匠15 小时前
分布式协同 - 分布式事务_2PC & 3PC解决方案
分布式·分布式事务·2pc·3pc