Spark JobEnd Listner 从 hdfs 路径移动源文件导致文件未找到异常

Asiri Liyana Arachchi

火花版本:2.3

  • Spark 流应用程序正在从 hdfs 路径流式传输

      Dataset<Row> lines = spark
      .readStream()
      .format("text")
      .load("path");
    
  • 并且经过一些数据转换后,对于一个文件,作业应该处于成功状态。

  • 为作业结束添加作业侦听器,并在触发时移动文件。

    @Override
    public void onJobENd(SparkListenerJobEnd jobEnd) {
    // Move source file to some other location which is finished processing. 
    }
    
  • 文件成功移动到另一个位置。但同时(确切的时间戳)spark 抛出以下文件未找到异常。这是随机发生的,无法复制。但经常发生

  • 即使特定的工作结束了,spark 仍然以某种方式引用该文件。

  • 如何确保一旦作业结束文件不会被火花引用并避免此文件未找到问题

  • 我可以在:这里找到

SparkListenerJobEnd

DAGScheduler does cleanUpAfterSchedulerStop, handleTaskCompletion, failJobAndIndependentStages, and markMapStageJobAsFinished.

例外:

    java.io.FileNotFoundException: File does not exist: <filename>
    at org.apache.hadoop.hdfs.server.namenode.INodeFile.valueOf(INodeFile.java:66)
    at org.apache.hadoop.hdfs.server.namenode.INodeFile.valueOf(INodeFile.java:56)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocationsUpdateTimes(FSNamesystem.java:1932)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocationsInt(FSNamesystem.java:1873)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:1853)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:1825)
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getBlockLocations(NameNodeRpcServer.java:559)
    at org.apache.hadoop.hdfs.server.namenode.AuthorizationProviderProxyClientProtocol.getBlockLocations(AuthorizationProviderProxyClientProtocol.java:87)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getBlockLocations(ClientNamenodeProtocolServerSideTranslatorPB.java:363)
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:619)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1060)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2044)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2040)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2038)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:106)
    at org.apache.hadoop.ipc.RemoteExc

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法使用Spark从HDFS读取文件

来自分类Dev

无法在Spark中使用HDFS中的文件

来自分类Dev

HDFS中的文件如何处理Spark分区?

来自分类Dev

Spark流无法读取从HDFS中的水槽创建的文件

来自分类Dev

无法从Spark Dataframe中的HDFS加载文件

来自分类Dev

使用Apache Spark从HDFS序列文件中创建键值对

来自分类Dev

使用Apache Spark在HDFS中存储多个文件

来自分类Dev

使用Spark Streaming + Kafka的HDFS中的空文件夹

来自分类Dev

如何使用Spark快速从map()中的HDFS中读取文件

来自分类Dev

在Spark中从HDFS或S3读取边缘DB文件

来自分类Dev

如何在Spark中读取HDFS序列文件

来自分类Dev

如何使用Spark快速从map()中的HDFS中读取文件

来自分类Dev

将hdfs文件加载到Spark上下文中

来自分类Dev

Spark HiveContext:HDFS上具有多个文件的表

来自分类Dev

从Spark转换功能内部从HDFS动态读取文件

来自分类Dev

文件夹中的Apache Spark流(非HDFS)

来自分类Dev

在 Scala/Spark 中从 HDFS 读取文本文件

来自分类Dev

在spark中合并seq json hdfs文件中的重复列

来自分类Dev

Spark迭代HDFS目录

来自分类Dev

Spark:HDFS集群模式

来自分类Dev

Spark:HDFS集群模式

来自分类Dev

如何将Spark集群上用Pandas编写的文件移动到HDFS?

来自分类Dev

YARN上Spark提交和Flink的HDFS路径

来自分类Dev

YARN上Spark提交和Flink的HDFS路径

来自分类Dev

如何在 spark 中解析 json 文件?以及如何在 spark 或 hdfs 中插入 dynamo DB?

来自分类Dev

带有Spark的Hadoop HDFS

来自分类Dev

Spark仅在HDFS中读取

来自分类Dev

从HDFS -Spark Scala加载数据

来自分类Dev

从文件系统读取文本文件时,Spark仍尝试连接到HDFS

Related 相关文章

热门标签

归档