Spark 中动态分区的 LeaseExpiredException
Posted
技术标签:
【中文标题】Spark 中动态分区的 LeaseExpiredException【英文标题】:LeaseExpiredException on Dynamic partitioning in Spark 【发布时间】:2017-10-16 14:27:10 【问题描述】:我正在从事一项 spark 工作,我试图从非分区表中读取数据并创建一个分区表。我正在做的事情很简单:
df = sqlContext.read.parquet('/path/to/file')
df.write.partitionBy('partition_col').parquet('/new/path/to/file')
我收到以下错误:
伙计们,我正在从事一项 spark 工作,我正在尝试从非分区表中读取数据并创建一个分区表。我所做的很简单 -
df = sqlContext.read.parquet('/path/to/file')
df.write.partitionBy('partition_col').parquet('/new/path/to/file')
我收到以下错误 -
错误数据源.DynamicPartitionWriterContainer:任务尝试尝试_201710160717_0003_m_000111 _0 中止。 错误 [Executor task launch worker-0] executor.Executor:阶段 3.0 中任务 111.0 中的异常(TID 1578) org.apache.spark.SparkException:写入行时任务失败。后面跟着错误行,
错误 [Executor task launch worker-0] executor.Executor:阶段 3.0 中任务 111.1 中的异常(TID 1892) org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException):/path/to/file/part/_temporary/0/_temporary/attempt_201710160719_0003_m_000111_1/pool_id=891566/part 上没有租约-r-00111-40dd2140-0666-4890-aad9-12fc8ffd6777.gz.parquet(inode 160527519):文件不存在。持有人 DFSClient_NONMAPREDUCE_1835537666_63 没有任何打开的文件。有没有人遇到过类似的 spark 问题,或者知道该问题的任何解决方法。我查看了 google/spark 问题 jira 我无法从那里找出解决方案
【问题讨论】:
错误在哪里?请edit问题并附上错误文本。 我在扩展 AvroOutputFormat 和使用 saveAsNewAPIHadoopFile(...) 时遇到了类似的问题。你能解决问题吗?谢谢 你是在同一个地方读写吗? 【参考方案1】:当基础文件已更改并且您仍在尝试访问该文件或发生超时时,会发生错误(在我的观察中)。
我尝试了几次超时选项,然后调整了我的流程以读取和写入不同的位置。为我解决了问题。
【讨论】:
以上是关于Spark 中动态分区的 LeaseExpiredException的主要内容,如果未能解决你的问题,请参考以下文章