Flink集群的类加载机制导致某些配置或代码逻辑被覆盖的问题解决方案

1、概述

博主在测试flink开发任务的时候发现,以下代码在本地测试的时候没有问题,但是上传到flink集群中跑的时候,数据发送不到指定的kafka主题sinkTopic,而是发送了其他的 topic。

...
SingleOutputStreamOperator sso = null;
        sso = stream.map(new MapFunction<KafkaSourceMsg, String>() {
            @Override
            ....
        });
sso.sinkTo(KafkaSink.<String>builder().setBootstrapServers(sinkKafkaIP)
                .setRecordSerializer(KafkaRecordSerializationSchema.builder()
                        .setTopic(sinkTopic)
                        .setValueSerializationSchema(new SimpleStringSchema())
                        .build()
                )
                .setDeliveryGuarantee(DeliveryGuarantee.AT_LEAST_ONCE)
                .build());
 ...

2、问题原因

经过排查,发现是Flink集群的类加载机制导致的某些配置或代码逻辑被覆盖。博主的flink集群flink-conf.yaml配置文件,写了如下配置:

classloader.resolve-order: parent-first

导致了代码中配置的topic被覆盖。

3、解决方案

将flink-conf.yaml配置文件中的上述配置删掉,测试代码中sinkTopic正常生效。
在这里插入图片描述
其他Flink集群的类加载机制配置可能为:classloader.resolve-order。确保作业的依赖包被正确加载,且没有与集群的类加载机制冲突。

感谢阅读~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值