背景說明:
我們正在使用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 [email protected] --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。