hibench运行flink程序第三步run.sh出错(提交job失败)

news/2024/5/20 4:09:31 标签: 大数据, flink, kafka, hdfs

flinkjob_0">在hibench上运行flink程序,提交job失败

hibench上做flink实验时,在新的服务器上重新配置环境后,在成功运行Hibench的前两步genSeedDataset.sh和dataGen.sh后,运行run.sh,正常提交,但生成metrics全部为0。
分析原因:

  1. Kafka产生数据失败
    仔细查看了Kafka日志发现没有问题,怀疑可能是设置的自动删除日志设置的数据量过小,去掉之后,仍然结果为0。所以不是Kafka的问题。
  2. flink的集群配置有问题
    但所有的配置文件什么的,全是默认的,在原来的服务器上全部都能正常运行。

正无从下手的时候,运行第三步run.sh报错,如下:

Starting execution of program
metrics is being written to kafka topic FLINK_identity_1_250000_50_1586831923121

------------------------------------------------------------
 The program finished with the following exception:

org.apache.flink.client.program.ProgramInvocationException: Job failed. (JobID: 32bd7ef54e5afedbb815afd240f6adde)
        at org.apache.flink.client.program.rest.RestClusterClient.submitJob(RestClusterClient.java:268)
        at org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:487)
        at org.apache.flink.streaming.api.environment.StreamContextEnvironment.execute(StreamContextEnvironment.java:66)
        at com.intel.hibench.flinkbench.microbench.Identity.processStream(Identity.java:52)
        at com.intel.hibench.flinkbench.RunBench.runAll(RunBench.java:68)
        at com.intel.hibench.flinkbench.RunBench.main(RunBench.java:30)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:529)
        at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:421)
        at org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:427)
        at org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:813)
        at org.apache.flink.client.cli.CliFrontend.runProgram(CliFrontend.java:287)
        at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:213)
        at org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:1050)
        at org.apache.flink.client.cli.CliFrontend.lambda$main$11(CliFrontend.java:1126)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1754)
        at org.apache.flink.runtime.security.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41)
        at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1126)
Caused by: org.apache.flink.runtime.client.JobExecutionException: Job execution failed.
        at org.apache.flink.runtime.jobmaster.JobResult.toJobExecutionResult(JobResult.java:146)
        at org.apache.flink.client.program.rest.RestClusterClient.submitJob(RestClusterClient.java:265)
        ... 22 more
Caused by: org.apache.flink.runtime.jobmanager.scheduler.NoResourceAvailableException: Could not allocate all requires slots wit...
        at org.apache.flink.runtime.executiongraph.ExecutionGraph.lambda$scheduleEager$3(ExecutionGraph.java:991)
        at java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:870)
        at java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(CompletableFuture.java:852)
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
        at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977)
        at org.apache.flink.runtime.concurrent.FutureUtils$ResultConjunctFuture.handleCompletedFuture(FutureUtils.java:535)
        at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760)
        at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736)
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
        at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977)
        at org.apache.flink.runtime.concurrent.FutureUtils$1.onComplete(FutureUtils.java:772)
        at akka.dispatch.OnComplete.internal(Future.scala:258)
        at akka.dispatch.OnComplete.internal(Future.scala:256)
        at akka.dispatch.japi$CallbackBridge.apply(Future.scala:186)
        at akka.dispatch.japi$CallbackBridge.apply(Future.scala:183)
        at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:36)
        at org.apache.flink.runtime.concurrent.Executors$DirectExecutionContext.execute(Executors.java:83)
        at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:44)
        at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:252)
        at akka.pattern.PromiseActorRef.$bang(AskSupport.scala:534)
        at akka.pattern.PipeToSupport$PipeableFuture$$anonfun$pipeTo$1.applyOrElse(PipeToSupport.scala:20)
        at akka.pattern.PipeToSupport$PipeableFuture$$anonfun$pipeTo$1.applyOrElse(PipeToSupport.scala:18)
        at scala.concurrent.Future$$anonfun$andThen$1.apply(Future.scala:436)
        at scala.concurrent.Future$$anonfun$andThen$1.apply(Future.scala:435)
        at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:36)
        at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55)
        at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor.scala:91)
        at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91)
        at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91)
        at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72)
        at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:90)
        at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:39)
        at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:415)
        at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

反映的问题时flink提交任务失败,往下看,会看见

Caused by: org.apache.flink.runtime.jobmanager.scheduler.NoResourceAvailableException: Could not allocate all requires slots wit.

这个错误报的是没能收集到足够的slot,可是并行度和slot的关系是

parallism<=slots*taskmanager个数

按正常来说,默认的配置完全不会出现slots不够的问题。于是,就实验了默认的并行度:1,slots:1会不够,发现它至少需要两个slots。这就很奇怪了。
总之,问题是出现在flink上面,这个配置文件的并行度和slots会影响任务的提交。
一定要注意flink-conf.yaml中的参数取值问题


http://www.niftyadmin.cn/n/1728119.html

相关文章

React生命周期的理解

前言&#xff1a; 在最初学习react的过程中&#xff0c;我对react的生命周期没有足够的重视&#xff0c;使得我在开发过程中遇到了很多问题。弄懂react的声明周期&#xff0c;可以让你的代码更加高效&#xff0c;更加优美。 什么是生命周期函数&#xff1f; 生命周期函数&am…

html标签集合

html标签汇总标签总结标签总结 标题标签 <h1>....</h1> <!-- 1级标题 --><h2>....</h2> <!-- 2级标题 --><h3>....</h3> <!-- 3级标题 --><h4>....</h4> <!-- 4级标题 --><h5>....</h5>…

Hadoop的简单知识总结

Hadoop概述 1.Hadoop是什么&#xff1f;解决什么问题&#xff1f; Hadoop是由Apache基金会所开发的分布式基础框架。 主要解决&#xff1a;海量数据的存储和海量数据的分析计算问题 2.三大并行版本 3.Hadoop的优势 &#xff08;1&#xff09;高可靠性&#xff1a;Hadoop底层…

js类三大属性,封装、继承、多态

继承、封装、多态 构造函数&#xff1a; 在java语言中类的定义中都有构造函数&#xff0c;在js中也有构造函数的概念&#xff0c;Object对象都有constructor构造函数方法&#xff1b; js中Object对象都有以下属性和方法&#xff1a; 1、constructor&#xff1a;构造函数属性…

聊聊js原型那些事

原型详解 原型&#xff08;对象属性&#xff09; Javascript规定&#xff0c;每一个函数都有一个prototype对象属性&#xff0c;指向另一个对象&#xff08;原型链上面的&#xff09;。 prototype(对象属性)的所有属性和方法&#xff0c;都会被构造函数的实例继承。这意味着…

python实现浮点数二进制与十进制之间的转换

浮点数二进制与十进制之间的转换 在使用遗传算法的时候&#xff0c;需要对数据进制二进制编码&#xff0c;所以改的这个浮点数不同进制之间转换的一个代码 直接上代码 #二进制转化为十进制浮点数 def todecimal(n):把一个带小数的二进制数n转换成十进制小数点后面保留pre位小…

集成方法原理总结

集成学习 集成方法的目标是把多个使用给定学习算法构建的基估计器的预测结果结合起来&#xff0c;从而获得比单个估计器更好的泛化能力/鲁棒性。简单来说集成学习就是把若干个基学习器通过某种学习算法结合起来&#xff0c;进而达到比单个基学习更好的效果。 主要有两个问题&a…

浅谈js闭包理解

清晰理解js闭包 我们都知道&#xff0c;js的作用域分两种&#xff0c;全局和局部&#xff0c;基于我们所熟悉的作用域链相关知识&#xff0c;我们知道在js作用域环境中访问变量的权利是由内向外的&#xff0c;内部作用域可以获得当前作用域下的变量并且可以获得当前包含当前作…