flink 读取hive表 写入到kafka方案

本文介绍了使用Flink SQL从大型Hive表中读取数据并写入Kafka的过程,以及遇到的内存爆炸和GC问题。通过调整为批处理方式解决内存问题,但出现新的错误。最终采用Table转Streaming方式成功写入,但提醒该方案适用于内网测试,不适用于生产环境。
摘要由CSDN通过智能技术生成

场景:

使用flink sql读取hive表数据写入到kafka

hive表大约80个字段 500W数据

遇到问题:

内存爆炸,4G内存都不够,这肯定不行。

GC严重:

解决方案:

  之前的代码是流式读取hive表写入kafka,有问题,内存爆炸,写入也慢。

如果使用batch方式写入的话,这个问题就解决了:

直接上代码:

public class FlinkReadHiveAndWriteMysql_batch {

    private static final String KAFKA_SQL = "CREATE TABLE  kafka_sink (\n" +
            "order_number  string,          \n" +
            "device_type  string \n" +
            ") WITH (\n" +
            " 'connector' = 'kafka',\n" +
            " 'topic' = 'bbb',\n" +
            " 'properties.bootstrap.servers' = 'dev-ct6-dc-worker01:9092,dev-ct6-dc-worker02:9092,dev-ct6-dc-worker03:9092',\n" +
            " 'properties.group.id' = 'test1',\n" +
            " 'format' = 'json',\n" +
            " 'scan.startup.mode' = 'earliest-offset'\n" +
            ")";

 

 



    priva
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值