如何模拟超集上的 Impala 查询

kwvwclae  于 2021-06-26  发布在  Impala
关注(0)|答案(1)|浏览(682)

我正在生产模式下(使用gunicorn)设置superset(0.36.0),我想在我的kerberized集群上运行impala查询时设置imponate,因为superset的每个用户对表/数据库都有特权,就像他对hive/hue/hdfs一样。我试着在我的数据库配置中将“模拟登录的用户”设置为true,但是它并没有改变运行查询的用户,它总是使用celery 工作者用户。
我的数据库配置是:


额外费用:

{
    "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):

如何在超集中正确启用模拟?可能是和配置有关 impala.doas.user 在hiveserver2连接中,但我不知道如何正确配置。

xdyibdwo

xdyibdwo1#

我面临同样的问题,我要让它为Hive工作。问题似乎出现在路径${your\u installation\u path}/superset/db\u engine\u 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

相关问题