p{margin-top:0px;margin-bottom:0px;} Hi, Hive user mailing list memebers,
I am testing Hive-HBase integration on a Hadoop cluster.
The cluster uses CDH5.4.4 with Kerberos enabled.
Following the documentation of Cloudera and Apache HiveHBaseIntegration, I
installed
hive-hbase package on a client machine.
Then, I tried some commands as follows:
1) login as "testuser" and run kinit
2) run hive
3) add jars
ADD JAR /usr/lib/hive/lib/zookeeper.jar;
ADD JAR /usr/lib/hive/lib/hive-hbase-handler.jar
ADD JAR /usr/lib/hive/lib/guava-14.0.1.jar;
ADD JAR /usr/lib/hive/lib/hbase-client.jar;
ADD JAR /usr/lib/hive/lib/hbase-common.jar;
ADD JAR /usr/lib/hive/lib/hbase-hadoop-compat.jar;
ADD JAR /usr/lib/hive/lib/hbase-hadoop2-compat.jar;
ADD JAR /usr/lib/hive/lib/hbase-protocol.jar;
ADD JAR /usr/lib/hive/lib/hbase-server.jar;
ADD JAR /usr/lib/hive/lib/htrace-core.jar;
4) create a table
CREATE TABLE hbase_table_1(key int, value string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")
TBLPROPERTIES ("hbase.table.name" = "test:xyz");
5) insert some data
INSERT OVERWRITE TABLE hbase_table_1 SELECT 1, 'first_row' FROM t1;
I already created a namespace "test" and gave full permission (RWXCA) to the
"testuser" account.
However, the step 5) fails with the following error messages,
uery ID = testuser_20150910164848_d22bfbac-107a-45d9-acfb-63a983806e46
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
java.lang.RuntimeException:
org.apache.hadoop.hbase.security.AccessDeniedException:
org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient
permissions ([email protected], scope=hbase:meta,
params=[table=hbase:meta],action=EXEC)
at
org.apache.hadoop.hbase.security.access.AccessController.requirePermission(AccessController.java:428)
at
org.apache.hadoop.hbase.security.access.AccessController.preEndpointInvocation(AccessController.java:2069)
While digging the cause of this error, I found that giving the global execute
permission solves this problem.
hbase> grant 'testuser', 'X'
But, I can't find this solution from any document (please notify me if there is
some reference about this).
Why should I need to give any global permission while I gave the full
permission on the namespace where
the table belongs to?
Best wishes,
HanCheol
趙漢哲 CHO, HAN-CHEOL (Ph.D)
データ研究室 / 社員
--> 〒105-6322 東京都港区虎ノ門1-23-1 虎ノ門ヒルズ森タワー22階
Email [email protected] Messenger
NHN PlayArt 株式会社