我试图使用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
我在这做什么错?我需要设置任何特定权限吗?提前致谢!
如Rio所述,该问题涉及到将数据加载到hive表中的权限。我发现以下命令解决了我的问题:
hadoop fs -chmod g+w /user/hive/warehouse
查看HDFS目录的权限:
hdfs dfs -ls /user/hive/warehouse/employee/employeedetails_copy_1
好像你可能没有权限将数据加载到hive表中。
该错误可能是由于本地文件系统上的权限问题。
更改本地文件系统的权限:
sudo chmod -R 777 /home/abc/employeedetails
现在,运行:
hive> load data local inpath '/home/abc/employeedetails' into table employee;
如果我们遇到相同的错误在分布式模式下运行上述命令后,我们可以在所有节点的所有超级用户中尝试以下cammand。 sudo usermod -a -G hdfs yarn注意:我们在重新启动YARN的所有服务(在AMBARI中)后出现此错误。我的问题已经解决。这是管理员命令,在运行时更好地关注。
我遇到了同样的问题并且搜索了两天。最后我发现原因是datenode开始片刻并关闭。
解决步骤:
hadoop fs -chmod -R 777 /home/abc/employeedetails
hadoop fs -chmod -R 777 /user/hive/warehouse/employee/employeedetails_copy_1
vi hdfs-site.xml
并添加关注信息:
dfs.permissions.enabled falsehdfs --daemon start datanode
vi hdfs-site.xml
#find'dfs.datanode.data.dir'and'dfs.namenode.name.dir'的位置。如果它是相同的位置,你必须改变它,这就是为什么我无法启动datanode的原因。start-all.sh
stop-all.sh
hdfs namenode -format
start-all.sh
也许你会遇到这样的其他问题。
问题:
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