(一)kafka安装及操作命令

(一)kafka安装及操作命令

1.安装
kafka可以通过官网下载

https://kafka.apache.org/downloads

kafka根据Scala版本不同,又分为多个版本,我不需要使用Scala,所以就下载官方推荐版本kafka_2.12-2.4.0.tgz。

下载好后在自己的服务器上进行解压即可,这里就不演示了

2.Zookeeper配置
当前下载的kafka程序里自带Zookeeper,可以直接使用其自带的Zookeeper建立集群,也可以单独使用Zookeeper安装文件建立集群。

这里先用自带的,后期再写一篇zookeeper安装
kafka自带的Zookeeper程序脚本与配置文件名与原生Zookeeper稍有不同。

kafka自带的Zookeeper程序使用bin/zookeeper-server-start.sh,以及bin/zookeeper-server-stop.sh来启动和停止Zookeeper。而Zookeeper的配制文件是config/zookeeper.properties,可以修改其中的参数

启动Zookeeper
进入到kafka目录下:

bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

加-daemon参数,可以在后台启动Zookeeper,输出的信息在保存在执行目录的logs/zookeeper.out文件中。

对于小内存的服务器,启动时有可能会出现如下错误

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Cannot allocate memory' (errno=12)

在这里插入图片描述
可以通过修改bin/zookeeper-server-start.sh中的参数,来减少内存的使用,将下图中的-Xmx512M -Xms512M改小。
在这里插入图片描述

关闭Zookeeper

bin/zookeeper-server-stop.sh -daemon config/zookeeper.properties

3.kafka配置
kafka的配置文件在config/server.properties文件中,主要修改参数如下
broker.id是kafka broker的编号,集群里每个broker的id需不同。我这从0开始。
在这里插入图片描述
listeners是监听地址,需要提供外网服务的话,要设置本地的IP地址
在这里插入图片描述
log.dirs是日志目录,需要设置
在这里插入图片描述
设置Zookeeper集群地址,我这里就一个服务器上搭建了kafka和Zookeeper,所以就一个且填的本地地址
在这里插入图片描述
如果要用上面的集群的话可以用多台服务器,当然了如果你服务器内存各方面可以的话,也可以在一台服务器上搭建多个,用不同端口号来启动

num.partitions 为新建Topic的默认Partition数量,partition数量提升,一定程度上可以提升并发性
在这里插入图片描述
内部topic配置
内部__consumer_offsets和__transaction_state两个topic,分组元数据的复制因子,为了保证可用性,在生产上建议设置大于1。
default.replication.factor为kafka保存消息的副本数,如果一个副本失效了,另一个还可以继续提供服务,是在自动创建topic时的默认副本数,可以设置为3
在这里插入图片描述
副本设置如下:

default.replication.factor=3

启动及停止kafka
1)启动kafka

bin/kafka-server-start.sh -daemon config/server.properties

-daemon 参数会将任务转入后台运行,输出日志信息将写入日志文件,日志文件在执行命令的目录下的logs目录中kafkaServer.out,结尾输同started说明启动成功。

也可以用jps命令,看有没有kafka的进程

2)停止kafka

bin/kafka-server-stop.sh config/server.properties

4.测试
前提是kafka和Zookeeper已启动完成
1)创建topic

bin/kafka-topics.sh --zookeeper ip地址:2181 --create --topic first --partitions 3 --replication-factor 2

选项说明:
–topic 定义 topic 名
–replication-factor 定义副本数
–partitions 定义分区数

2)查看topic

bin/kafka-topics.sh --zookeeper ip地址:2181 --list 

3)删除 topic (需要 server.properties 中设置 delete.topic.enable=true 否则只是标记删除)

bin/kafka-topics.sh --zookeeper IP地址:2181 --delete --topic first 

4)发送消息

bin/kafka-console-producer.sh --broker-list hadoop102:9092 --topic first 
>hello world 

5)消费数据

bin/kafka-console-consumer.sh --zookeeper IP地址:2181 --topic first 

–from-beginning:会把主题中以往所有的数据都读取出来。

 bin/kafka-console-consumer.sh --zookeeper IP地址:2181 --from-beginning --topic first 

6)查看某个 Topic 的详情

bin/kafka-topics.sh --zookeeper IP地址:2181 --describe --topic first 

7)修改分区数

bin/kafka-topics.sh --zookeeper IP地址:2181 --alter --topic first --partitions 6 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值