Hadoop Hive无法将源移动到目标

时间:2015-05-27 13:02:07

标签: java hadoop hive execution

我正在尝试使用Hive 1.2.0而不是Hadoop 2.6.0。我创建了一个employee表。但是,当我运行以下查询时:

hive> load data local inpath '/home/abc/employeedetails' into table employee;

我收到以下错误:

Failed with exception Unable to move source file:/home/abc/employeedetails to destination hdfs://localhost:9000/user/hive/warehouse/employee/employeedetails_copy_1
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask

我在这里做错了什么?我需要设置任何特定权限吗?提前谢谢!

6 个答案:

答案 0 :(得分:4)

如Rio所述,该问题涉及到将数据加载到hive表中的权限。我发现以下命令解决了我的问题:

hadoop fs -chmod g+w /user/hive/warehouse

答案 1 :(得分:3)

请参阅HDFS目录的权限:

hdfs dfs -ls /user/hive/warehouse/employee/employeedetails_copy_1

好像你可能没有权限将数据加载到hive表中。

答案 2 :(得分:0)

错误可能是由于本地文件系统上的权限问题造成的。

更改本地文件系统的权限:

sudo chmod -R 777 /home/abc/employeedetails

现在,运行:

hive> load data local inpath '/home/abc/employeedetails' into table employee;

答案 3 :(得分:0)

如果遇到相同的错误在分布式模式下运行上述命令后,我们可以在所有节点的所有超级用户中尝试以下命令。 sudo usermod -a -G hdfs yarn  注意:我们在重新启动YARN的所有服务(在AMBARI中)后出现此错误。我的问题已得到解决。这是管理员命令,可以在运行时更好地关注。

答案 4 :(得分:0)

我遇到了同样的问题,搜索了两天。最后,我发现原因是datenode启动了片刻,然后关闭了。

解决步骤:

  1. hadoop fs -chmod -R 777 /home/abc/employeedetails

  2. hadoop fs -chmod -R 777 /user/hive/warehouse/employee/employeedetails_copy_1

  3. vi hdfs-site.xml并添加关注信息:

    dfs.permissions.enabled 假

  4. hdfs --daemon start datanode

  5. vi hdfs-site.xml#找到“ dfs.datanode.data.dir”和“ dfs.namenode.name.dir”的位置。如果位置相同,则必须进行更改,即为什么我无法启动datanode原因。

  6. 按照'dfs.datanode.data.dir'/ data / current编辑版本,然后将clusterID复制到'dfs.namenode.name.dir'/ data /当前VERSION的ID。

  7. start-all.sh

  8. 如果上面没有解决,请注意以下步骤,因为数据安全,但由于以下步骤,我已经解决了问题。

  9. stop-all.sh

  10. 删除数据文件夹“ dfs.datanode.data.dir”和数据文件夹“ dfs.namenode.name.dir”和tmp文件夹。

  11. hdfs namenode -format

  12. start-all.sh

  13. 解决问题

也许您会遇到这样的其他问题。

问题:

  

org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException):   无法创建目录   / opt / hive / tmp / root / 1be8676a-56ac-47aa-ab1c-aa63b21ce1fc。名称节点为   在安全模式下

方法:hdfs dfsadmin -safemode leave

答案 5 :(得分:0)

这可能是因为您的 hive 用户无权访问 HDFS 的本地目录