Flink 1.11
文章平均质量分 65
优优我心
这个作者很懒,什么都没留下…
展开
-
Flink实战之MysqlCDC To Iceberg
网上找了一圈没找到一个mysql to Iceberg的实践案例,总结下这几天的踩坑心血历程,希望能提供一些帮助。现状目前Iceberg 0.11版本只支持CDC streaming写入,sql 写入以及CDC 读取都是不支持的。mysql binlog的读取有现成的Connector可用,参考 flink-cdc-connectors。不错demo里面只提供了String的序列化方式,Iceberg需要接受RowData的数据格式。踩坑记录java.lang.ClassCastExcept原创 2021-03-15 16:00:22 · 1802 阅读 · 3 评论 -
Flink实战之Parquet写复杂类型
上一篇Flink实战之Parquet支持读复杂类型说了如何扩展读复杂类型,本篇作为其姊妹篇介绍下如何扩展写复杂类型。现状StreamingFileSink在写parquet文件时,通过ParquetWriteSupport中的ParquetRowDataWriter来写的,在writersupport中会将Flink内部的 rowType类型转换为Parquet识别的MessageTypeprivate MessageType schema = convertToParquetMessageType原创 2021-02-03 11:31:36 · 1177 阅读 · 0 评论 -
Flink实战之Parquet支持读复杂类型
背景前面写过几篇关于flink入库的文章,但是还有个通点一直未解决,那就是小文件问题。好在1.12版本已经支持了小文件合并,但是在使用时发现问题了,parquet居然不支持读复杂类型,这就有点蛋疼了。那么我们就来尝试解决他。1.11现状使用parquet读filesystem依赖于ParquetFileSystemFormatFactory#createReader来创建InputFormat,目前的实现是其内部类ParquetInputFormat,更进一步是使用ParquetColumnarRow原创 2020-12-25 15:39:02 · 942 阅读 · 0 评论 -
Flink实战之入库任务调优
背景在调试flink写hdfs和hive时,任务总是报各种各样的异常,其中255问题最多,异常信息如下:java.lang.Exception: Exception from container-launch.Container id: container_1597847003686_5818_01_000002Exit code: 255Stack trace: ExitCodeException exitCode=255: at org.apache.hadoop.util.Shell.r原创 2020-12-03 17:19:31 · 1194 阅读 · 0 评论 -
Flink实战之Kafka To Hive
背景传统的入库任务一般借助于MapReduce或者Spark来写hive表,一般都是天级别最多小时级别的任务。随着实时性要求越来越高,传统的入库不太能满足需求。Flink完全基于流式处理,同时也支持了写Hive表。本文介绍一下如果通过FlinkSQL实现kafka数据入库hive,并能够实时可查。Hive Catalog由于写hive表必须基于hive catalog,所以需要注册hive catalog。同时可以在一个job内切换catalog,如果我们不想把kafka的source table注册原创 2020-11-24 20:23:02 · 1883 阅读 · 0 评论 -
Flink实战之写Hive性能问题
上一篇中写了Kafka to Hive的样例,在实际测试过程中,发现性能比较差。问题1我使用的是Flink1.11.1版本,这个版本有个性能上的问题,见FLINK-19121。该问题已经在1.11.3版本中修复,在HiveTableSink中沿用了FileSystemTableSink的TableRollingPolicy,再该policy中每条数据都会调用@Override public boolean shouldRollOnEvent( PartFileInfo<String原创 2020-11-27 01:14:05 · 1412 阅读 · 0 评论 -
Flink实战之FileSystem-parquet支持ZSTD压缩
==原创 2020-10-28 14:55:01 · 1475 阅读 · 0 评论 -
Flink实战之扩展JDBC Dialect
前言Flink jdbc connect已经为依赖于jdbc进行操作的数据库系统提供了非常完善的功能。对于扩展只需要扩展其Dialect即可。具体步骤定义CustomizedDialect类,具体可参考MySQLDialect修改点:TIMESTAMP_PRECISIONDECIMAL_PRECISIONdialectName()canHandle() → “jdbc:xxx:” 如:“jdbc:clickhouse:”getRowConverter() → 定义CustomizedR原创 2020-09-30 16:35:46 · 1064 阅读 · 2 评论 -
Flink源码编译命令
mvn clean package -T 4 -Dfast -Dmaven.compile.fork=true -DskipTests -Dscala-2.11原创 2020-09-15 16:46:51 · 243 阅读 · 0 评论 -
Flink源码阅读之Sql-Client的执行原理
前言sql-cli相信大家都用过,通过sql-client.sh embedded启动就会进入交互界面,每条sql都可以单独执行。在功能调试时非常方便,还有进入界面的那个大松鼠相当可爱。脚本先上脚本代码#!/usr/bin/env bash################################################################################# Licensed to the Apache Software Foundation (ASF原创 2020-09-12 01:48:48 · 956 阅读 · 0 评论 -
No operators defined in streaming topology. Cannot generate StreamGraph
Flink 1.11版本对Table&SQL模块进行了重构,废弃了TableEnvironment.sqlUpdate方法,引入了TableEnvironment.executeSql、StatementSet.execute方法。在进行测试时报如下异常Exception in thread "main" java.lang.IllegalStateException: No operators defined in streaming topology. Cannot generate Str原创 2020-08-03 17:59:30 · 9501 阅读 · 1 评论