【发布时间】:2018-02-02 23:31:24
【问题描述】:
有一些关于Hive/Hadoop“无法移动源”错误的SO文章。很多都指向权限问题。
但是,在我的网站中,我看到了同样的错误,但我很确定这与权限问题无关。这是因为问题是间歇性的——它在一天工作但在另一天失败。
因此,我更深入地查看了错误消息。它抱怨未能从
.../.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);
【问题讨论】:
-
我以前也遇到过这个问题,但它与镶木地板文件元数据有关。文件类型是否为 parquet。
-
@Manu — 是的,文件类型是 parquet。
-
还有一个问题,你是在 spark 还是 map reduce 上使用 hive?
-
请使用此属性并让我知道这是否有效。我会在回答部分回答:set spark.sql.hive.convertMetastoreParquet=false
-
我正在阅读有关 spark 文档的 hive,此说明可能对我们有所帮助:请注意,您必须拥有一个不包含 Hive jar 的 Spark 版本。意思是不是使用 Hive 配置文件构建的。如果您将使用 Parquet 表,建议同时启用“parquet-provided”配置文件。否则 Parquet 依赖项可能会发生冲突。要从安装中删除 Hive jar,只需在 Spark 存储库下使用以下命令:
标签: hadoop hive apache-spark-sql