在 Kudu 中整合 Hive Metastore

2021-10-07 16:21:57 字數 2408 閱讀 2776

在啟用 kudu-hms 整合之前,要確保 kudu 和 hms 現有表的檢視一致。這可能需要重新命名kudu表以符合hive命名約束。在啟用與 hive metastore 整合之前應公升級現有 kudu 表。

準備公升級

在公升級過程中,kudu群集仍然可用。kudu 和 hive metastore 中的表可能會更改或重新命名。

可以使用以下命令記錄所有外部表並將其刪除。這減少了與 kudu 表發生命名衝突,導致公升級過程**現錯誤。公升級完成後,重新建立外部表。

[root@node01 ~]# sudo -u kudu kudu hms list cdh01:7051,cdh02:7051,cdh03:7051

執行公升級

執行 kudu hms precheck 工具檢查 kudu 表名稱是否不同。如果未報告任何警告,則可以跳過第二步。

[root@node01 ~]# sudo -u kudu kudu hms precheck cdh01:7051,cdh02:7051,cdh03:7051

如果 kudu hms precheck 工具有衝突,可以使用以下命令將它們重新命名為不區分大小寫的唯一名稱

$ sudo -u kudu kudu table rename_table cdh01:7051,cdh02:7051,cdh03:7051

使用 kudu hms check 工具檢查目錄是否一致,如無,跳至第七步。

[root@node01 ~]# sudo -u kudu kudu hms check cdh01:7051,cdh02:7051,cdh03:7051 --hive_metastore_uris=thrift://hive-metastore:9083 --ignore_other_clusters=false

使用 kudu hms fix 解決可自動修復的問題

[root@node01 ~]# sudo -u kudu kudu hms fix cdh01:7051,cdh02:7051,cdh03:7051 --hive_metastore_uris=thrift://hive-metastore:90 --dryrun=true --ignore_other_clusters=false

手動修復檢查工具無法自動修復的所有問題。

使用 kudu hms fix 工具自動修復所有剩餘的問題

[root@node01 ~]# sudo -u kudu kudu hms fix cdh01:7051,cdh02:7051,cdh03:7051 --hive_metastore_uris=thrift://hive-metastore:90 --dryrun=true --ignore_other_clusters=false

使用 impala shell 重新建立在準備公升級時刪除的所有外部表。

與 hive metastore 整合

在 hive-site.xml 中新增如下配置

hive.metastore.transactional.event.listeners

org.apache.hive.hcatalog.listener.dbnotificationlistener,

org.apache.kudu.hive.metastore.kudumetastoreplugin

hive.metastore.disallow.incompatible.col.type.changes

false

hive.metastore.notifications.add.thrift.objects

true

將 hms-plugin.jar 新增到 hms 類路徑下。

重新啟動 hms 服務。

在 kudu 中配置以下屬性

--hive_metastore_uris=--hive_metastore_sasl_enabled=
--hive_metastore_sasl_enabled設定為 true 時,--hive_metastore_kerberos_principal必須與 hive metastore 中hive.metastore.kerberos.principal匹配

重新啟動 kudu 服務。

注意:

如果 hive metastore 使用了 apache sentry 配置了細粒度的授權並且啟用sentry hdfs sync功能時,kudu 管理員需要能夠訪問和修改 hms 為 kudu 建立的目錄。需要將 kudu 管理員使用者新增到 hive 服務使用者組中,usermod -ag hive kudu

在Visual C 中整合DDK WDK

要在windows下開發驅動程式,最直接的方法就是用免費的wdk windows driver kit 但是wdk只提供了命令列下執行的編譯和鏈結工具,並沒有ide,這樣對於那些用貫了visual c 的開發者會來說有些不方便。要把wdk整合到visual c 裡,要對專案進行如下設定 1 新建乙個...

在SpringBoot中整合Redis

科技優家 2017 01 16 17 17 上篇介紹了 spring data jpa一些使用方法,都是基於mysql資料庫來講解的,但是在實際專案中,由於訪問量的不斷增大,資料庫的壓力會越來越大,這時候類似於mysql的資料庫往往只是為了兜底或者在降級時才會有查詢操作,大部分的讀操作都會集中在快取...

在springboot中整合bootstrap

比較簡單,不要想的太複雜了。首先匯入依賴bootstrap與jquery org.webjars bootstrap 3.3.5 org.webjars jquery 3.1.1 然後在html檔案中加入相應版本 btn 類是按鈕的基本樣式 基本按鈕 關鍵的三句 專案結構圖 然後就可以了。不要在po...