有一些关于 Hive/Hadoop
“无法移动源”错误。他们中的许多人都指出了权限问题。
然而,在我的网站上,我看到了同样的错误,但我很确定这与权限问题无关。这是因为问题是断断续续的——它一天起作用,另一天却失败了。
因此,我更深入地研究了错误信息。它在抱怨没能从一个
.../.hive-stating_hive.../-ext-10000/part-00000-${long-hash}
到的目标路径的源路径
.../part-00000-${long-hash}
文件夹。这一观察结果会对某人产生影响吗?
这个错误是由一个超级简单的测试查询触发的:只需在测试表中插入一行(见下文)
错误消息
org.apache.hadoop.hive.ql.metadata.HiveException:
Unable to move source
hdfs://namenodeHA/apps/hive/warehouse/some_db.db/testTable1/.hive-staging_hive_2018-02-02_23-02-13_065_2316479064583526151-5/-ext-10000/part-00000-832944cf-7db4-403b-b02e-55b6e61b1af1-c000
to destination
hdfs://namenodeHA/apps/hive/warehouse/some_db.db/testTable1/part-00000-832944cf-7db4-403b-b02e-55b6e61b1af1-c000;
触发此错误的查询(但只是间歇性的)
insert into testTable1
values (2);
1条答案
按热度按时间hvvq6cgz1#
谢谢你的帮助。我找到了解决办法。我在这里提供我自己的答案。
问题出在“CTA”上
create table as ...
失败之前的操作insert
由于文件系统关闭不当而导致的命令。有迹象表明会有一个IOException: Filesystem closed
消息与失败消息一起显示HiveException: Unable to move source ... to destination
操作我从spark thrift服务器找到了日志消息(不是我的应用程序日志)解决方案实际上来自另一篇so文章:https://stackoverflow.com/a/47067350/1168041
但这里我提供了一个节选,以防那篇文章不见了:
将属性添加到hdfs-site.xml
原因:spark和hdfs使用相同的api(在底层,它们使用相同的示例)。
当直线关闭文件系统示例时。它也会关闭thriftserver的文件系统示例。第二条直线尝试获取示例时,它总是报告“caused by:java.io.ioexception:filesystem closed”
请在此处检查此问题:
https://issues.apache.org/jira/browse/spark-21725
我没有使用
beeline
但cta的问题是一样的。我的测试顺序:
在修复之前,任何插入都会在修复之后失败
create table as …
修复之后,这个问题就消失了。