运行 使用超集查询 Impala 时出错

Error while running query on Impala with Superset

我正在尝试将 impala 连接到超集,当我测试连接时打印:"Seems OK!",当我尝试使用 [= 查看 impala 上的数据库时42=] 左侧的编辑器显示所有数据库都没有问题。

Preview of Databases/Tables

但是当我编写查询并单击 "Run Query" 时,出现错误:"Could not start SASL: b'Error in sasl_client_start (-1) SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Ticket expired)'"

Error running query

我是 运行 使用 SSL 和生产模式(使用 Gunicorn)的超集,Impala 在 Kerberized Hadoop 集群中使用 SSL,我的 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 - 为 celery-worker 创建了服务用户,为他创建了一个 kerberos 票证并创建了一个 crontab 来更新票证。

2 - 从此服务用户运行 celery worker,而不是从 root 运行。

3 - 在我的集群

的另一台机器上杀死了一个 运行 的 celery-worker

4 - 重新启动 Impala 和 Superset

我认为发生此错误是因为在某些查询中没有使用我的超集机器中的 celery worker,而是使用了另一台机器上没有有效 kerberos 票证的 celery worker。我可以修复此错误,因为当我阅读 celery-worker 日志时,它显示与其他机器上的 celery worker 的连接在查询中失败 运行.