win10
来源:https://blog.csdn.net/tianmanchn/article/details/78943147
- 进入:http://kafka.apache.org/downloads.html
- 点击
Scala 2.12 - kafka_2.12-2.1.0.tgz
- 点击http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.1.0/kafka_2.12-2.1.0.tgz
- 下载后解压缩 😄:\Tools\kafka_2.11-1.0.0\
- 建立一个空文件夹 logs. eg: D:\Tools\kafka_2.11-1.0.0\logs
- 进入config目录,编辑修改 server.properties文件
- log.dirs= D:\Tools\kafka_2.11-1.0.0\logs
- zookeeper.connect=localhost:2181
启动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安装
下载: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