Hi all,

I've been struggling with getting Hive authorization to work for a few
hours, and I really hope someone can help me.  I installed Hive 0.7.1
on top of Hadoop 0.20.203.  I'm using mysql for the metastore, and
configured Hive to enable authorization:

<property>
  <name>hive.security.authorization.enabled</name>
  <value>true</value>
  <description>enable or disable the hive client authorization</description>
</property>

I kept all the other Hive security configs with their default settings.

I'm running in pseudo-distributed mode on a single node.  HDFS, the Hive
metastore and the Hive CLI are all running as the same user (the HDFS
superuser).  Here are the sequence of steps that are causing me issues.
Without authorization everything works perfectly (creating, loading, selecting).
I've also tried creating and loading the table without authorization, granting
the select privilege at various levels (global, table, database), turning on
auth and performing the select, resulting in the same exception.

Any help with this would be greatly appreciated!

Thanks,
Alex

--

[hduser@aholmes-desktop ~]$ hive
Hive history file=/tmp/hduser/hive_job_log_hduser_201108162158_1976573160.txt
hive> set hive.security.authorization.enabled=false;
hive> grant all to user hduser;
OK
Time taken: 0.233 seconds
hive> set hive.security.authorization.enabled=true;
hive> CREATE TABLE pokes3 (foo INT, bar STRING);
FAILED: Hive Internal Error:
org.apache.hadoop.hive.ql.metadata.HiveException(org.apache.thrift.TApplicationException:
get_privilege_set failed: unknown result)
org.apache.hadoop.hive.ql.metadata.HiveException:
org.apache.thrift.TApplicationException: get_privilege_set failed:
unknown result
        at 
org.apache.hadoop.hive.ql.metadata.Hive.get_privilege_set(Hive.java:1617)
        at 
org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider.authorizeUserPriv(DefaultHiveAuthorizationProvider.java:201)
        at 
org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider.authorizeUserAndDBPriv(DefaultHiveAuthorizationProvider.java:226)
        at 
org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider.authorize(DefaultHiveAuthorizationProvider.java:89)
        at org.apache.hadoop.hive.ql.Driver.doAuthorization(Driver.java:433)
        at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:393)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:736)
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:164)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:241)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:456)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
Caused by: org.apache.thrift.TApplicationException: get_privilege_set
failed: unknown result
        at 
org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.recv_get_privilege_set(ThriftHiveMetastore.java:2414)
        at 
org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.get_privilege_set(ThriftHiveMetastore.java:2379)
        at 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient.get_privilege_set(HiveMetaStoreClient.java:1042)
        at 
org.apache.hadoop.hive.ql.metadata.Hive.get_privilege_set(Hive.java:1615)
        ... 14 more

Reply via email to