Получил «Не удалось инициализировать контекст безопасности» в python клиентском доступе к HBase Thrift Server (с kerberos) - PullRequest
1 голос
/ 18 марта 2020

Я следовал этому руководству , чтобы настроить сервер HBase Thrift в моем керберизованном кластере, и пытался следовать этим рекомендациям для доступа к нему с python: https://blog.csdn.net/gongbi917/article/details/52795232 (китайская версия - https://cloud.tencent.com/developer/article/1436986)

У меня есть очень простой пример кода python, который пытается подключиться к защищенному серверу HBase Thrift.

from thrift.transport import TSocket
from thrift.protocol import TBinaryProtocol
from hbase import Hbase
from hbase.ttypes import *

if __name__ == '__main__':
    socket = TSocket.TSocket('host001.test.com', 9090)
    transport = TTransport.TSaslClientTransport(socket, 'host001.test.com','hbase')
    transport.open()
    protocol = TBinaryProtocol.TBinaryProtocol(transport)
    client = Hbase.Client(protocol)
    print(client.getTableNames())

Но я получаю ошибка ниже:

thrift.transport.TTransport.TTransportException: Bad SASL negotiation status: 3 (b'Failure to initialize security context')

Кто-нибудь знает причину root этой ошибки?

...