CDH-Kafka节点迁移

櫰木10个月前技术文章294


1、节点迁移

先添加节点,将需要换掉的节点关闭,等待选举leader

启动新添加的节点

1.png

关闭旧的节点

2.png

等待选举leader

3.png

出现离线分区。需要将分区分配到新的节点

2、重分配分区

kafak kerberos环境下使用

参考文档:https://docs.cloudera.com/documentation/enterprise/latest/topics/kafka_security.html

1、如果使用kerberos cache。创建jaas.conf,然后使用kinit进行认证

KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true;
};

2、如果使用kerberos keytab,则创建jaas.conf

KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/etc/security/keytabs/mykafkaclient.keytab"
principal="mykafkaclient/clients.hostname.com@EXAMPLE.COM";
};

3、创建client.properties

security.protocol=SASL_PLAINTEXT
sasl.kerberos.service.name=kafka

4、验证topic是否存在

kafka-topics --list --zookeeper cdp01:2181/kafka

5、使用jaas.conf文件

export KAFKA_OPTS="-Djava.security.auth.login.config=/home/user/jaas.conf"

6、使用jaas.conf进行查看topic

#路径按照实际情况配置
export KAFKA_OPTS="-Djava.security.auth.login.config=/home/user/jaas.conf"
kafka-topics --bootstrap-server cdp01:9092,cdp03:9092,cdp05:9092 --list --command-config client.properties

7、生成topic-gen.json

{
    "topics": [
        {
            "topic": "__consumer_offsets"
        },
        {
            "topic": "__smm-app-consumer-metrics-keys-index-changelog"
        },
        {
            "topic": "__smm-app-producer-metrics-keys-index-changelog"
        },
        {
            "topic": "__smm-app-smm-consumer-table-15m-changelog"
        },
        {
            "topic": "__smm-app-smm-consumer-table-15m-repartition"
        },
        {
            "topic": "__smm-app-smm-consumer-table-30s-changelog"
        },
        {
            "topic": "__smm-app-smm-consumer-table-30s-repartition"
        },
        {
            "topic": "__smm-app-smm-producer-table-15m-changelog"
        },
        {
            "topic": "__smm-app-smm-producer-table-15m-repartition"
        },
        {
            "topic": "__smm-app-smm-producer-table-30s-changelog"
        },
        {
            "topic": "__smm-app-smm-producer-table-30s-repartition"
        },
        {
            "topic": "__smm_alert_notifications"
        },
        {
            "topic": "__smm_consumer_metrics"
        },
        {
            "topic": "__smm_producer_metrics"
        },
        {
            "topic": "connect-configs"
        },
        {
            "topic": "connect-offsets"
        },
        {
            "topic": "connect-status"
        },
        {
            "topic": "test_producer_perf"
        }
    ],
    "version": 1
}

通过--topics-to-move-json-file 和--generate来分配分区策略

kafka-reassign-partitions --zookeeper cdp01:2181/kafka --broker-list "87,215,202"   --topics-to-move-json-file topic-gen.json --generate --command-config client.properties

--broker-list   的值是要分配的kafka broker id,中间逗号隔开

会输出当前分配策略和期望分配策略

当前分配策略

期望分配策略

将当前分配策略备份。使用期望分配策略进行分区分配

通过--reassignment-json-file 参数和--execute执行分配策略

kafka-reassign-partitions --zookeeper cdp01:2181/kafka --reassignment-json-file topic_move.json --execute


通过-reassignment-json-file 和--verify 验证分配是否成功

全部成功后,删除旧的kafka broker

重启kafka,恢复正常


相关文章

pg_probackup

一、pg_probackup概述pg_probackup 是一款免费的postgres数据库集群备份工具,与其他备份工具相比,它主要有如下一些优势:提供增量备份,增量备份一定程度上可以节省磁盘空间的使...

Kubernetes原理分析--Kube-controller list&watch原理解析

Kubernetes原理分析--Kube-controller list&watch原理解析

1.list&watch流程:这里有三个 List-Watch,分别是 Controller Manager(运行在 Master),Scheduler(运行在Master),kubelet(...

Kubernetes 网络插件

Kubernetes 自身并不提供网络解决方案,允许托管使用第三方的网络解决方案。flannelcalicocanelkube-router......各种 CNI 插件的解决方案: 虚拟网桥(bri...

Helm 控制函数

Helm 控制结构(在模板语言中称为 "actions")提供给你和模板作者控制模板迭代流的能力。 Helm 的模板语言提供了以下控制结构:if/else,用来创建条件语句with,用来指定范围ran...

hbase迁移目录说明

路径(1.0.0)路径(0.94)是否迁移说明/hbase/WALs/hbase/.logs否被HLog实例管理的WAL文件。 ### /hbase/WALs/data-hbase.com,60020...

oracle字符集简介

一、字符集介绍字符集和国家字符集字符集在创建数据库实例时指定,可以指定字符集(CHARACTER SET)和国家字符集(NATIONAL CHARACTER SET)。1、字符集(CHARACTER...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。