Impala SQL: Unable to LOAD DATA from HDFS path due to WRITE permissions

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

While you are using Impala Official docker image "cloudera/quickstart", following exception might be thrown while executing LOAD DATA command to do data migration.


[Simba]ImpalaJDBCDriver ERROR processing query/statement. Error Code: 0, SQL state: TStatus(statusCode:ERROR_STATUS, sqlState:HY000, errorMessage:AnalysisException: Unable to LOAD DATA from hdfs://quickstart.cloudera:8020/user/customer.tbl.1 because Impala does not have WRITE permissions on its parent directory hdfs://quickstart.cloudera:8020/user ), Query: load data inpath '/user/customer.tbl.1' overwrite into table my_table. [SQL State=HY000, DB Errorcode=500051]

Reason: (

The actual answer for your question is you need to change the owner/group of /user/customer.tbl.1 accessible by hive/impala

In addition to that, the default cloudera recommended path to maintain hive/impala table is "/user/hive/warehouse/"

So in your case, create a DB called customer in the default path as follows and make sure owner/group accessible by hive/impala and try again

hdfs dfs -ls /user/hive/warehouse/customer.db

hdfs dfs -ls /user/hive/warehouse

drwxrwxrwt   - hive       hive           0 2016-11-25 15:11 /user/hive/warehouse/customer.db


Based on above explanation, try to move file to the /user/hive/warehouse, then everything should be OK.

If not, then try to change owner ship via following command:

hdfs dfs -chown -R hive:impala hdfs://quickstart.cloudera:8020/user/hive/warehouse/customer.tbl.2