hadoop配置单元无法将源移动到目标

inn6fuwd  于 2021-06-02  发布在  Hadoop
关注(0)|答案(5)|浏览(430)

我正在尝试使用Hive1.2.0而不是Hadoop2.6.0。我创造了一个 employee table。但是,当我运行以下查询时:

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

我到底怎么了?我需要设置任何特定的权限吗?提前谢谢!

slwdgvem

slwdgvem1#

如果我们在分布式模式下运行上述命令后遇到同样的错误,我们可以在所有节点的所有超级用户中尝试下面的命令。sudo usermod-a-g hdfsYarnnote:we get 重新启动yarn(在ambari中)的所有服务后出现此错误。我的问题已解决。这是在运行时最好注意的管理命令。

eqfvzcg8

eqfvzcg82#

我遇到同样的问题,搜索了两天,最后发现原因是datenode启动了一段时间,然后关闭了。
求解步骤: hadoop fs -chmod -R 777 /home//employeedetails hadoop fs -chmod -R 777 /user/hive/warehouse/employee/employeedetails_copy_1 vi hdfs-site.xml 并添加以下信息:
dfs.permissions.enabled假
hdfs --daemon start datanode vi hdfs-site.xml #查找“dfs.datanode.data.dir”和“dfs.namenode.name.dir”的位置。如果是同一位置,则必须更改它,这就是我无法启动datanode的原因。
按照'dfs.datanode.data.dir'/data/current编辑版本并将clusterid复制到'dfs.namenode.name.dir'/data/current clusterid of version start-all.sh 如果上面的问题还没有解决,要注意下面的步骤,因为数据的安全,但我已经解决了问题,因为下面的步骤。 stop-all.sh 删除“dfs.datanode.data.dir”的数据文件夹、“dfs.namenode.name.dir”的数据文件夹和tmp文件夹。
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

7lrncoxx

7lrncoxx3#

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

sudo chmod -R 777 /home/abc/employeedetails

现在,运行:

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

apeeds0o4#

请参阅hdfs目录的权限:

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

似乎您没有权限将数据加载到配置单元表中。

qyzbxkaa

qyzbxkaa5#

正如rio提到的,这个问题涉及到缺乏将数据加载到配置单元表的权限。我发现以下命令解决了我的问题:

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

相关问题