栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

kafka使用总结

kafka使用总结

使用docker进行安装: 

参照  Docker Hub

docker network create app-tier --driver bridge

启动zk          通过app-tier两个docker进行通信

docker run -d --name zookeeper-server 
    --network app-tier 
    -e ALLOW_ANONYMOUS_LOGIN=yes 
    bitnami/zookeeper:latest

启动kafka 

 docker run -d --name kafka-server 
    --network app-tier 
    -e ALLOW_PLAINTEXT_LISTENER=yes 
    -e KAFKA_CFG_ZOOKEEPER_ConNECT=zookeeper-server:2181 
    bitnami/kafka:latest

运行kafka client 

docker run -it --rm 
    --network app-tier 
    -e KAFKA_CFG_ZOOKEEPER_ConNECT=zookeeper-server:2181 
    bitnami/kafka:latest kafka-topics.sh --list  --bootstrap-server kafka-server:9092

 kafka在docker中的位置 /opt/bitnami/kafka

 bin 下有各种sh脚本   (常用的见下图)

config/server.properties是kafka的配置文件broker.id    log.dirs 根据需求进行修改

默认kafka无法外网链接     修改服务器Kafka配置文件server.properties, 在#listeners=PLAINTEXT://:9092下添加如下一行:advertised.listeners=PLAINTEXT://x.x.x.x:9092 (x.x.x.x为服务器对外的IP)

zookeeper在docker中的位置 /opt/bitnami/zookeeper

bin下也有常用的sh脚本   ./zkCli.sh可以查询各种信息

上面的docker镜像,没有vi也无法安装,只能做单机版。可按docker部署kafka - 简书 或 docker安装kafka及使用 - Maple_feng - 博客园来处理

docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka      下载镜像

镜像的KAFKA_HOME 为 /opt/kafka/

docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper     要先运行zk,若要运行多几班,要修改conf/zoo.conf 可参照zoo_example.conf,要加上其他服务器地址和端口(根据权重来选择leader)。
#单机方式运行kafka  下面ip要改   多机要修改server.properties文件中broker.id 和 zk server
docker run -d --name kafka 
-p 9092:9092 
-e KAFKA_BROKER_ID=0 
-e KAFKA_ZOOKEEPER_ConNECT=10.0.0.101:2181 
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.0.0.101:9092 
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka

#进入容器           topic的操作  和生产者消费者
docker exec -it ${ConTAINER ID} /bin/bash
cd opt/bin
#单机方式:创建一个主题
bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic mykafka
#运行一个生产者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mykafka
#运行一个消费者
bin/kafka-console-consumer.sh --zookeeper zookeeper:2181 --topic mykafka --from-beginning

#分区数量的作用:有多少分区就能负载多少个消费者,生产者会自动分配给分区数据,每个消费者只消费自己分区的数据,每个分区有自己独立的offset
#进入kafka容器
vi opt/kafka/config/server.properties
修改run.partitions=2
#退出容器
ctrl+p+q
#重启容器
docker restart kafka
​
#修改指定topic
./kafka-topics.sh --zookeeper localhost:2181 --alter --partitions 3 --topic topicname

python代码

安装kafka-python   官网的demo非常好,只是要改动一下,否则无法运行

一段比较常用的bash

#!/bin/bash

case $1 in
"start"){
    for i in nodeip1 nodeip2 nodeip3
    do
        echo "*********node name : $i***********"
        ssh $i "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"
};;

"stop"){
    for i in nodeip1 nodeip2 nodeip3
    do
        echo "*********node name : $i***********"
        ssh $i "/opt/module/kafka/bin/kafka-server-stop.sh"
};;

esac

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/652578.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号