常见命令

Author: 郑文峰

一些组件的常用命令。

kafka

topic操作

./kafka-topics.sh --zookeeper $zookeeper_ip:$zookeeper_port --create --topic $topic --replication-factor $replication_factor --partitions $partitions

创建topic

kafka-topics.sh --list --zookeeper $zookeeper_ip:$zookeeper_port

获取所有的topic

topic操作参数

参数作用
--replication-factor副本数
--partitionspartitions数
--create创建topic
--delete删除topic

消费topic

kafka-console-consumer.sh --group $group --bootstrap-server $kafka_host:$kafka_port --topic $topic

使用消费者组group对topic进行消费

kafka-console-consumer.sh --consumer.config /tmp/client.properties --group $group --bootstrap-server $kafka_host:$kafka_port --topic $topic

以认证的方式进行消费

security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-256

client.properties 配置文件

消费topic参数

参数作用
--group消费者组名称
--bootstrap-serverkafka broker的地址
--topic需要消费的topic
--from-beginning从开头开始消费

生产topic

kafka-console-producer.sh --broker-list $host:$port --topic $topic

对topic进行生产数据. 该方式为未认证方式

kafka-console-producer.sh --producer.config /tmp/client.properties --broker-list $host:$port --topic $topic

以认证的方式连接kafka并生产数据.

acl操作

kafka-acls.sh --authorizer-properties zookeeper.connect=$zookeeper_host:$zookeeper_port --add --allow-principal User:$username --allow-host IP:$ip --topic $topic

添加对topic的acl限制,仅允许username和来源ip访问

kafka-acls.sh --authorizer-properties zookeeper.connect=$zookeeper_host:$zookeeper_port --list

acl参数

参数作用
--allow-principal允许访问的用户.
--allow-host允许访问的ip
--add添加acl
--remove删除acl
--list查看acl
--topic指定topic进行acl限制

消费者组操作

kafka-consumer-groups.sh  --bootstrap-server $kafka_host:$kafka_port --describe --group $group

可以查看消费者消费topic的情况,包含当前的offset和topic的最新offset等

kafka-consumer-groups.sh--bootstrap-server $kafka_host:$kafka_port --delete --group $group

删除消费者组

kafka-consumer-groups.sh--bootstrap-server $kafka_host:$kafka_port --list

查看所有消费者组

认证配置

  • 创建kafka_jaas.conf

    KafkaClient {
        org.apache.kafka.common.security.scram.ScramLoginModule required
        username="kafka_user"
        password="kafka_password";
    };
    
  • 创建client.properties

    Client {
        org.apache.kafka.common.security.scram.ScramLoginModule required
        username="zookeeperUser"
        password="zookeeperPassword";
    };
    
  • 创建环境变量,指定kafka_jaas.conf文件的绝对路径

    export KAFKA_OPTS="-Djava.security.auth.login.config=/tmp/kafka_jaas.conf"
    

认证的方式使用kafka命令

消费

kafka-console-consumer.sh --consumer.config ./client.properties --bootstrap-server ${kafka_server}:9092 --topic ${topic}

生产

kafka-console-producer.sh --producer.config ./client.properties --broker-list ${kafka_server}:9092 --topic ${topic}

其他命令

kafka-consumer-groups.sh  --command-config ./client.properties --bootstrap-server ${kafka_server}:9092 --describe --group ${group_id}

helm

命令

命令作用
install安装helm
upgrade更新helm,其参数基本与install相同

命令参数

参数作用
--versionhelm包版本号
-nnamespace
-f参数文件
--dry-run不会真正执行操作
--debugdebug模式

安装helm包

helm install helm名称 helm包名称 --version="helm包版本号" -n namespace -f values.yaml

指定namespace使用values.yaml作为参数安装helm

helm install --dry-run --debug helm名称 helm包名称 --version="helm包版本号" -n namespace -f values.yaml

通过添加--dry-run --debug可以对安装helm进行测试验证其中的语法和配置。

pulsar

pulsar-admin

查看租户

./pulsar-admin --admin-url http://${pulsar_url}:${pulsar_admin_port} tenants

创建租户

./pulsar-admin --admin-url http://${pulsar_url}:${pulsar_admin_port} tenants create ${tenant_name}

查看namespace

./pulsar-admin --admin-url http://${pulsar_url}:${pulsar_admin_port} namespaces 

创建namespace

./pulsar-admin --admin-url http://${pulsar_url}:${pulsar_admin_port} namespaces create ${tenant_name}/${namespace_name}

创建topic

./pulsar-admin --admin-url http://${pulsar_url}:${pulsar_admin_port} topics create persistent://${tenant_name}/${tenant_name}/${topic_name}

pulsar-admin 查看topic中的详情

./pulsar-admin topics partitioned-stats persistent://${tenant_name}/${tenant_name}/${topic_name} --per-partition

pulsar-admin 查看topic中的详情说明

参数作用
msgRateIn生产的速率
msgRateOut被消费的速率
subscriptions该topic的订阅者
msgBacklog订阅者堆积数
partitionspartitions数

pulsar-client 生产

./pulsar-client pulsar://${pulsar_url}:${pulsar_port} produce -m "${message}" persistent://${tenant_name}/${tenant_name}/${topic_name} 

生产的参数

参数作用
-m生产的消息

pulsar-client 消费

./pulsar-client pulsar://${pulsar_url}:${pulsar_port} consume -s "${consumer_name}" persistent://${tenant_name}/${tenant_name}/${topic_name} -n 0

消费的参数

参数作用
-s消费者名称
-n永不停止的消费