
# 如何针对Topic进行配置增加和删除
#### 问题描述
使用Kafka过程中常需要对特定Topic进行配置增加或者修改，应该如何操作。
#### 处理步骤
1. 已安装客户端，例如安装目录为"/opt/client"，以下操作的客户端目录只是举例，请根据实际安装目录修改。 下载并安装集群客户端的具体操作，请参考[安装MRS集群客户端](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0089.html)。
   
2. 登录MRS集群Manager。 登录集群Manager具体操作，请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
3. 获取ZooKeeper节点业务IP及端口。
   1. 选择"集群 \> 服务 \> ZooKeeper \> 实例"，查看并记录任意一个ZooKeeper角色实例的业务IP地址。
   
   2. 选择"配置 \> 全部配置"，搜索"clientPort"，查看并记录端口号。 创建LTS版本类型集群时，可以选择"组件端口"为"开源"场景或"定制"场景，选择"开源"时ZooKeeper默认端口为2181，选择"定制"时ZooKeeper默认端口为24002。
      
    
4. 以客户端安装用户，登录安装客户端的节点。
5. 执行以下命令，切换到客户端安装目录，例如安装目录为"/opt/client"，具体以实际替换。
   ```
   cd /opt/client
   ```
   
6. 执行以下命令配置环境变量。
   ```
   source bigdata_env
   ```
   
7. 执行以下命令，进行用户认证。（集群未启用Kerberos认证（普通模式）时跳过此步骤）
   ```
   kinit 组件业务用户
   ```
   
8. 执行以下命令进入Kafka客户端"bin"目录。
   ```
   cd Kafka/kafka/bin
   ```
   
9. 执行以下命令，针对Topic修改配置和删除配置。 修改配置：
   ```
   kafka-topics.sh --alter --topic <topic_name> --zookeeper <zookeeper_host:port>/kafka --config <name=value>
   ```
   删除配置：
   ```
   kafka-topics.sh --alter --topic <topic_name> --zookeeper <zookeeper_host:port>/kafka --delete-config <name>
   ```
   Topic级别可以修改的参数列表如下：
   - cleanup.policy
   
   - compression.type
   
   - delete.retention.ms
   
   - file.delete.delay.ms
   
   - flush.messages
   
   - flush.ms
   
   - index.interval.bytes
   
   - max.message.bytes
   
   - min.cleanable.dirty.ratio
   
   - min.insync.replicas
   
   - preallocate
   
   - retention.bytes
   
   - retention.ms
   
   - segment.bytes
   
   - segment.index.bytes
   
   - segment.jitter.ms
   
   - segment.ms
   
   - unclean.leader.election.enable
   
   
   例如，执行以下命令，修改名称为test1的Topic中"retention.ms"参数值为"86400000"：
   ```
   kafka-topics.sh --alter --topic test1 --zookeeper 192.168.100.100:2181/kafka  --config retention.ms=86400000
   ```
   例如，执行以下命令，删除名称为test1的Topic中"retention.ms"参数：
   ```
   kafka-topics.sh --alter --topic test1 --zookeeper 192.168.100.100:2181/kafka --delete-config retention.ms
   ```
   
10. 执行以下命令，查询topic信息。
    ```
    kafka-topics.sh --describe -topic <topic_name> --zookeeper <zookeeper_host:port>/kafka
    ```
    
 
