码迷,mamicode.com
首页 > 其他好文 > 详细

Kafka 操作

时间:2015-09-26 16:02:25      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

基本操作

本节将列一下在Kafka集群上的最常用的操作。所有在本节被提到的工作都可以$KAFKA_HOME/bin目录下找到;并且每个工具都会较详细的打印命令的所有可能的选项。

添加和移除Topic

你可以手动创建一个Topic也可以在第一次向某个Topic发送消息的时候由Kafka自动创建。如果Topic是被自动创建的话,你可以需要手动对一些配置项进行调优。

添加和修改Topic工具:

bin/kafka-topics.sh --zookeeper zk_host:port/chroot --create --topic my_topic_name 
       --partitions 20 --replication-factor 3 --config x=y

replication factor控制有多少个server将会复制各条被写入Topic的消息。如果该值为3,那么可以有2台server停止工作的情况下,消费端以访问到消息。我们建议你设置该值为2或者3,这样就可以在重启服务时而不影响消费端消费数据。

partition count控制该Topic会有多少个分片。首先每个parition应该在单独的一台server上。所以如果你有20个partions,那么这个Topic的整个数据集针会被不多于20个server去处理(不考虑数据备份)。最终partition count会影响消费端的最大并行数。将会在后台详细讨论这个参数。

跟在命令行后面的参数将会覆盖掉Kafka配置的默认参数。

修改Topic

你可以通过同样的命令修改Topic的配置的partition。

添加partition命令如下:

bin/kafka-topics.sh --zookeeper zk_host:port/chroot --alter --topic my_topic_name 
       --partitions 40

请注意当按一定的语义来区分partion的情况,添加partion并不会修改当前partition中已经存在的值,这可能使依赖某个partion进行消费消息的消费端。也就是说如果数据被通过 hash(key)%number_of_partitions 进行分区的话,那么在添加partion后,数据将会被按key进行重新放入不同的partion,不过Kafka将不会尝试去自动重新分布已经存在的数据。

添加配置项:
bin/kafka-topics.sh --zookeeper zk_host:port/chroot --alter --topic my_topic_name --config x=y

删除配置项:
bin/kafka-topics.sh --zookeeper zk_host:port/chroot --alter --topic my_topic_name --deleteConfig x

删除Topic
bin/kafka-topics.sh --zookeeper zk_host:port/chroot --delete --topic my_topic_name

默认情况下是不能删除Topic,如果需要删除Topic的话,请在配置文件里设置如下属性

delete.topic.enable=true

Kafka当前不支持减少partition和修改replication factor的操作




Kafka 操作

标签:

原文地址:http://my.oschina.net/u/939893/blog/511480

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!