/opt/module/kafka/bin/kafka-topics.sh --zookeeper hadoop102:2181 --topic calllog --create --replication-factor 1 --partitions 3
时间: 2023-10-07 16:09:14 浏览: 138
这是一个创建Kafka主题的命令,其中:
- `/opt/module/kafka/bin/kafka-topics.sh` 是 Kafka 的命令行工具路径
- `--zookeeper hadoop102:2181` 指定了 ZooKeeper 的地址,用于管理 Kafka 的元数据
- `--topic calllog` 指定要创建的主题名称为 `calllog`
- `--create` 指定要创建主题
- `--replication-factor 1` 指定主题的副本因子,即该主题的每个分区有多少个副本,这里是1
- `--partitions 3` 指定主题的分区数为3,即将该主题分成3个分区
以上命令将会创建一个名为 `calllog` 的主题,该主题有3个分区,每个分区只有1个副本。
相关问题
/opt/nsfocus/espc/deps/kafka/bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic 111 Note: This will have no impact if delete.topic.enable is not set to true. 执行delete 提示这个
这个提示的意思是,如果没有将 `delete.topic.enable` 设置为 `true`,则执行删除操作不会有任何影响。可以通过修改 Kafka 配置文件中的 `server.properties` 文件来启用此功能:
```
delete.topic.enable=true
```
修改后需要重启 Kafka 服务才能生效。
from kafka import KafkaConsumer consumer = KafkaConsumer( '111', bootstrap_servers=['localhost:9092'], group_id='111', auto_offset_reset='latest' ) for message in consumer: print(message.value.decode()) 为什么我执行这段代码后 执行/opt/nsfocus/espc/deps/kafka/bin/kafka-topics.sh --zookeeper localhost:2181 --list 多了个111这个topic
这是因为当您使用 KafkaConsumer 订阅一个不存在的 topic 时,Kafka 会自动创建该 topic。在您的代码中,您订阅了名为 '111' 的 topic,而当您运行代码时,Kafka 发现没有名为 '111' 的 topic,因此它会自动创建一个名为 '111' 的 topic。
如果您不希望自动创建 topic,您可以在创建 KafkaConsumer 时添加参数 `enable_auto_topic_creation=False`,如下所示:
```
from kafka import KafkaConsumer
consumer = KafkaConsumer(
'111',
bootstrap_servers=['localhost:9092'],
group_id='111',
auto_offset_reset='latest',
enable_auto_topic_creation=False
)
for message in consumer:
print(message.value.decode())
```
这样,当您尝试订阅一个不存在的 topic 时,Kafka 不会自动创建该 topic,而会抛出一个错误。
阅读全文