Hive更改位置声明不起作用

时间:2014-01-23 23:02:19

标签: hive

hive> alter table my_table_name set location "hdfs://nameservice1/foo";
OK
Time taken: 0.173 seconds
hive> alter table my_table_name set location "hdfs://nameservice1/foo/bar";
Authorization failed:org.apache.hadoop.security.AccessControlException: action WRITE not permitted on path hdfs://nameservice1/foo for user hadoop_user. Use show grant to get more details.

如上面的屏幕输出所示,alter table位置在外部表上只运行一次,然后抛出错误。 请告知我如何使alter table location语句起作用。

3 个答案:

答案 0 :(得分:4)

我弄清楚错误并修复了它。 问题是在创建表时我将其位置设置为hdfs上不存在的路径。因此,当我试图改变它的位置时,它不允许我这样做。

决议: 我首先创建了表当前指向的目录,然后创建了我想将表指向的目录。然后alter table location语句按需运行。

答案 1 :(得分:0)

我认为最好是使用脚本来检查

hdfs fs -ls ///

然后使用外部脚本调用beeline

答案 2 :(得分:0)

在hive终端上运行命令

alter table FpML_Data set location hdfs:/file_path_in_HDFS;

HDFS:是针对core-site.xml中的fs.defaultFS属性的值

如果有任何疑问,请回复我的评论......