背景说明:
我们正在使用tableau来进行数据可视化,其中一个比较重要的数据源就是kerberos 认证的impala/hive;经过测试,tableau的desktop可以正常连接impala,但是发布到server的impala连接会报错,连接不上,图表无法显示;而且我们的server是linux的。
查阅多方,终于处理掉这个问题,总结一下,供参考。
第一步:
参考https://www.tableau.com/zh-cn/support/drivers,选择impala对应的驱动下载并安装,安装好后,对应的两处配置也是必须的。
注意:配置项copy进去是不换行的,记得手动换行。如:
[Cloudera ODBC Driver for Impala 64-bit]
Description=Cloudera ODBC Driver for Impala (64-bit)
Driver=/opt/cloudera/impalaodbc/lib/64/libclouderaimpalaodbc64.so
FileUsage = 1
第二步:
参考https://help.tableau.com/current/server-linux/zh-cn/kerberos_runas_linux.htm,前面一大段都是将如何生成keytab,但是一般大数据平台keytab都是能轻松生成的,所以关键要执行的命令有:
# 创建存放keytab文件的目录
mkdir /opt/tableau/tableau_server/keytab
#将keytab文件放到该目录
sudo cp -p etl.keytab /opt/tableau/tableau_server/keytab
#变更这个keytab的所有者为tabadmin
sudo chown tabadmin /opt/tableau/tableau_server/keytab/etl.keytab
#变更这个keytab的所有用户组为tableau,目的是为了让tableau用户组的用户都有读权限
chgrp tableau /opt/tableau/tableau_server/keytab/etl.keytab
#给tableau分组赋予读权限
chmod g+r /opt/tableau/tableau_server/keytab/etl.keytab
#以下为将前面的配置更改到tableau server
tsm configuration set -k features.RunAsAuthLinux -v true --force-keys
tsm configuration set -k native_api.datasource_runas_principal -v etl@FEHORIZON.COM --force-keys
tsm configuration set -k native_api.datasource_runas_keytab_path -v /opt/tableau/tableau_server/keytab/etl.keytab --force-keys
#这一步要特别注意,这是应用前面更新的配置内容,会重启服务器,找个好时间
tsm pending-changes apply
第三步:
这一步尤其重要,目的是为了能够进行kinit命令,命令的具体含义请百度查看,步骤如下:
- 配置节点的hosts文件,将cdh集群的主机都加入到这个文件;
- 配置/etc/krb5.conf文件,这个可以直接从集群的节点拷贝过来;
- 执行:sudo yum install krb5-workstation krb5-libs,安装kerberos客户端,安装好后就能kinit。
- 接下来就能进行kinit命令了,结合我们之前进行的操作,也会应用到tableau server,对应的server上的kerberos认证的impala连接也能正常访问了。
说明:
可能有冗余步骤;
这三部分我认为是不可少的,对于其他的需要从server连接kerberos认证进行连接的,理论也都需要这些步骤。不局限于cdh,更不局限于impala。