CDH-Kafka节点迁移

櫰木10个月前技术文章290


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


相关文章

Spark on yarn 动态资源配置

Spark on yarn 动态资源配置

1、背景spark on yarn 的环境下,开源的spark 默认是关闭动态分配申请资源的。每次提交时,需要手动定义--num-executors 的数量。为了提交任务方便,需要开启动态分配资源sp...

PG的多版本并发控制(一)

PG的多版本并发控制(一)

一、 表系统字段几个比较重要概念1.1  tupletuple表示表中的数据行,在MySQL中用row表示。在表数据页中,主要分为普通的数据元祖和TOAST元祖。以下是一个普通数据元祖的结构,主要由三...

Nginx限流

Nginx限流

一、背景         限流的目的是通过对并发访问/请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务(定向到错误页),多应用于高并发场景和安全防护场景。通过限流有效地减缓暴力密码破解攻击,也可...

Hbase Rowkey设计方法

良好的 rowkey 设计,应当遵循以上四大原则,并且能让数据分散,从而避免热点问题。下面是几种常用的 rowkey 设计方法。1 Salt 加盐这里说的 Salt 加盐方法,是给每一个 rowkey...

MySQL优化器特性(五)单表访问路径

数据库的访问路径(access path)是指从表中获取数据的方式,一般可以通过扫描表或通过索引获取数据。想熟练掌握SQL优化技能,首先需要熟悉单表访问路径。本文先简单介绍MySQL支持的各种单表访问...

log_queries_not_using_indexes参数设置

log_queries_not_using_indexes参数设置

【现象】通过查看慢日志发现有如下信息: 如上慢日志里出现较多 'index not used' warning(s) suppressed 信息;该信息主要是因为开启 log_queries_not_...

发表评论    

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