HI Team,

            Could you please help me to fix the below ? Not sure where the
blocker is, on SASL or Kerberos Auth_to_local Rules? Thanks


*PROBLEM STATEMENT : Connections established from dataproc client Node to
MSS(metastore service) Instance are not Successful.*

# We were able to build the MSS (metastore service) in a separate VM, now
we tried pointing the mss instance fqdn as metastore uri (thrift url) at
the client node, so the client uses the remote metastore service instead of
local.
# MSS will use Central KDC and DPaaS Client are with local KDC. For this
two to talk each other we have enabled cross-relam trust and tested
manually it is working fine.
# One portion of cross relam trust it to setup the auth_to_local rules at
MSS end, which actually translates the principle and maps to the local
user, In our case “hive/clienthostname@CLIENTL-REALM” from client need to
mapped to “hive” user at MSS. But as per the below logs, exactly at that
stage it is throwing no rules applied error.

# One another event noticed from the logs, is that SASL related error,
regarding there keys.


*ERROR OBSERVED AT MSS SERVER  LOGS:*

2023-08-09T17:15:52,187  INFO [pool-6-thread-200] metastore.HiveMetaStore:
200: Done cleaning up thread local RawStore
2023-08-09T17:15:52,187  INFO [pool-6-thread-200] HiveMetaStore.audit:
ugi=hive/clienthostname@CLIENTL-REALM ip=10.xx.xx.190 cmd=Done cleaning up
thread local RawStore
2023-08-09T17:15:52,643 DEBUG [HikariPool-2 housekeeper] pool.HikariPool:
HikariPool-2 - Pool stats (total=10, active=0, idle=10, waiting=0)
2023-08-09T17:15:52,643 DEBUG [HikariPool-1 housekeeper] pool.HikariPool:
HikariPool-1 - Pool stats (total=10, active=0, idle=10, waiting=0)
2023-08-09T17:15:57,244 DEBUG [pool-6-thread-200]
security.UserGroupInformation: PrivilegedAction [as: hive/
clienthostname@CLIENTL-REALM (auth:KERBEROS)][action:
org.apache.hadoop.hive.metastore.security.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory$1@7b8480aa
]
java.lang.Exception: null
at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1852)
[hadoop-client-api-3.3.1.jar:?]
at
org.apache.hadoop.hive.metastore.security.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory.getTransport(HadoopThriftAuthBridge.java:691)
[hive-exec-3.1.3.jar:3.1.3]
at
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:269)
[hive-exec-3.1.3.jar:3.1.3]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:1.8.0_381]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:1.8.0_381]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_381]
2023-08-09T17:15:57,244 DEBUG [pool-6-thread-200]
transport.TSaslServerTransport: transport map does not contain key *========
HERE IT SAY NO KEY =========*
2023-08-09T17:15:57,244 DEBUG [pool-6-thread-200] transport.TSaslTransport:
opening transport org.apache.thrift.transport.TSaslServerTransport@57f1caac
2023-08-09T17:15:57,245 DEBUG [pool-6-thread-200] transport.TSaslTransport:
SERVER: Received message with status START and payload length 6
2023-08-09T17:15:57,245 DEBUG [pool-6-thread-200]
transport.TSaslServerTransport: Received start message with status START
2023-08-09T17:15:57,245 DEBUG [pool-6-thread-200]
transport.TSaslServerTransport: Received mechanism name 'GSSAPI'
2023-08-09T17:15:57,245 DEBUG [pool-6-thread-200] transport.TSaslTransport:
SERVER: Start message handled
2023-08-09T17:15:57,245 DEBUG [pool-6-thread-200] transport.TSaslTransport:
SERVER: Received message with status OK and payload length 783
2023-08-09T17:15:57,246 DEBUG [pool-6-thread-200] transport.TSaslTransport:
SERVER: Writing message with status OK and payload length 108
2023-08-09T17:15:57,386 DEBUG [pool-6-thread-200] transport.TSaslTransport:
SERVER: Received message with status OK and payload length 0
2023-08-09T17:15:57,387 DEBUG [pool-6-thread-200] transport.TSaslTransport:
SERVER: Writing message with status OK and payload length 32
2023-08-09T17:15:57,411 DEBUG [pool-6-thread-200] transport.TSaslTransport:
SERVER: Received message with status COMPLETE and payload length 32
2023-08-09T17:15:57,411 DEBUG [pool-6-thread-200] security.SaslRpcServer:
SASL server GSSAPI callback: setting canonicalized client ID:
hive/mss-dpaas20-client-m.c.wmt-bfdms-bfddxvenu1.inter...@c.wmt-BFDMS-BFDDXVENU1.INTERNAL
2023-08-09T17:15:57,411 DEBUG [pool-6-thread-200] transport.TSaslTransport:
SERVER: Writing message with status COMPLETE and payload length 0
2023-08-09T17:15:57,411 DEBUG [pool-6-thread-200] transport.TSaslTransport:
SERVER: Main negotiation loop complete *======== HOWEVER SASL NEGOTIATION
COMPLETED HERE =========*
2023-08-09T17:15:57,411 DEBUG [pool-6-thread-200]
security.UserGroupInformation: PrivilegedAction [as: hive/
clienthostname@CLIENTL-REALM (auth:KERBEROS)][action:
org.apache.hadoop.hive.metastore.security.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory$1@1608e328
]
java.lang.Exception: null
at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1852)
[hadoop-client-api-3.3.1.jar:?]
at
org.apache.hadoop.hive.metastore.security.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory.getTransport(HadoopThriftAuthBridge.java:691)
[hive-exec-3.1.3.jar:3.1.3]
at
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:270)
[hive-exec-3.1.3.jar:3.1.3]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:1.8.0_381]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:1.8.0_381]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_381]
2023-08-09T17:15:57,412 DEBUG [pool-6-thread-200]
transport.TSaslServerTransport: transport map does contain key
org.apache.thrift.transport.TSocket@33078b74 *======== AGAIN HERE IT SAY NO
KEY ========= OUR SASL **CLIENT/SERVER CONFIGURATION ARE WITHIN THE NODES,
NO KEYS EXCHANGED BETWEEN MSS NODE AND CLIENT, DOES THIS ERROR SAYS, IT
NEEDS THE TRUSTSTORE KEYS TO EXCHANGED BETWEEN MSS AND CLIENT ?*
2023-08-09T17:15:57,412 DEBUG [pool-6-thread-200]
security.HadoopThriftAuthBridge: AUTH ID ======>hive/
clienthostname@CLIENTL-REALM
2023-08-09T17:15:57,412 ERROR [pool-6-thread-200] server.TThreadPoolServer:
Error occurred during processing of message. *======= EXACTLY FAILS WITH
AUTHBRIDGE PHASE ========= ARE THESE CONNECTION FROM CLIENT, ABLE TO REACH
THE CORE-SITE.XML, DOES IT REQUIRE ANY CONFIGURATION TO DO SO ?*
java.lang.IllegalArgumentException: Illegal principal name hive/
clienthostname@CLIENTL-REALM:
org.apache.hadoop.security.authentication.util.KerberosName$NoMatchingRule:
No rules applied to hive/clienthostname@CLIENTL-REALM
at org.apache.hadoop.security.User.<init>(User.java:51)
~[hadoop-client-api-3.3.1.jar:?]
at
org.apache.hadoop.security.UserGroupInformation.createProxyUser(UserGroupInformation.java:1494)
~[hadoop-client-api-3.3.1.jar:?]
at
org.apache.hadoop.hive.metastore.security.HadoopThriftAuthBridge$Server$TUGIAssumingProcessor.process(HadoopThriftAuthBridge.java:627)
~[hive-exec-3.1.3.jar:3.1.3]
at
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:286)
[hive-exec-3.1.3.jar:3.1.3]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:1.8.0_381]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:1.8.0_381]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_381]
Caused by:
org.apache.hadoop.security.authentication.util.KerberosName$NoMatchingRule:
No rules applied to hive/
<hive/mss-dpaas20-client-m.c.wmt-bfdms-bfddxvenu1.inter...@c.wmt-BFDMS-BFDDXVENU1.INTERNAL>
clienthostname@CLIENTL-REALM *======= ERRORS OUT NO MATCHING RULES
=========*
at
org.apache.hadoop.security.authentication.util.KerberosName.getShortName(KerberosName.java:429)
~[hadoop-client-api-3.3.1.jar:?]
at org.apache.hadoop.security.User.<init>(User.java:48)
~[hadoop-client-api-3.3.1.jar:?]



*Rule tried with "Core-Site.xml" at MSS Instance :*

RULE:[1:$1@$0](.*@.*)s/@.*/hive/g

RULE:[2:$1@$0](.*@.*)s/@.*/hive/g

RULE:[2:$1@$0](.*)s/(.*)/hive/g

RULE:[2:$1/$2@$0](.*)s/(.*)/hive/g

RULE:[1:$1](.*)s/(.*)/$1/g

RULE:[2:$1](.*)s/(.*)/$1/g

RULE:[2:$1@$0](.*@\Qclient-hostaname\E$)s/@\Qclient-realm\E$/hive/g

RULE:[1:$1@$0](hive/client-hostname@CLIENT-REALM)s/.*/hive/

RULE:[1:$1@$0](.*@CLIENT-REALM)s/@.*/hive/

RULE:[2:$1@$0](.*@CLIENT-REALM)s/@.*/hive/

RULE:[1:$1@$0](hive/*@CLIENT-REALM)s/.*/hive/

RULE:[2:$1/$2@$0](hive/hostname@CLIENT-REALM)s/(.*)@CLIENT-REALM/hive/

RULE:[1:$1@$0](hive/hostname@CLIENT-REALM)s/.*/hive/

RULE:[2:$1/$2@$0](hive.*@CLIENT-REALM)s/(.*)@CLIENT-REALM/hive/

RULE:[3:$1@$0](hive/client-hostname@CLIENT-REALM)s/.*/hive/


Regards

Sathish Kumar Palani

Reply via email to