多线程向flink集群提交任务失败

Caused by: org.apache.flink.client.program.ProgramInvocationException: The program execution failed: Could not upload the program's JAR files to the JobManager.
at org.apache.flink.client.program.ClusterClient.runDetached(ClusterClient.java:454)
at org.apache.flink.client.program.StandaloneClusterClient.submitJob(StandaloneClusterClient.java:99)
at org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:400)
at org.apache.flink.client.program.DetachedEnvironment.finalizeExecute(DetachedEnvironment.java:76)
at org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:345)
... 14 common frames omitted
Caused by: org.apache.flink.runtime.client.JobSubmissionException: Could not upload the program's JAR files to the JobManager.
at org.apache.flink.runtime.client.JobClient.submitJobDetached(JobClient.java:410)
at org.apache.flink.client.program.ClusterClient.runDetached(ClusterClient.java:451)
... 19 common frames omitted
Caused by: java.io.IOException: Could not retrieve the JobManager's blob port.
at org.apache.flink.runtime.blob.BlobClient.uploadJarFiles(BlobClient.java:745)
at org.apache.flink.runtime.jobgraph.JobGraph.uploadUserJars(JobGraph.java:565)
at org.apache.flink.runtime.client.JobClient.submitJobDetached(JobClient.java:407)
... 20 common frames omitted
Caused by: java.io.IOException: PUT operation failed: Could not transfer error message
at org.apache.flink.runtime.blob.BlobClient.putInputStream(BlobClient.java:512)
at org.apache.flink.runtime.blob.BlobClient.put(BlobClient.java:374)
at org.apache.flink.runtime.blob.BlobClient.uploadJarFiles(BlobClient.java:771)
at org.apache.flink.runtime.blob.BlobClient.uploadJarFiles(BlobClient.java:740)
... 22 common frames omitted
Caused by: java.io.IOException: Could not transfer error message
at org.apache.flink.runtime.blob.BlobClient.readExceptionFromStream(BlobClient.java:799)
at org.apache.flink.runtime.blob.BlobClient.receivePutResponseAndCompare(BlobClient.java:537)
at org.apache.flink.runtime.blob.BlobClient.putInputStream(BlobClient.java:508)
... 25 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.ipc.RemoteException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.flink.util.InstantiationUtil$ClassLoaderObjectInputStream.resolveClass(InstantiationUtil.java:64)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1613)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1774)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:501)
at java.lang.Throwable.readObject(Throwable.java:914)
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:497)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1058)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1900)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:290)
at org.apache.flink.runtime.blob.BlobClient.readExceptionFromStream(BlobClient.java:795)
... 27 common frames omitted

0

2个回答

自己回复一下 对于flink提交任务时 会将任务对应的jar文件上传至远程主机(如何上传因集群部署方式不同而不同),最终存储到hdfs上,然后taskmanager会去hdfs上下载此文件。
上传文件时,会生成对应的文件名,而文件名是根据jar包的字节码生成的(极端的说,即便jar包对应的源代码中多了一个空格,生成的文件名都不会相同)。
所以,同一个jar会生成同样的文件名,而它又在同样的路径中,这时就会出现多线程对同一文件读写,典型的多线程访问同一资源的问题。这也就是导致上述问题的根源。

0

多线程提交10个任务,其中大部分成功,部分失败。以上是失败的报错信息。我对着源码看了,问题出在向jobclient类中:当blobClient.put(is)时
(其中is为jar对应的inputstream),使用一个与blob server连接的socket向集群提交jar。
提交完成后会用这个socket获取返回数据:final InputStream is = this.socket.getInputStream();,然而这个返回的状态码为1,其含义为:Internal code to identify an erroneous operation.。然后又调用readExceptionFromStream方法解析报错信息,这个解析报错的方法也报错了: java.lang.ClassNotFoundException: org.apache.hadoop.ipc.RemoteException。有没有大神指点一下,给指个方向。感谢!!!

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Flink提交任务至yarn
在flink on yarn模式中,flink yarn-session的两种提交方式 1.公用一个yarn-session 在yarn中初始化一个flink集群,开辟指定的资源,以后提交任务都向这里提交。这个flink集群会常驻在yarn集群中,除非手工停止。 2.每个job提供一个yarn-session     每次提交都会创建一个新的flink集群,任务之间互相独立,互不影...
Apache Flink流作业提交流程分析
提交流程调用的关键方法链用户编写的程序逻辑需要提交给Flink才能得到执行。本文来探讨一下客户程序如何提交给Flink。鉴于用户将自己利用Flink的API编写的逻辑打成相应的应用程序包(比如Jar)然后提交到一个目标Flink集群上去运行是比较主流的使用场景,因此我们的分析也基于这一场景进行。
flink从安装到提交任务
本操作全部在Windows下环境进行操作,linux环境下更为简单 下载: flink这东西安装要启动local模式还是比较简单的,首先从官网上下载 http://flink.apache.org/downloads.html   我下载的是最新版本1.1.3, 解压flink: 下载完后对其进行解压,我解压所在的目录在D:\flink-1.1.3-bin-hadoop26-sca
Flink提交运行中常见问题总结
Flink提交运行中常见问题总结 一、问题1 1.问题描述: 提交jar到Flink集群时候出现: java.util.ServiceConfigurationError: org.apache.hadoop.fs.FileSystem: Provider org.apache.hadoop.fs.viewfs.ViewFileSystem could not be instantiated 可...
flink任务提交
flink安装启动后,默认端口为8081。 浏览器启动 http://ip:8081,可以进入可视化界面。可以看到正在运行的任务及状态。 若要提交新的任务,点击“Submit new Job” -- “Add New+”,上传编译好的jar包工程 点击“upload”,等待上传完成:   点击新上传的jar包,可进行提交操作,"submit":   提交后可看到任务运行及...
Flink任务提交模式
local模式本地运行,不需要集群环境IDE开发时,local模式方便本地测试standalone需要搭建flink集群提交命令flink run -m artemis-02:6123 -c com.test.WordCount2 ./Flink.jar hdfs://artemis-02:9000/tmp/lvxw/tmp/logs/words hdfs://artemis-02:9000/t...
Flink运行时之客户端提交作业图-上
客户端提交作业图作业图(JobGraph)是Flink的运行时所能理解的作业表示,无论程序通过是DataStream还是DataSet API编写的,它们的JobGraph提交给JobManager以及之后的处理都将得到统一。本篇我们将分析客户端如何提交JobGraph给JobManager。
Flink提交作业的两种方式
抛砖引玉: 在Spark集群提交作业时候可以使用--deploy参数指定client或者cluster方式提交作业到集群,前者是客户端模式,后者是集群模式,两者主要区别就是Driver的运行位置,在客户端模式下,Driver运行在提交作业的客户端机器上负责与集群进行资源申请调度等工作。而集群模式下Driver运行在集群中的某一个节点上负责资源申请以及调度。 一般的,客户端模式适合程序的调试,这
Flink 代码方式提交程序到远程集群运行
在学习Flink时候,看到如下方法,可以获取到远程集群上的一个ExecutionEnvironment实例,便尝试使用一下,将本地IDE作业提交到集群运行,代码如下: def createRemoteEnvironment(host: String, port: Int, jarFiles: String*): ExecutionEnvironment 代码: pack
Standalone模式两种提交任务方式
第一种方式Standalone-client提交任务方式 提交命令-方式1: ./spark-submit --master spark://node1:7077 --class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-hadoop2.6.0.jar 1000 提交命令-方式2:  ./spark-su...
flink集群(standalone模式)简单操作
1、关键配置文件flink-conf.yaml ##配置master节点ip jobmanager.rpc.address: 192.168.1.100 ##配置slave节点可用内存,单位MB taskmanager.heap.mb: 25600 ##配置每个节点的可用slot,1 核CPU对应 1 slot ##the number of available CPUs per machi...
Flink集群没有异常信息,但不工作
1 现象:taskmanager和jobManager都有输出消息:Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /tmp/jna6879710861309389413.tmp which might have disabled stack guard. The VM will try to fix the s...
Flink运行时之客户端提交作业图-下
submitJob方法分析JobClientActor通过向JobManager的Actor发送SubmitJob消息来提交Job,JobManager接收到消息对象之后,构建一个JobInfo对象以封装Job的基本信息
Flink开发中遇到的问题及解法
1. 当Source是Kafka的时候,如何设置Source Operator的并发度?如果没有指定,Source Operator的个数与集群中的TaskManager的个数相等。如果手动设置,建议使用的slot个数=Kafka Partition的个数/TaskManager的个数。此时,Slot的个数需大于等于2.因为其中有一个Source Operator。也不建议在一个Slot中启用多线...
Spark集群任务提交
1. 集群管理器 Spark当前支持三种集群管理方式 Standalone—Spark自带的一种集群管理方式,易于构建集群。 Apache Mesos—通用的集群管理,可以在其上运行Hadoop MapReduce和一些服务应用。 Hadoop YARN—Hadoop2中的资源管理器。 Tip1: 在集群不是特别大,并且没有mapReduce和Spark同时运行的需求
如何停止flink job
两种方式,在standalone和on yarn集群中都是适用的1:在ui界面停止2:在命令行停止在ui界面停止假设已经成功提交到集群一个任务,查看集群webui界面在命令行停止:先查询目前在运行的job任务列表执行bin/flink list命令,发现有一个正在运行的job使用cancel命令进行停止,指定刚才查询到的job id。...
【Flink】Flink集群部署与YARN集成
1、Standalone 软件要求: Java 1.8.x or higher ssh JAVA_HOME配置 You can set this variable in conf/flink-conf.yaml via the env.java.home key. Flink配置: 下载解压 配置:conf/flink-conf.yaml
如何在集群中提交任务
-
Flink集群运行5个小时候后down掉
1 现象:flink集群执行job,运行5个小时后,jobmanager报:2018-03-29 15:25:39,311 INFO  org.apache.flink.runtime.jobmanager.JobManager                - RECEIVED SIGNAL 1: SIGHUP. Shutting down as requested.2018-03-29 15:...
Flink入门之Standalone模式集群伪分布式搭建
  1:首先配置Java相关环境以及Flink下载,解压就不说了。 2:接下来看看Flink的conf的配置文件:                                                   这里面需要我们配置的有:slaves和flink-conf.yaml文件,这里面masters文件是用来配置HA的,只要我们不配置HA的话,就不需要配置masters文件(fl...
Storm集群已经部署、配置完毕,向集群提交任务。
原文:http://www.it610.com/article/1961490.htm启动Storm的所有后台进程。和Zookeeper一样,Storm也是快速失败(fail-fast)的系统,这样Storm才能在 任意时刻被停止,并且当进程重启后被正确地恢复执行。这也是为什么Storm不在进程内保存状态的原因,即使Nimbus或Supervisors被重 启,运行中的Topologies不会受到...
flink部署操作-flink on yarn集群安装部署
flink集群安装部署 yarn集群模式   Flink入门及实战-上: http://edu.51cto.com/sd/07245 Flink入门及实战-下: http://edu.51cto.com/sd/5845e   快速开始 在yarn上启动一个一直运行的flink集群 在yarn上运行一个flink job flink yarn session 启动flink ses...
IDEA Spark-submit提交任务到集群
1 IDEA 打包 示例代码参考AMPCamp2015之SparkSQL,开发环境使用idea。首先需要将程序打包成jar 选择project structure --》artifacts ,由于集群已经有了运行依赖的jar包,打包时可以将这些jar包排除出去,以减小打包后的jar包的大小。 点击ok,然后选择build --》bu
IDEA向hadoop集群提交MapReduce作业
IDEA向Hadoop集群提交作业环境搭建 windows环境:IntelliJ IDEA 2017.2.3、JRE: 1.8.0_152-release-915-b11 、hadoop-2.7.4.tar.gz、hadoop-common-2.2.0-bin-master.rar 一、windows下配置hadoop环境 1.解压hadoop-2.7.4.tar.gz到c盘(或者任...
hadoop中集群提交任务运行
集群模式运行 1/将工程打成jar包,上传到服务器,然后用hadoop命令提交  hadoop jar wc.jar cn.itcast.hadoop.mr.wordcount.WCRunner 2/在linux的eclipse中直接运行main方法,也可以提交到集群中去运行,但是,必须采取以下措施:       ----在工程src目录下加入 mapred-site.xml  和  yar
python代码提交到spark集群并设定定时任务
一、启动thrift 因为用到了happybase,需要先在服务器上上启动thrift服务, 关闭终端thrift继续运行命令如下: nohup hbase thrift -p 9090 start 二、linux从本地安装python库 以thriftpy为例 解压 tar zxvf thriftpy-0.3.9.tar.gz 回到当前目录 cd thriftpy-0.3.9 编译 pyth...
flink 的datastream的作业提交问题
我们有一个search的系统,用来从不同的服务器上搜索不同类型的数据(应用程序日志,linux日志,系统日志,client或server日志), search后的数据要提交给Flink Cluster 去执行, 具体的应用模型是 search(Data)+ flink(data streaming)提交给flink集群, 应用场景是用户每search一次就要提交一次flink job ,
Eclipse远程提交MapReduce任务到Hadoop集群
一、介绍 以前写完MapReduce任务以后总是打包上传到Hadoop集群,然后通过shell命令去启动任务,然后在各个节点上去查看Log日志文件,后来为了提高开发效率,需要找到通过Ecplise直接将MaprReduce任务直接提交到Hadoop集群中。该章节讲述用户如何从Eclipse的压缩包最终完成Eclipse提价任务给MapReduce集群。 二、详解 1、安装Eclipse,安装
Storm集群提交任务
本人原帖地址:http://www.jianshu.com/p/6783f1ec2da0,欢迎访问留言。 准备工作: 1. 将开发好的jar包上传到服务器package目录下 2. Storm集群已经启动 我们提交一个WordCount任务: 为了方便,我们仍以blogchong老师的代码为例 GitHub项目链接,请读者自行打包并上传到nimbus节点上nimbus服务器进入
Flink流处理之迭代任务
前面我们分析过Flink对迭代在流图中的特殊处理,使得迭代中的反馈环得以转化为普通的DAG模型。这一篇我们将剖析运行时的流处理迭代任务的执行机制。这里涉及到两个任务类:
spark集群的任务提交执行流程
本文转自:https://www.linuxidc.com/Linux/2018-02/150886.htm一、Spark on Standalone1.spark集群启动后,Worker向Master注册信息2.spark-submit命令提交程序后,driver和application也会向Master注册信息3.创建SparkContext对象:主要的对象包含DAGScheduler和Tas...
storm(二)集群提交拓扑
准备工作:将开发好的jar包上传到服务器nimbus节点上,如package目录下启动Storm集群执行命令storm jar ./wordCountByAndy.jar  com.andy.learning.storm_helloworld.SimpleTopology testtask1 解释下这条命令中的各个参数:jar:运行你的storm job./wordCountByAndy.jar:...
用spark-submit提交任务给集群时涉及的参数
用spark-submit提交任务给集群时涉及的参数: 用bin/spark-submit提交,查看spark-submit用法 bin/spark-submit --help Usage:spark-submit [options] <app jar | python file> [app arguments] 如local模式时: #将程序运行在local mode,启动2个T...
Flink运行时之合久必分的特定任务
合久必分的特定任务前面我们谈到了TaskManager对每个Task实例会启动一个独立的线程来执行。在分析线程执行的核心代码时,我们看到最终执行的是AbstractInvokable这样执行体的invoke方法。所谓合久必分,鉴于流处理任务跟批处理任务执行模式上存在巨大的差异,在对AbstractInvokable的实现时,它们将会走向两个不同的分支。
两种yarn集群提交方式
yarn yarn是一种新的hadoop资源管理器,包括 一个全局的资源管理器ResourceManager,ResourceManager的每个节点代理NodeManager, 每个应用的APplicationMaster, 每个ApplicationMaster拥有多个Container在NodeManager上运行 yarn-client提交模式 一般用于测试,在本地启动driver
flink集群上运行job问题
现象:在web上提交任务后报:org.apache.flink.client.program.ProgramInvocationException: Unknown I/O error while extracting contained jar files. at org.apache.flink.client.program.PackagedProgram.extractContainedL...
Flink on Yarn模式启动流程分析(Flink 1.1)
Flink yarn
flink填坑之jar包另一种打包方式
最近玩flink真的是疯掉了,新手想要打包maven工程又出问题了,找不到terminal,mvn命令不认识,又不存在goal,直接换思路网上找到另一种打包方式
flink命令行参数
Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用的功能。
IDEA向hadoop集群提交作业
1. 说明 本地环境:Intellij IDEA15.0.2 、jdk-7u65-windows-x64.exe、hadoop-2.6.1.tar.gz 集群环境及其配置详情请见:http://blog.csdn.net/qq_28039433/article/details/78147172 本文原先是根据http://blog.csdn.net/uq_jin/article/details/52
文章热词 Cifar-10图像分类任务 Cifar-10图像分类任务 tensorflow猫狗识别任务 tensorflow猫狗识别任务 机器学习
相关热词 c# 多线程批量提交任务 c#多线程完成一个任务 c++多线程带任务返回 人工智能课程教学目的和任务 python3菜鸟教程多线程