【问题标题】:How to Impersonate Impala queries on Superset如何在 Superset 上模拟 Impala 查询
【发布时间】:2020-08-31 11:23:13
【问题描述】:

我在生产模式下(使用 Gunicorn)设置 Superset (0.36.0),我想在我的 Kerberized 集群上运行 Impala 查询时设置模拟,Superset 的每个用户在表/数据库上都有特权就像他在 Hive/Hue/HDFS 上一样。我尝试在我的数据库配置中将“模拟登录用户”设置为 true,但它并没有更改运行查询的用户,它始终使用 celery-worker 用户。

我的数据库配置是:

附加:

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

我在 Cloudera Manager (5.13) 中的查询简历:

如何在我的 Superset 中正确启用模拟?可能与 HiveServer2 连接中的配置 impala.doas.user 有关,但我不知道如何正确配置。

【问题讨论】:

  • 嘿@guilherme0170 你解决了吗?

标签: impala impersonation apache-superset superset impyla


【解决方案1】:

我遇到了同样的问题,我打算让它为 hive 工作。问题似乎出在 ${YOUR_INSTALLATION_PATH}/superset/db_engine_specs

路径下的文件 hive.py

如果你只是注释掉第 435 行,它应该可以工作。不幸的是,我对 python 的理解不够好,无法告诉你确切的原因。 我通过运行源代码并放置日志语句蛮力发现了这一点


        if (
            backend_name == "hive"
            # comment this line
            # and "auth" in url.query.keys()
            and impersonate_user is True
            and username is not None
        ):
            configuration["hive.server2.proxy.user"] = username
        return configuration

或者,如果您不想修改源代码,可以在超集中创建数据源时修改 URL 为:

hive://<url>/default?auth=NONE    ( when there is no security )
hive://<url>/default?auth=KERBEROS
hive://<url>/default?auth=LDAP

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-21
    • 2018-10-22
    • 2017-12-21
    • 1970-01-01
    • 2020-12-21
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多