在CDH 5.13中,我使用Hive Shell创建内部表。但是,当我尝试将数据加载到其中时,出现以下错误:
hive> LOAD DATA INPATH '/user/tom/data.txt' INTO TABLE managed_table;
Loading data to table demo.managed_table
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask. org.apache.hadoop.hive.ql.metadata.HiveException: Access denied: Unable to move source hdfs://quickstart.cloudera:8020/user/tom/data.txt to destination hdfs://quickstart.cloudera:8020/user/hive/warehouse/demo.db/managed_table: Permission denied: user=cloudera, access=WRITE, inode="/user/tom":hdfs:supergroup:drwxr-xr-x
我尝试执行以下操作,但仍无法加载文件。
[cloudera@quickstart /]$ sudo -u hdfs hadoop fs -chmod 777 /user/tom/data.txt
[cloudera@quickstart /]$ hdfs dfs -ls /user/tom/
Found 1 items
-rwxrwxrwx 1 hdfs supergroup 64 2020-01-24 00:57 /user/tom/data.txt
和
[cloudera@quickstart /]$ sudo -u hdfs hadoop fs -chmod 777 /user/hive/warehouse/demo.db/managed_table
[cloudera@quickstart /]$ hdfs dfs -ls /user/hive/warehouse/demo.db/
Found 1 items
drwxrwxrwx - cloudera supergroup 0 2020-01-24 05:28 /user/hive/warehouse/demo.db/managed_table
答案 0 :(得分:1)
从该错误看来,似乎需要在目录级别/user/tom
Permission denied: user=cloudera, access=WRITE, inode="/user/tom":hdfs:supergroup:drwxr-xr-x
从描述中看,似乎chmod 777
是为目录.txt
下的/user/tom
文件而不是目录本身执行的。
尝试运行以下内容,看看是否可以解决问题。
sudo -u hdfs hadoop fs -chmod -R 777 /user/tom/