版权声明:
本文为博主学习整理原创文章,如有不正之处请多多指教。
未经博主允许不得转载。https://blog.csdn.net/qq_42595261/article/details/83377837
启动zookeeper服务(笔者存放路径为/root/abc)
nohup zookeeper-server-start.sh /root/abc/kafka_2.11-0.10.0.1/config/zookeeper.properties &
启动kafka服务
nohup kafka-server-start.sh /root/abc/kafka_2.11-0.10.0.1/config/server.properties &
创建主题(副本数在后面进行修改)
kafka-topics.sh --create --zookeeper localhost:2181 --topic mytopic --partitions 1 --replication-factor 1
查看所有的主题信息
kafka-topics.sh --describe --zookeeper localhost:2181
查看指定主题信息
kafka-topics.sh --describe --zookeeper localhost:2181,localhost2:2181,localhost3:2181 --topic mytopic1
生成数据
kafka-console-producer.sh --broker-list localhost:9092 --topic mytopic
消费数据
kafka-console-consumer.sh --zookeeper localhost:2181 --topic mytopic
停止kafka
bin/kafka-server-stop.sh
停止zookeeper
bin/zookeeper-server-stop.sh
描述topic
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
删除topic(慎用,只会删除zookeeper中的元数据,消息文件须手动删除)
bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic topicname
删除topic中存储的内容在config/server.properties中找到如下的位置
# A comma seperated list of directories under which to store log files
log.dirs=/tmp/kafka-logs
查看topic某分区偏移量最大(小)值
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --topic hive-mdatabase-hostsltable --time -1 --broker-list node86:9092 --partitions 0
注: time为-1时表示最大值,time为-2时表示最小值
增加topic分区数
为topic t_cdr 增加10个分区
bin/kafka-topics.sh --zookeeper node01:2181 --alter --topic t_cdr --partitions 10
查看topic消费进度
这个会显示出consumer group的offset情况, 必须参数为--group, 不指定--topic,默认为所有topic
Displays the: Consumer Group, Topic, Partitions, Offset, logSize, Lag, Owner for the specified set of Topics and Consumer Group
bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker
Example,
bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --group pv
Group Topic Pid Offset logSize Lag Owner
pv page_visits 0 21 21 0 none
pv page_visits 1 19 19 0 none
pv page_visits 2 20 20 0 none
史上最全KafKa原理介绍:
https://zm12.sm-tc.cn/?src=l4uLj8XQ0J2TkJjRnIybkdGRmovQhpyXmpGZmpGY0J6Ni5ack5rQm5qLnpaTjNDIy8bHz8rMzg%3D%3D&uid=970cdce60bf10ba2ea899844a387fe26&hid=037c91855a26a36aaad4e3c11a587078&pos=6&cid=9&time=1521077573732&from=click&restype=1&pagetype=0000004002000408&bu=structure_web_info&query=kafka%E5%8E%9F%E7%90%860+-1+1&mode=&v=1&force=true&wap=false&uc_param_str=dnnt0nwvepffrgibijbprsvdsdichei
1、解压zookeeper
tar -zxvf zookeeper-3.4.9.tar.gz
2、重命名 zoo_sample.cfg 为 zoo.cfg
vim zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/logs
clientPort=2181
配置解析:
tickTime: zookeeper中使用的基本时间单位, 毫秒值.
dataDir: 数据目录. 可以是任意目录.
dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.
clientPort: 监听client连接的端口号.
启动:
zookeeper_home/bin/zkServer.sh start
查看服务: jps
5321 QuorumPeerMain
5338 Jps
查看运行状态:
zookeeper_home/bin/zkServer.sh status
需要在三台服务器上安装zookeeper,向在某一台上安装好之后通过scp的方式发送到其它主机
进入到conf目录:/usr/local/apps/zookeeper-3.4.9/conf
修改配置文件名称:mv zoo_sample.cfg zoo.cfg
修改zk的数据目录:dataDir=/opt/zookeeper/data
需要配置有哪些的服务节点:
zoo.cfg中配置:
放在zoo.cfg的文件末尾
tickTime=2000 dataDir=/opt/zookeeper/data / / 此路径为新建路径,需提前新建
clientPort=2181 initLimit=10 syncLimit=5 server.1=master:2888:3888 server.2=node1:2888:3888 server.3=node2:2888:3888
server.1=broker1:2888:3888
server.2=broker2:2888:3888
server.3=broker3:2888:3888
broker:表示主机名
在数据目录中,需要创建一个id标志:操作如下:
在数据目录下,创建一个myid文件。内容为server.后的这个编号
如下面的操作。在keduox02主机上需要在数据目录中创建一个myid文件,内容为2
需要先创建数据目录
mkdir /opt/zookeeper/data
关闭防火墙
启动:
zkServer.sh start
可以通过zkServer.sh status查看状态
新建maven项目之前需要先安装该关系依赖
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.10</artifactId>
<version>0.10.0.0</version>
</dependency>
代码没错,直接运行,能运行成功,但是生产者无法将数据写入topic中,消费者也无法从topic中拿到数据。需要在kafka的server.properties中新增配置项。解决办法网址链接:
https://blog.csdn.net/zhaominpro/article/details/79068141
我 是 有 底 线 的