偶然的机会发现用其他用户重写impala用户下的分区数据时有些表报错,有些表不报错,重写报错信息(Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask. Exception when loading 1 in table)。都是用impala用户插入的分区数据有些HDFS文件权限是755,有些权限是777。最后发现是因为是否执行alter table add partition影响的。
测试如下:
首先创建一个分区表:
CREATE TABLE p3edwadm.tab_test (
id STRING,
name STRING
)
PARTITIONED BY (
date_timekey STRING,
hour STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
STORED AS PARQUET
查看此时后台文件的权限是777(黏贴位可忽略,也可去除,对本实验不影响)
drwxrwxrwt - impala hive 0 2021-11-09 10:13 /user/hive/warehouse/p3edwadm.db/tab_test
不手动添加分区,直接插入分区数据,发现文件权限是755
INSERT OVERWRITE TABLE test.tab_test
PARTITION(date_timekey,hour)
select '1','ee','20211101','202111010730'
hdfs dfs -ls /user/hive/warehouse/test.db/tab_test
Found 2 items
drwxrwxrwt - impala

博客内容探讨了在使用Impala处理分区表时遇到的权限问题。当不手动添加分区而直接插入数据,文件权限默认为755,可能导致其他用户操作报错。通过先执行`ALTER TABLE ADD PARTITION`再插入数据,文件权限会变为777,避免了该问题。建议在新增分区数据时采用手动添加分区的方法以确保正确权限,并提供了修改已有数据权限的命令。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



