
# Kafka Shell命令介绍
#### 前提条件
Kafka的Linux客户端已安装。安装方法可参考[安装客户端](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0091.html)。
#### 常用的Shell命令指南
Shell命令执行方法：
1. 进入Kafka客户端任意目录。
2. 初始化环境变量。 
   **source /opt/client/bigdata_env**
   
   
3. 如果当前集群已启用Kerberos认证，执行以下命令认证当前用户（该用户需要加入kafkaadmin用户组拥有Kafka管理员权限）。如果当前集群未启用Kerberos认证，则无需执行此命令。 
   **kinit** ***MRS*** ***集群用户***
   例如：**kinit admin**
   
   
4. 进入"*客户端安装目*录/Kafka/kafka/bin"执行Kafka shell命令。
常用的命令如下：
- 查看当前集群Topic列表。 **sh kafka-topics.sh --list --zookeeper \<ZooKeeper集群IP:2181/kafka\>**
  
- 查看单个Topic详细信息。 **sh kafka-topics.sh --describe --zookeeper \<ZooKeeper集群IP:2181/kafka\> --topic \<Topic名称\>**
  
- 删除Topic，由管理员用户操作。 **sh kafka-topics.sh --delete --zookeeper \<ZooKeeper集群IP:2181/kafka\> --topic \<Topic名称\>**
  
- 创建Topic，由管理员用户操作。 **sh kafka-topics.sh --create --zookeeper \<ZooKeeper集群IP:2181/kafka\> --partitions 6 --replication-factor 2 --topic \<Topic名称\>**
  
- Old Producer API生产数据。 **sh kafka-console-producer.sh --broker-list \<Kafka集群IP:9092\> --topic \<Topic名称\> --old-producer -sync**
  
- Old Consumer API消费数据。 **sh kafka-console-consumer.sh --zookeeper \<ZooKeeper集群IP:2181/kafka\> --topic \<Topic名称\> --from-beginning**
  
- Producer API生产消息，需要拥有该Topic生产者权限。 **sh kafka-console-producer.sh --broker-list \<Kafka集群IP:21007\> --topic \<Topic名称\> --producer.config config/producer.properties**
  
- Consumer API消费数据，需要拥有该Topic的消费者权限 **sh kafka-console-consumer.sh --topic \<Topic名称\> --bootstrap-server \<Kafka集群IP:21007\> --new-consumer --consumer.config config/consumer.properties**
  
![](https://support.huaweicloud.com/devg-mrs/public_sys-resources/note_3.0-zh-cn.png)
- 未开启Kerberos认证的Kafka集群端口默认为9092，开启Kerberos认证的Kafka集群端口默认为21007。
- 登录[MRS Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0102.html)，选择"服务管理 \> ZooKeeper \> 实例"，获取ZooKeeper的quorumpeer实例的"管理IP"地址。
- 登录[MRS Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0102.html)，选择"服务管理 \> Kafka \> 实例"，获取Kafka的broker实例的"管理IP"地址。
 
