场景:
使用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

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

被折叠的 条评论
为什么被折叠?



