kafka安装

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
//创建一个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
  • 启动接收方
.\bin/kafka-console-consumer.sh --zookeeper localhost:2181--topic test1
//显示数据
  • 启动发送方
.\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
kafka安装_第1张图片

在这里插入图片描述

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

安装kafka

只需要解压就可以了

cd /usr/lib/kafka

配置单节点

配置单节点zookeeper

使用kafka自带的zookeeper

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
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)

启动
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
停止:
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进程
jps

在这里插入图片描述

搭建集群

zookeeper改造
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:

./kafka-topics.sh --create --zookeeper 192.168.88.128:2181 --replication-factor 2 --partitions 1 --topic test_topics

在一台上创建生产者:

./kafka-console-producer.sh --broker-list 192.168.88.128:9092 --topic test_topics

在另一台上创建消费者:

./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

  • 首先创建一个网络
docker network create app-tier --driver bridge
####
app-tier:网络名称
–driver:网络类型为bridge
  • 安装zookeeper
docker run -d --name zookeeper-server \
    --network app-tier \
    -e ALLOW_ANONYMOUS_LOGIN=yes \
    bitnami/zookeeper:latest
####
Kafka依赖zookeeper所以先安装zookeeper
-p:设置映射端口(默认2181)
-d:后台启动
  • 查看zookeeper容器日志
docker logs -f zookeeper-server
  • 安装Kafka
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 \

图形化界面

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

你可能感兴趣的:(kafka,分布式)