修改 topic 的分区数

shiyanlou:bin/ $ ./kafka-topics.sh --zookeeper localhost:2181 --alter --topic mySendTopic --partitions 4
WARNING: If partitions are increased for a topic that has a key, the partition logic or ordering of the messages will be affected
Adding partitions succeeded!

如果 topic 的 partition 数量增加了,那么消息的分区逻辑或者消息的顺序都会受到影响。这一点我们在学习 consumer 课程中详解。

查看是否增加了:

shiyanlou:bin/ $ ./kafka-topics.sh --zookeeper localhost:2181 --describe --topic mySendTopic           [15:00:54]
Topic:mySendTopic PartitionCount:4 ReplicationFactor:2 Configs:
 Topic: mySendTopic Partition: 0 Leader: 2 Replicas: 2,0 Isr: 2,0
 Topic: mySendTopic Partition: 1 Leader: 0 Replicas: 0,1 Isr: 0,1
 Topic: mySendTopic Partition: 2 Leader: 1 Replicas: 1,2 Isr: 1,2
 Topic: mySendTopic Partition: 3 Leader: 2 Replicas: 2,1 Isr: 2,1

对于一个topic来说,其partition的数量,只能增加,不能减少

删除topic:

shiyanlou:bin/ $./kafka-topics.sh --zookeeper localhost:2181 --delete --topic myDeleteTopic

myDeleteTopic 只是标记为删除,没有真正删除。要想彻底删除,需在 server.properties 中设置 delete.topic.enable=true。运行如下命令验证这一点:./kafka-topics.sh --zookeeper localhost:2181 --list

安装python操作kafka的包

shiyanlou:bin/ $ sudo pip install pykafka

shiyanlou:~/ $ cat pykafk.py                                         [16:10:15]
#!/usr/bin/python from pykafka import KafkaClient
client = KafkaClient(hosts="127.0.0.1:9092,127.0.0.1:9093, 127.0.0.1:9094")
#查看主题
print client.topics
#查看brokers
print client.brokers
topic = client.topics['mySendTopic']
for n in client.brokers:
host = client.brokers[n].host
port = client.brokers[n].port
id = client.brokers[n].port
print "host=%s |port=%s|broker.id=%s" %(host,port,id)
shiyanlou:~/ $ python pykafk.py [16:10:31]
{'myFirstTopic': None, 'mySendTopic': None}
{0: <pykafka.broker.Broker at 0x7ff88c363590 (host=857dafc13648, port=9092, id=0)>, 1: <pykafka.broker.Broker at 0x7ff88c363dd0 (host=857dafc13648, port=9093, id=1)>, 2: <pykafka.broker.Broker at 0x7ff88c376110 (host=857dafc13648, port=9094, id=2)>}
host=857dafc13648 |port=9092|broker.id=9092
host=857dafc13648 |port=9093|broker.id=9093
host=857dafc13648 |port=9094|broker.id=9094

kafka--通过python操作topic的更多相关文章

  1. Kafka Java API操作topic

    Kafka官方提供了两个脚本来管理topic,包括topic的增删改查.其中kafka-topics.sh负责topic的创建与删除:kafka-configs.sh脚本负责topic的修改和查询,但 ...

  2. 使用python操作kafka

    使用python操作kafka目前比较常用的库是kafka-python库 安装kafka-python pip3 install kafka-python 生产者 producer_test.py ...

  3. kafka实战教程(python操作kafka),kafka配置文件详解

    kafka实战教程(python操作kafka),kafka配置文件详解 应用往Kafka写数据的原因有很多:用户行为分析.日志存储.异步通信等.多样化的使用场景带来了多样化的需求:消息是否能丢失?是 ...

  4. python操作kafka

    python操作kafka 一.什么是kafka kafka特性: (1) 通过磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能. (2) 高吞吐量 :即使是 ...

  5. Kafka中操作topic时 Error:Failed to parse the broker info from zookeeper

      Kafka中操作topic时 Error: Failed to parse the broker info from zookeeper 1.问题描述   2.问题原因     kafka在启动后 ...

  6. kfka学习笔记一:使用Python操作Kafka

    1.准备工作 使用python操作kafka目前比较常用的库是kafka-python库,但是在安装这个库的时候需要依赖setuptools库和six库,下面就要分别来下载这几个库 https://p ...

  7. Python 【第六章】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  8. Python操作RabbitMQ

    RabbitMQ介绍 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现的产品,RabbitMQ是一个消息代理,从“生产者”接收消息并传递消 ...

  9. Python操作Redis、Memcache、RabbitMQ、SQLAlchemy

    Python操作 Redis.Memcache.RabbitMQ.SQLAlchemy redis介绍:redis是一个开源的,先进的KEY-VALUE存储,它通常被称为数据结构服务器,因为键可以包含 ...

随机推荐

  1. python的经典类与新式类

    新式类:class Myclass(object): pass 经典类:class Myclass: pass 新式类里面加了一些新方法,例如重写父类: class A(object): def __ ...

  2. leetcode 720. Longest Word in Dictionary

    Given a list of strings words representing an English Dictionary, find the longest word in words tha ...

  3. Markdown - 让网络书写变得简单

    概述 宗旨 Markdown 的目标是实现「易读易写」. 可读性,无论如何,都是最重要的.一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所 ...

  4. laravel中的validator()类验证的使用

  5. hdu1569

    题解: 网络流 最大权独立集=总和-最大流 然后构图 代码: #include<cstdio> #include<cmath> #include<cstring> ...

  6. JPlayer使用之二,主要函数介绍

    上一篇插件搭建的顺序最后一步的页面初始化函数中,就是最重要的一步,就先从这个函数说起吧. $("#jquery_jplayer_1").jPlayer({ ready: funct ...

  7. asp页面快速找到菜单按钮转向的页面的方法

    asp页面快速找到菜单按钮转向的页面的方法: 鼠标放在按钮上,右键属性即可查看

  8. SQL查询执行步骤

    1.总结 执行顺序 3.select ...聚合函数 from 表名 1.where ... 2.group by ... 4.having ... 5.order by ... 6.limit .. ...

  9. silverlight——获取控件相对位置

    事出有因:页面中存在滚动条,然后点击页面按钮时会进行正确性检查,如果出错在控件的位置会出现提示信息,但由于滚动条的出现,有可能在非可视区域内的控件出了问题,但目前是看不见的,因此,考虑获得出问题控件的 ...

  10. windows中的oracle12SE后启动的系统服务的列表

    下图是我安装在windows 10下安装好oracle12.10SE之后的启动的系统服务的列表. 通常,我是将其全部修改为手动启动.当需要用oracle服务的时候,只需要启动对应的实例的服务和tnsl ...