Flink-1.10
1、Job因为没有可用的任务slot而失败
2021-06-24 12:50:36,433 INFO org.apache.flink.runtime.executiongraph.ExecutionGraph - Job Windowed Join Example (d2f1e2b84ab8bc67298b32022a77c4fa) switched from state RUNNING to FAILING.org.apache.flink.runtime.jobmanager.scheduler.NoResourceAvailableException: Could not allocate all requires slots within timeout of 300000 ms. Slots required: 5, slots allocated: 3 at org.apache.flink.runtime.executiongraph.ExecutionGraph.lambda$scheduleEager$3(ExecutionGraph.java:991) at java.util.concurrent.CompletableFuture.uniExceptionally(Unknown Source) at java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(Unknown Source) at java.util.concurrent.CompletableFuture.postComplete(Unknown Source) at java.util.concurrent.CompletableFuture.completeExceptionally(Unknown Source) at org.apache.flink.runtime.concurrent.FutureUtils$ResultConjunctFuture.handleCompletedFuture(FutureUtils.java:535) at java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source) at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source) at java.util.concurrent.CompletableFuture.postComplete(Unknown Source) at java.util.concurrent.CompletableFuture.completeExceptionally(Unknown Source) at org.apache.flink.runtime.concurrent.FutureUtils$1.onComplete(FutureUtils.java:772)
解决:增加slot数设置
2、批任务处理中print可以不使用execute,否则会因为没有sink而报错
Exception in thread "main" java.lang.RuntimeException: No new data sinks have been defined since the last execution. The last execution refers to the latest call to 'execute()', 'count()', 'collect()', or 'print()'.at org.apache.flink.api.java.ExecutionEnvironment.createProgramPlan(ExecutionEnvironment.java:940)at org.apache.flink.api.java.ExecutionEnvironment.createProgramPlan(ExecutionEnvironment.java:922)at org.apache.flink.api.java.LocalEnvironment.execute(LocalEnvironment.java:85)at cn.test.BatchJob.main(BatchJob.java:77)
解决:可以直接使用print,无需execute触发
如:
val ws = text.flatMap(_.split(" ")).map((_, 1)).groupBy(0).sum(1)
ws.print()
3、Table环境执行缺少依赖包
java: 无法访问org.apache.flink.api.scala.ExecutionEnvironment找不到org.apache.flink.api.scala.ExecutionEnvironment的类文件
解决:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-scala_2.12</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table_2.12</artifactId>
<version>${flink.version}</version>
</dependency>
4、scala类型转化问题
Error:(22, 40) could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[String]
val wordCountDataSet = text.flatMap(_.split(" ")).map((_, 1)).groupBy(0).sum(1)
解决:import org.apache.flink.api.scala._
5、scala版本问题
xception in thread "main" java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V
at akka.util.Timeout.<init>(Timeout.scala:13)
at akka.actor.ActorSystem$Settings.<init>(ActorSystem.scala:329)
at akka.actor.ActorSystemImpl.<init>(ActorSystem.scala:686)
at akka.actor.RobustActorSystem.<init>(RobustActorSystem.scala:47)
at akka.actor.RobustActorSystem$.internalApply(RobustActorSystem.scala:96)
解决:
-
注意当前引入scala版本是否和IDEA的scala一致
-
缺flink-clients_xx包
-
Scala开发核心依赖包
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-scala_2.11</artifactId>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-scala_2.11</artifactId>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients_2.11</artifactId>
<version>${flink.version}</version>
</dependency>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)