hive在进行数据load的时候报错。
Error: EXECUTION FAILED: Task MOVE error HiveException: [Error 20531] Unable to move source hdfs://nameservice1/tmp/logs to destination hdfs://nameservice1/inceptor1/user/hive/warehouse/test_0715.db/hive/test_partiton_date/ds=2020-07-18/logs (state=08S01,code=20531)
--插入语句
load data inpath ‘/tmp/logs‘ into table test_0715.test_partiton_date partition(ds=‘2020-07-19‘);
Unable to move source hdfs,不能移动,自然就想到了没有权限的问题,果然,一查看发现/tmp/logs这个文件是hdfs的owner,所以hive用户是没有权限移动的。
现在我们需要做的就是,让logs是hive用户拥有。如下所示,切换访问hdfs的用户,把logs上传到了hive权限的目录下。
#linux切换访问hdfs用户为hive
export HADOOP_USER_NAME=hive
--如果使用load,这一步是不需要的,使用hdfs的mv或者local的put到分区目录,需要新建分区。
alter table test_partiton_date ADD PARTITION (ds=‘2020-07-19‘);
原文:https://www.cnblogs.com/singsong-ss/p/13328873.html