2016-04-28 9 views
10

मैं एक चिंगारी काम है जो एक अस्थायी तालिका पंजीकृत करता है लिखा प्रतिरूपित करने के लिए जब मैं यह सीधा रास्ता के माध्यम से बेनकाब (JDBC ग्राहक)AuthorizationException: उपयोगकर्ता उपयोगकर्ता

$ ./bin/beeline 
beeline> !connect jdbc:hive2://IP:10003 -n ram -p xxxx 
0: jdbc:hive2://IP> show tables; 
+---------------------------------------------+--------------+---------------------+ 
|     tableName       | isTemporary | 
+---------------------------------------------+--------------+---------------------+ 
| f238              | true    | 
+---------------------------------------------+--------------+---------------------+ 
2 rows selected (0.309 seconds) 
0: jdbc:hive2://IP> 

मैं तालिका देख सकते हैं की अनुमति दी और नहीं। जब से क्वेरी मैं यह त्रुटि संदेश

0: jdbc:hive2://IP> select * from f238; 
Error: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: ram is not allowed to impersonate ram (state=,code=0) 
0: jdbc:hive2://IP> 

मैं छत्ता-site.xml में यह है,

<property> 
    <name>hive.metastore.sasl.enabled</name> 
    <value>false</value> 
    <description>If true, the metastore Thrift interface will be secured with SASL. Clients must authenticate with Kerberos.</description> 
</property> 

<property> 
    <name>hive.server2.enable.doAs</name> 
    <value>false</value> 
</property> 

<property> 
    <name>hive.server2.authentication</name> 
    <value>NONE</value> 
</property> 

मैं कोर-site.xml में यह है,

<property> 
    <name>hadoop.proxyuser.hive.groups</name> 
    <value>*</value> 
</property> 

<property> 
    <name>hadoop.proxyuser.hive.hosts</name> 
    <value>*</value> 
</property> 

पूर्ण लॉग मिल

ERROR [pool-19-thread-2] thriftserver.SparkExecuteStatementOperation: Error running hive query: 
org.apache.hive.service.cli.HiveSQLException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: ram is not allowed to impersonate ram 
     at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation.runInternal(SparkExecuteStatementOperation.scala:259) 
     at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation$$anon$1$$anon$2.run(SparkExecuteStatementOperation.scala:171) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.Subject.doAs(Subject.java:422) 
     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657) 
     at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation$$anon$1.run(SparkExecuteStatementOperation.scala:182) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 

कोई विचार क्या कॉन्फ़िगरेशन आयन मैं याद कर रहा हूँ?

उत्तर

23
<property> 
<name>hive.server2.enable.doAs</name> 
<value>true</value> 
</property> 

इसके अलावा, आप उपयोगकर्ता एबीसी सभी (*) प्रतिरूपित करने के लिए, अपने मूल-site.xml के गुण नीचे जोड़ने

<property> 
    <name>hadoop.proxyuser.ABC.groups</name> 
<value>*</value> 
</property> 

<property> 
<name>hadoop.proxyuser.ABC.hosts</name> 
<value>*</value> 
</property> 
+0

धन्यवाद करना चाहते हैं। अब यह ठीक काम करता है –

+0

आप इसे उत्तर, अपवॉट के रूप में स्वीकार कर सकते हैं। दूसरों के लिए उपयोगी हो सकता है – neeraj

+0

@bat_rock क्या आपको पता है कि इस मुद्दे के लिए कोई अन्य समाधान है? हमने यहां जो किया है वह हमने किया लेकिन अभी तक काम नहीं किया है। –

संबंधित मुद्दे