该文件不属于 hive 并且加载数据也不作为 hive 运行

Posted

技术标签:

【中文标题】该文件不属于 hive 并且加载数据也不作为 hive 运行【英文标题】:the file is not owned by hive and load data is also not ran as hive 【发布时间】:2019-02-20 11:16:44 【问题描述】:

我使用 HDP3.1。而我 Ambari 来部署 hadoop 集群和 hive。我只想使用一个用户(hdfs)来运行所有程序(例如 hadoop、hive、sqoop、yarn...)。因此,在 ambari 中部署 hadoop 集群时,我在 set ACCOUNTS 步骤中将用户全部更改为 hdfs。部署后,我运行 sqoop 将数据从 mysql 导入到 hive。我有以下问题。

19/02/20 18:44:13 INFO hive.HiveImport: ERROR : FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask. org.apache.hadoop.hive.ql.metadata.HiveException: Load Data failed for hdfs://datacenter1:8020/user/hdfs/person/part-m-00000 as the file is not owned by hive and load data is also not ran as hive
19/02/20 18:44:13 INFO hive.HiveImport: INFO  : Completed executing command(queryId=hdfs_20190220184412_d61d8591-04fc-41a7-b412-d64935ddd046); Time taken: 0.235 seconds
19/02/20 18:44:13 INFO hive.HiveImport: Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask. org.apache.hadoop.hive.ql.metadata.HiveException: Load Data failed for hdfs://datacenter1:8020/user/hdfs/person/part-m-00000 as the file is not owned by hive and load data is also not ran as hive (state=08S01,code=1)
19/02/20 18:44:13 INFO hive.HiveImport: Closing: 0: jdbc:hive2://datacenter2:2181,datacenter1:2181,datacenter3:2181/default;password=hdfs;serviceDiscoveryMode=zooKeeper;user=hdfs;zooKeeperNamespace=hiveserver2
19/02/20 18:44:13 ERROR tool.ImportTool: Import failed: java.io.IOException: Hive exited with status 2
    at org.apache.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:299)
    at org.apache.sqoop.hive.HiveImport.importTable(HiveImport.java:234)
    at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:558)
    at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:656)
    at org.apache.sqoop.Sqoop.run(Sqoop.java:150)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:186)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:240)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:249)
    at org.apache.sqoop.Sqoop.main(Sqoop.java:258)

这个问题发生在 reduce 步骤中。我不为什么它需要蜂巢用户。有人知道怎么解决吗?

【问题讨论】:

【参考方案1】:

在 hive-site.xml 中更改 hive 的配置。 更改值:hive.load.data.owner 从 hive 到 nifi。 重新启动所有配置单元服务并再次检查。 东哥

【讨论】:

以上是关于该文件不属于 hive 并且加载数据也不作为 hive 运行的主要内容,如果未能解决你的问题,请参考以下文章

如何将hive查询结果导出成txt文件

hadoophivehbase的理解

从 HIVE 表加载到 HDFS 作为 AVRO 文件

SparkSQL & Spark on Hive & Hive on Spark

hive beeline详解

CDH环境下关于Hive的部分命令