Ошибка при выполнении запроса на Impala с Superset - PullRequest
1 голос
/ 06 мая 2020

Я пытаюсь подключить импалу к надмножеству, и когда я проверяю соединение, выдает: «Кажется, все в порядке!», А когда я пытаюсь просмотреть базы данных на импале с помощью SQL редактора в левой части, он показывает все базы данных без проблем.

Предварительный просмотр баз данных / таблиц

Но когда я пишу запрос и нажимаю «Выполнить запрос», появляется сообщение об ошибке: «Не удалось запустить SASL : b'Ошибка в sasl_client_start (-1) SASL (-1): generi c ошибка: ошибка GSSAPI: неуказанная ошибка GSS. Дополнительный код может предоставить дополнительную информацию (срок действия билета истек) '"

Ошибка при выполнении запроса

Я использую расширенный набор с SSL и в производственном режиме (с Gunicorn) и Impala с SSL в кластере Kerberized Had oop, и моя конфигурация базы данных impala:

Impala Config

А в экстрах я поставил:

{
    "metadata_params": {},
    "engine_params":  {
        "connect_args": {
            "port": 21050,
                    "use_ssl": "True", 
                    "ca_cert": "path/to/my/ca_cert.pem",
                    "auth_mechanism": "GSSAPI"
         }
     },
    "metadata_cache_timeout": {},
    "schemas_allowed_for_csv_upload": []
}

Как решить эту ошибку? В моем журнале расширенного набора он показывает только:

Triggering query_id: 65
INFO:superset.views.core:Triggering query_id: 65
Query 65: Running query on a Celery worker
INFO:superset.views.core:Query 65: Running query on a Celery worker

Версии: Superset 0.36.0, Impyla 0.16.2

1 Ответ

1 голос
/ 14 мая 2020

Мне удалось исправить эту ошибку, выполнив следующие действия:

1 - Создал пользователь службы для celery-worker, создал для него билет Kerberos и создал crontab для обновления билета.

2 - Работник сельдерея запущен этим пользователем службы, а не root.

3 - убит работник сельдерея, который работал на другой машине моего кластера

4 - Перезапущена Impala и Superset

Я думаю, что эта ошибка возникла из-за того, что в некоторых запросах вместо использования работника сельдерея на моей машине суперсета использовался работник сельдерея, который находился на другой машине без действительного билета Kerberos. Я мог исправить эту ошибку, потому что, когда я читал журнал сельдерея, он показал, что соединение с сельдереем на другом компьютере не удалось при выполнении запроса.

...