- Subscribe to RSS Feed
- Mark Question as New
- Mark Question as Read
- Float this Question for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page
permission denied user hive when creating external table in spark
Created ‎12-18-2015 06:09 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi ,
I am getting permission denied error when creating external table in hive context.
FYI : logged in as hdfs user
import org.apache.spark.sql.hive.HiveContext import org.apache.spark.sql.hive.orc._ val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc) val df = hiveContext.read.format("com.databricks.spark.csv").option("header", "true").option("inferSchema", "true").load("/tmp/cars.csv") val selectedData = df.select("year", "model") selectedData.write.format("orc").option("header", "true").save("/tmp/newcars_orc_cust17") hiveContext.sql ("create external table newcars_orc_ext_cust17(year string,model string) stored as orc location '/tmp/newcars_orc_cust17'") org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:java.security.AccessControlException: Permission denied: user=hive, access=WRITE, inode="/tmp/newcars_orc_cust17":hdfs:hdfs:drwxr-xr-x
Created ‎12-18-2015 07:19 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It looks like you are running Hive Jobs with the hive user, meaning your doAs-config (hive.server2.enable.doAs) is set to false. This flag ensures that jobs are always executed with the hive user instead of the user that is logged in.
You can find some information here
Is your cluster kerberized and do you have Ranger deployed?
If you change the owner to the folder to hive:hdfs it should work.
Created ‎03-30-2016 10:02 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Jonas Straub I've the same issue. hive.server2.enable.doAs is set true in hive-site.xml. But still getting the same error.
Created ‎12-18-2015 10:31 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Divya Gehlot try to run logged as hive user instead of hdfs user.
Created ‎12-18-2015 01:13 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Permission denied: user=hive, access=WRITE, inode="/tmp/newcars_orc_cust17
login as hdfs user
su - hdfs
hdfs dfs -s chown -R hive:hadoop /tmp/newcars_orc_cust17
Created ‎12-21-2015 02:22 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In this above resolution which you have mentioned .. every time I have to change the permission .. Is there any settings which I can change ,
and give permission to the hive user for newly created hdfs files.
for instance:
selectedData.write.format("orc").option("header","true").save("/tmp/newcars_orc_cust17")
Thanks
Created ‎12-21-2015 03:48 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Divya Gehlot Run it as Hive user.
Created ‎04-01-2016 07:54 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Neeraj Sabharwal I've the same issue. I am running the spark application from 'mike' user account. The file exists in /user/mike/test folder and 'mike' user has read and write access to it. The error message is org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:java.security.AccessControlException: Permission denied: user=hive, access=WRITE, inode="/user/mike/test":mike:users:drwxr-xr-x
Looks like it is trying to access the file as 'hive' user although the mike user is running the spark application. I granted the write access to all the users to '/user/mike/test' and executed the application. It successfully created the external table.
I thought that the owner of the external table would be user 'hive', but it was 'mike'. The owner of the created table was set as the user executing the spark application. But the hdfs was accessed as 'hive' user.
What is actually happening?
Created ‎02-03-2016 02:26 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Divya Gehlot has this been resolved? Please provide your solution or accept best answer.
Created ‎02-16-2016 01:28 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Divya Gehlot Can you accept the best answer to close the thread?
