CDH-Kafka节点迁移

櫰木1年前技术文章380


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,恢复正常


相关文章

linux中的buffer和cache

linux中的buffer和cache

linux中的buffer和cache一、buffer和cache的来源及应用1、来源Buffer 是缓冲区,而 Cache 是缓存,两者都是数据在内存中的临时存储。那么,这两种“临时存储”有什么区别...

Hbase预分区

Hbase预分区

HBase 的数据物理存储格式为多维稀疏排序 Map, 由 key 及 value 组成:key 的构成: rowkey+column family+column qualifier+timestam...

切换不同的网络访问同一个业务报错"network error"

切换不同的网络访问同一个业务报错"network error"

问题现象:业务:xxx,使用谷歌浏览器登陆之后,访问“商品档案”模块,会提示“network error”报错内容,但是切换到其他浏览器测试是可以正常访问的,同时,在使用谷歌浏览器访问的情况下,如果切...

8.0 新特性-Generated Invisible Primary Key

8.0 新特性-Generated Invisible Primary Key

说明MySQL Innodb 引擎采用的是 IOT(索引组织表)存储方式,主键的重要性就不言而喻。在早期版本用户如果没有显式指定主键,会自动生成隐藏主键 row_id 来组织 B+ 树,隐藏主键 ro...

Hbase&Hive区别对比

Hbase和Hive定义区别Hbase,其实是Hadoop database的简称,是一种NoSQL数据库,主要适用于海量明细数据(十亿、百亿)的随机实时查询,如日志明细、交易清单、轨迹行为等。Hiv...

hive执行count和spark执行count结果不一致

hive执行count和spark执行count结果不一致

【组件版本】hive on mr、spark【问题现象】hive 执行count语句,结果条数为0,spark执行count语句能正常显示count数【详细描述】hive 执行count语句:显示co...

发表评论    

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