Hadoop Hive 无法将源移动到目标
Hadoop Hive unable to move source to destination
我正在尝试在 Hadoop 2.6.0 上使用 Hive 1.2.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
我在这里做错了什么?我需要设置任何特定权限吗?提前致谢!
查看HDFS目录权限:
hdfs dfs -ls /user/hive/warehouse/employee/employeedetails_copy_1
您似乎没有权限将数据加载到配置单元 table。
错误可能是由于本地文件系统的权限问题。
更改本地文件系统的权限:
sudo chmod -R 777 /home/abc/employeedetails
现在,运行:
hive> load data local inpath '/home/abc/employeedetails' into table employee;
正如 Rio 所提到的,问题涉及缺少将数据加载到配置单元中的权限 table。我发现以下命令可以解决我的问题:
hadoop fs -chmod g+w /user/hive/warehouse
如果我们遇到相同的错误 运行 在分布式模式下执行上述命令后,我们可以在所有节点的所有超级用户中尝试以下命令。
sudo usermod -a -G hdfs 纱线
Note:we 重新启动 YARN 的所有服务(在 AMBARI 中)后出现此错误。我的问题是 resolved.This 当您处于 运行 时,管理命令更好地照顾。
遇到同样的问题,找了两天终于找到原因是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
错误的
hdfs --daemon start datanode
vi hdfs-site.xml
#找到'dfs.datanode.data.dir'和'dfs.namenode.name.dir'的位置。如果是相同的位置,你必须改变它,这就是为什么我不能' t 启动数据节点原因。
按照'dfs.datanode.data.dir'/data/current编辑VERSION,将clusterID复制到VERSION的'dfs.namenode.name.dir'/data/current clusterID。
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):
Cannot create directory
/opt/hive/tmp/root/1be8676a-56ac-47aa-ab1c-aa63b21ce1fc. Name node is
in safe mode
方法:hdfs dfsadmin -safemode leave
可能是因为您的 hive 用户无权访问 HDFS 的本地目录
我正在尝试在 Hadoop 2.6.0 上使用 Hive 1.2.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
我在这里做错了什么?我需要设置任何特定权限吗?提前致谢!
查看HDFS目录权限:
hdfs dfs -ls /user/hive/warehouse/employee/employeedetails_copy_1
您似乎没有权限将数据加载到配置单元 table。
错误可能是由于本地文件系统的权限问题。
更改本地文件系统的权限:
sudo chmod -R 777 /home/abc/employeedetails
现在,运行:
hive> load data local inpath '/home/abc/employeedetails' into table employee;
正如 Rio 所提到的,问题涉及缺少将数据加载到配置单元中的权限 table。我发现以下命令可以解决我的问题:
hadoop fs -chmod g+w /user/hive/warehouse
如果我们遇到相同的错误 运行 在分布式模式下执行上述命令后,我们可以在所有节点的所有超级用户中尝试以下命令。 sudo usermod -a -G hdfs 纱线 Note:we 重新启动 YARN 的所有服务(在 AMBARI 中)后出现此错误。我的问题是 resolved.This 当您处于 运行 时,管理命令更好地照顾。
遇到同样的问题,找了两天终于找到原因是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 错误的
hdfs --daemon start datanode
vi hdfs-site.xml
#找到'dfs.datanode.data.dir'和'dfs.namenode.name.dir'的位置。如果是相同的位置,你必须改变它,这就是为什么我不能' t 启动数据节点原因。按照'dfs.datanode.data.dir'/data/current编辑VERSION,将clusterID复制到VERSION的'dfs.namenode.name.dir'/data/current clusterID。
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): Cannot create directory /opt/hive/tmp/root/1be8676a-56ac-47aa-ab1c-aa63b21ce1fc. Name node is in safe mode
方法:hdfs dfsadmin -safemode leave
可能是因为您的 hive 用户无权访问 HDFS 的本地目录