Our Community is getting an upgrade! To get everything ready for the relaunch, we’ll be placing the site in read-only mode starting September 21st.
We really appreciate your understanding while we get things set up behind the scenes. Catch up on all the exciting details about the move here.
Need help or have questions? Drop us a line at [email protected]
Created on
09-15-2021
09:40 AM
- last edited on
04-21-2026
01:58 AM
by
GrazittiAPI
We are migrating from Hortonworks (HDP) to Cloudera (CDP) and having difficulties connecting to the hbase.
The following code works when using a HDP host:
from thrift.transport import TSocket, TTransport, THttpClient
from thrift.transport.TSSLSocket import TSSLSocket
from thrift.protocol import TBinaryProtocol, TCompactProtocol
import app.hbased.Hbase as Hbase
host = "hdp.mycompany.com"
port = 9090
sock = TSocket.TSocket(host, port)
saslServiceName = "hbase"
transport = TTransport.TSaslClientTransport(sock, host, saslServiceName, mechanism="GSSAPI")
protocol = TBinaryProtocol.TBinaryProtocol(transport)
client = Hbase.Client(protocol)
transport.open()
table_names = client.getTableNames()
print table_names
However, when changing the host to a CDP server:
host = "cdp.mycompany.com"
we get the following error:
Traceback (most recent call last):
File "C:\Users\myuser\apps\app\test\test.py", line 20, in <module>
table_names = client.getTableNames()
File "C:\Users\myuser\apps\app\hbased\Hbase.py", line 787, in getTableNames
self.send_getTableNames()
File "C:\Users\myuser\apps\app\hbased\Hbase.py", line 795, in send_getTableNames
self._oprot.trans.flush()
File "C:\ProgramData\Anaconda3\envs\ts27\lib\site-packages\thrift\transport\TTransport.py", line 418, in flush
encoded = self.sasl.wrap(data)
File "C:\ProgramData\Anaconda3\envs\ts27\lib\site-packages\puresasl\client.py", line 16, in wrapped
return f(self, *args, **kwargs)
File "C:\ProgramData\Anaconda3\envs\ts27\lib\site-packages\puresasl\client.py", line 157, in wrap
return self._chosen_mech.wrap(outgoing)
File "C:\ProgramData\Anaconda3\envs\ts27\lib\site-packages\puresasl\mechanisms.py", line 532, in wrap
kerberos.authGSSClientWrap(self.context, outgoing, None, protect)
winkerberos.GSSError: SSPI: EncryptMessage: The function requested is not supported
Environment info:
python 2.7
thrift 0.11.0
pure-sasl 0.5.1
Any ideas on how to fix this?
Thank you
Created 09-23-2021 08:10 AM
I fixed the issue by using gssflags in the authGSSClientInit method in my pure_sasl mechanisms.py
Created 09-23-2021 08:10 AM
I fixed the issue by using gssflags in the authGSSClientInit method in my pure_sasl mechanisms.py
Created 09-24-2021 10:09 PM
Hello @Clua ,
Looks like you solved it, if possible could you please share the code snippets how you added gssflags in the authGSSClientInit and which Transport function are you using.
Thanks,
Will