我在hdfs路径中存储了twitter数据。我可以用spark dataframe读取数据:
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
val df= hiveContext.read.json("/nifi/data/twitter/")
``` `df.printSchema` 以及 `df.show` 命令显示结果,没有任何问题。
但是,当我尝试将Dataframe存储到配置单元表时,我面临以下错误:
df.write.saveAsTable("tweets_32")
org.apache.hadoop.ipc.remoteexception(org.apache.hadoop.hdfs.server.namenode.leaseexpiredexception):no lease-on/apps/hive/warehouse/tweets\ u 32/\ u temporary/0/\ u temporary/attempt\ u 201809260508\ u 0002\ m\ u000002\ u 0/part-r-00002-c204b592-dc2a-4b2f-bc39-54afb237a6cb.gz.parquet(inode 1173647):文件不存在[租赁。持有人:dfsclient\u nonmapreduce\u 14557453\u 1,pendingcreates:1]>
有人能告诉我,这是什么原因吗?
1条答案
按热度按时间nmpmafwu1#
此错误的含义:另一个程序已处理并删除此tmp文件。检查,确保没有其他任务与您的任务并行运行。另一个原因-你的任务可能很慢。hadoop不尝试诊断和修复运行缓慢的任务,而是尝试检测它们并为它们运行备份任务。您可以尝试通过关闭spark和hadoop的推测来修复它:
这个问题的讨论有一个线索:在这里输入链接描述