注:僅適用於 5.1.18 及之前的版本,5.1.19 之後開始使用 驅動管理 管理插件,不會出現插件衝突情況。
插件隔離支援kerberos認證
在建立資料連結時,可能會出現放置的新驅動 JAR 包和 FineBI 自帶的 JAR 包,或者和其他驅動 JAR 包有衝突的問題(例如 Hive 的 Hadoop 的套件衝突或者 Hive 和星環資料庫的 JAR 包衝突),為此 FineBI 提供驅動隔離插件來隔離相關的驅動,以保證資料庫順利連結。
驅動隔離插件是保證類載入器載入 JAR 的時候,分開載入資料庫驅動 JAR 和 BI 自身需要的 JAR,避免它們之間出現衝突。
而FineReport 設計器 遠端連結 BI 時,是透過 FineReport 直接去新增表建立伺服器資料集,所以不需要使用本章介紹的 BI 驅動隔離插件。
注:若 BI 為 5.1.1 版本,請使用 5.1.1 版本驅動隔離插件
以 Hive 資料庫為例,講解如何使用驅動隔離插件連結 FineBI 。
在下表中下載安裝 Hive 的驅動隔離插件。插件安裝方法請參見:插件管理
fr-plugin-hive-driver-loader-3.0.zip
fr-plugin-transwarp-driver-loader-2.5.zip
fr-plugin-spark-driver-loader-2.5.zip
fr-plugin-mysql-driver-loader-2.5.zip
fr-plugin-impala-driver-loader-2.5.zip
fr-plugin-oracle-driver-loader-2.5.zip
fr-plugin-presto-driver-loader-2.5.zip
ClickHouse
fr-plugin-clickhouse-driver-loader-2.5.zip
fr-plugin-maxcompute-driver-loader-2.5.zip
fr-plugin-phoenix-driver-loader-2.5.zip
fr-plugin-kylin-driver-loader-2.5.zip
fr-plugin-hbase-2.5.zip
1)到對應文檔裏面,下載資料庫對應的驅動檔案。
下載對應驅動
(2.1 節配置資訊中)
2)在 FineBI 路徑%FineBI%/webapps/webroot/WEB-INF下,建立一個新的資料夾,資料夾命名參考上表。
3)將下載的資料庫驅動 JAR 包put 命令資料夾中,如下圖所示:
「Hive 資料庫、TRANSWARP INCEPTOR 資料庫、SPARK資料庫」除了要put 命令驅動 JAR 包,還需要put 命令兩個jar包:
slf4j-log4j12-1.7.10.jar、slf4j-api-1.7.10.jar
3)重啓 FineBI 。
完成 2.1、2.2 節後,傳回對應的資料連結文檔,正常連結資料庫即可。連結資料庫的步驟請參見:配置資料連結
1)5.1.14 之前版本,使用隔離插件後不支援 kerberos 認證;5.1.14 及之後版本,隔離插件支援 kerberos 認證。
2)隔離插件細分不同的資料連結,即使底層使用了同樣的資料庫也會區分不同的名稱。例如:SPARK,Hive 和 TRANSWARP INCEPTOR (星環)資料庫的底層都是 Hive 資料庫,但使用的插件是不同的,放置 JAR 包的資料夾名稱也應該差別。
3)由於隔離的資料夾名不同,所以安裝多個插件後,對應驅動均可以隔離。
1)若 2019-05-15 之後的 5.1 版本升級至 2020-01-15 版本的 5.1 ,原 驅動隔離插件 插件不相容,需要把舊的插件刪除後,再安裝新的驅動隔離插件,重新按照文檔使用方法進行配置。
因為 kerberos 認證是全局認證,全局認證是無法支援同時連多個 kerberos 認證的。
例如,hive 的 princal 為 a , impala 的 princal 為 b ,這種情況下只能連結一個。簡而言之就是,kerberos連結時會設定 java.security.krb5.conf 系統參數。
在 5.1.14 版本之前的驅動隔離插件不能用於 kerberos 認證,因此如果當幾個 kerberos 認證的資料庫都使用一份 kerberos 資訊(使用一份 krb5.conf ,一份 keytab) ,此時使用的是同一個kerberos認證。
理論上是可以支援的,但是不同的資料庫驅動往往會有衝突,比如 impala 和 hive 的驅動衝突,此時也是不支援同時連結 impala 和 hive 的。