TOC
声明
由于我不是Flink专家,因此只是将使用/研究Flink时遇到的问题分享出来,如有不对之处麻烦提示或帮忙纠正一下,感谢!
常见异常
This type (GenericType) cannot be used as key.
基本上是说在你的数据处理过程中把map或含有map类型字段的对象作为了key或key的一部分.
例如:
...
DataSet<Tuple2<TdbBaseMto, Integer>> counts =
text.flatMap(new Tokenizer())
.groupBy(0)
.sum(1);
...
public class TdbBaseMto {
...
public Map tags = Collections.emptyMap();
}
上述代码块中TdbBaseMto
对象就存在了map类型的字段,因此发生了这个错误.
This type (GenericType) cannot be used as key.
可能是你的key对象没有默认的无参public构造函数,或者是字段没有声明为public.
The TaskExecutor is shutting down.
本地起了完整的Flink Runtime,然后跑了几个批处理的demo,但是批处理完成后总是会报出这个异常.
具体原因还未知.
The module flink-runtime-web could not be found in the class path. Please add this jar in order to enable web based job submission.
提示很明确了,缺少了flink-runtime-web
的依赖包,把下面${flink.version}
改成自己需要的版本就可以了.
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-runtime-web_2.12</artifactId>
<version>${flink.version}</version>
</dependency>
常见问题
明明设置了webui但是打不开.
使用下面方式开启了webui,并且日志已经提示开始监听8081,但是就是打不开页面.
网上某些文章都是下面这样的代码来开启本地JVM Flink环境的webui.
...
env = ExecutionEnvironment.createLocalEnvironmentWithWebUI(new Configuration());
...
后来发现是需要用流应用的环境才能打开页面:
...
StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(new Configuration());
...
不排除版本导致的问题,这里用到的Flink版本是1.14.2
.
温馨提示
本文持续更新
微信公众号
扫描下面的二维码关注我们的微信公众号,第一时间查看最新内容。同时也可以关注我的Github,看看我都在了解什么技术,在页面底部可以找到我的Github。
