更新时间:2025-12-17 GMT+08:00
创建Kafka Topic
操作场景
用户可以根据业务需要,使用集群客户端或KafkaUI创建Kafka的主题。启用Kerberos认证的集群,需要拥有管理Kafka主题的权限。
前提条件
- 已安装客户端,例如安装目录为“/opt/client”,以下操作的客户端目录只是举例,请根据实际安装目录修改。
下载并安装集群客户端的具体操作,请参考安装MRS集群客户端。
- 各组件业务用户由MRS集群管理员根据业务需要创建。“机机”用户需要下载keytab文件。“人机”用户第一次登录时需修改密码。(集群未启用Kerberos认证(普通模式)时不涉及)
创建用户相关操作请参考创建Kafka用户并绑定角色。
约束与限制
MRS 3.3.1及之后版本,Kafka不再支持使用“--zookeeper”方式创建Topic。
使用Kafka客户端创建Kafka Topic
- 登录MRS集群Manager。
登录集群Manager具体操作,请参考访问MRS集群Manager。
- 获取Kafka节点业务IP及端口。
- 获取ZooKeeper节点业务IP及端口。
- 以客户端安装用户,登录安装客户端的节点。
- 执行以下命令,切换到客户端安装目录,例如安装目录为“/opt/client”,具体以实际替换。
cd /opt/client - 执行以下命令配置环境变量。
source bigdata_env
- 执行以下命令,进行用户认证。(集群未启用Kerberos认证(普通模式)时跳过此步骤)
kinit 组件业务用户 - 执行以下命令进入Kafka客户端“bin”目录。
cd Kafka/kafka/bin
- 使用kafka-topics.sh创建Kafka主题。
MRS 3.3.1及之后版本,Kafka不再支持使用“--zookeeper”方式创建Topic。
./kafka-topics.sh --create --topic 主题名称 --partitions 主题占用的分区数 --replication-factor 主题的备份数 --zookeeper ZooKeeper的任意一个节点的业务IP:clientPort/kafka
./kafka-topics.sh --create --topic 主题名称 --partitions 主题占用的分区数 --replication-factor 主题的备份数 --bootstrap-server Kafka集群IP:21007 --command-config ../config/client.properties
- 创建完成后执行以下命令,查看主题创建成功。
./kafka-topics.sh --describe --zookeeper ZooKeeper的任意一个节点的业务IP:clientPort/kafka --topic 主题名称
./kafka-topics.sh --describe --bootstrap-server Kafka集群IP:21007 --command-config ../config/client.properties --topic 主题名称
使用KafkaUI创建Kafka Topic
- 集群已启用Kerberos认证(安全模式),执行Create Topic操作的用户需属于“kafkaadmin”用户组,否则将会由于鉴权失败导致无法创建。
- 集群未启用Kerberos认证(普通模式),执行Create Topic操作不做鉴权,即任意用户都可执行Create Topic操作。
- 进入KafkaUI界面。
- 使用具有KafkaUI页面访问权限的用户登录FusionInsight Manager,选择“集群 > 服务 > Kafka”。
如需在页面上进行相关操作,例如创建Topic,需同时授予用户相关权限,请参考Kafka用户权限说明。
- 在“KafkaManager WebUI”右侧,单击URL链接,访问KafkaUI的页面。
- 使用具有KafkaUI页面访问权限的用户登录FusionInsight Manager,选择“集群 > 服务 > Kafka”。
- 单击“Create Topic”进入创建Topic页面。在弹出的页面中参考表1填写信息,单击“Create”,完成Topic创建。
- 创建完成后,单击“Topics”页签,查看“Topic List”中存在已创建的Topic名称,单击Topic名称,可以查看详细信息。
图1 Topic创建成功
相关文档
- 更多管理Kafka Topic相关操作请参考管理Kafka Topic。
- 使用Kafka客户端命令创建Topic时,报错NoAuthException、KeeperErrorCode = NoAuth for /config/topics,请参考创建Kafka Topic时报错“NoAuthException”章节进行处理。
- 使用Kafka客户端命令创建Topic时,报错NoNodeException: KeeperErrorCode = NoNode for /brokers/ids,请参考创建Kafka Topic时报错“NoNode for /brokers/ids”章节进行处理。
- 使用Kafka客户端命令创建Topic时,报错replication factor larger than available brokers,请参考创建Kafka Topic时报错“replication factor larger than available brokers”章节进行处理。
- 使用Kafka客户端命令创建Topic时,发现创建Topic Partition的Leader显示为none,请参考创建Kafka Topic时,发现Partition的Leader显示为none章节进行处理。
- 使用Kafka客户端获取Topic时报错“ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 2 larger than available brokers: 0.”,请参考获取Kafka Topic时报错“InvalidReplicationFactorException”章节进行处理。
- 删除Kafka Topic后发现未成功删除时,请参考删除Kafka Topic时发现无法删除章节进行处理。
- 删除Kafka Topic时报错“ERROR kafka.admin.AdminOperationException: Error while deleting topic test4”,请参考删除Kafka Topic时报错“AdminOperationException”章节进行处理。
父主题: 使用Kafka