本公開涉及數(shù)據(jù)處理,具體涉及一種基于trino的hive數(shù)據(jù)源熱加載方法及裝置。
背景技術:
1、trino是一個開源的分布式sql查詢引擎,由關系型數(shù)據(jù)庫架構(gòu)演化而來,用于對各個數(shù)據(jù)源的數(shù)據(jù)集進行交互式分析查詢,它支持標準的ansi?sql,無論是對多數(shù)據(jù)源的支持,還是高性能、易用性、可擴展性等方面,均有不錯的表現(xiàn)。
2、當trino被廣泛應用到大數(shù)據(jù)分析以及數(shù)據(jù)治理等應用中時,需要動態(tài)添加數(shù)據(jù)源,并注冊到trino集群中,特別是對于hive數(shù)據(jù)源,如果涉及到高可用的hadoop底座,還需要在hive數(shù)據(jù)源對應的目錄下存放core-site.xml和hdfs-site.xml配置文件。
3、在現(xiàn)有技術中,當trino集群中新增hive數(shù)據(jù)源,或刪除hive數(shù)據(jù)源,則需要手動修改配置文件,并手動同步到每個trino節(jié)點之中。進而需要大量的手動操作,繁瑣性高,且無法保證變更的及時性和準確性。
技術實現(xiàn)思路
1、有鑒于此,本技術實施例提供了一種基于trino的hive數(shù)據(jù)源熱加載方法及裝置,可以提高trino集群的數(shù)據(jù)處理效率。
2、第一方面,本技術實施例提供了一種基于trino的hive數(shù)據(jù)源熱加載方法,包括:
3、獲取第一數(shù)據(jù)源信息列表;所述第一數(shù)據(jù)源信息列表中包括多個已注冊的hive數(shù)據(jù)源;
4、周期性的從elastic?search中讀取目標數(shù)據(jù)源信息列表;所述目標數(shù)據(jù)源信息列表中包括根據(jù)業(yè)務端需求實時動態(tài)更新的多個hive數(shù)據(jù)源;
5、對比所述第一數(shù)據(jù)源信息列表中各個hive數(shù)據(jù)源的名稱、以及所述目標數(shù)據(jù)源信息列表中各個hive數(shù)據(jù)源的名稱,獲取新增數(shù)據(jù)源信息列表和待刪除數(shù)據(jù)源信息列表;
6、針對所述新增數(shù)據(jù)源信息列表中的各個hive數(shù)據(jù)源,在所述第一數(shù)據(jù)源信息列表中注冊所述各個hive數(shù)據(jù)源對應的信息,并添加對應的配置文件;
7、針對所述待刪除數(shù)據(jù)源信息列表中的各個hive數(shù)據(jù)源,在所述第一數(shù)據(jù)源信息列表中刪除所述各個hive數(shù)據(jù)源對應的信息,并刪除對應的配置文件。
8、作為本技術實施例一種可選的實施方式,所述對比所述第一數(shù)據(jù)源信息列表中各個hive數(shù)據(jù)源的名稱、以及所述目標數(shù)據(jù)源信息列表中各個hive數(shù)據(jù)源的名稱,獲取新增數(shù)據(jù)源信息列表和待刪除數(shù)據(jù)源信息列表,包括:
9、若所述目標數(shù)據(jù)源信息列表中出現(xiàn)所述第一數(shù)據(jù)源信息列表中不同名稱的第一hive數(shù)據(jù)源,則將所述第一hive數(shù)據(jù)源作為新增hive數(shù)據(jù)源,以生成所述新增數(shù)據(jù)源信息列表;
10、若所述第一數(shù)據(jù)源信息列表中出現(xiàn)所述目標數(shù)據(jù)源信息列表中不同名稱的第二hive數(shù)據(jù)源,則將所述第二的hive數(shù)據(jù)源作為待刪除hive數(shù)據(jù)源,以生成所述待刪除數(shù)據(jù)源信息列表。
11、作為本技術實施例一種可選的實施方式,所述對比所述第一數(shù)據(jù)源信息列表中各個hive數(shù)據(jù)源的名稱、以及所述目標數(shù)據(jù)源信息列表中各個hive數(shù)據(jù)源的名稱之后,所述方法還包括:
12、獲取所述第一數(shù)據(jù)源信息列表以及所述目標數(shù)據(jù)源信息列表中名稱相同的hive數(shù)據(jù)源,以生成多個數(shù)據(jù)源對;
13、針對所述多個數(shù)據(jù)源對,對比所述數(shù)據(jù)源對中各個hive數(shù)據(jù)源的配置信息是否相等;
14、若否,則等待最新讀取的所述目標數(shù)據(jù)源信息列表,重新確定所述數(shù)據(jù)源對中來自所述第一數(shù)據(jù)源信息列表的hive數(shù)據(jù)源是屬于所述新增數(shù)據(jù)源信息列表或所述待刪除數(shù)據(jù)源信息列表。
15、作為本技術實施例一種可選的實施方式,所述針對所述新增數(shù)據(jù)源信息列表中的各個hive數(shù)據(jù)源,在所述第一數(shù)據(jù)源信息列表中注冊所述各個hive數(shù)據(jù)源對應的信息,并添加對應的配置文件,包括:
16、針對所述新增數(shù)據(jù)源信息列表中的各個第一hive數(shù)據(jù)源,通過協(xié)調(diào)器動態(tài)目錄管理器在所述第一數(shù)據(jù)源信息列表中注冊所述各個hive數(shù)據(jù)源對應的信息;
17、針對所述新增數(shù)據(jù)源信息列表中的各個第一hive數(shù)據(jù)源,獲取所述各個第一hive數(shù)據(jù)源的nameservices配置值和hdfsaddr配置值,以生成對應的core-site.xml配置文件和hdfs-site.xml配置文件,并添加至對應的第一hive數(shù)據(jù)源名稱所對應的路徑下。
18、作為本技術實施例一種可選的實施方式,所述針對所述待刪除數(shù)據(jù)源信息列表中的各個hive數(shù)據(jù)源,在所述第一數(shù)據(jù)源信息列表中刪除所述各個hive數(shù)據(jù)源對應的信息,并刪除對應的配置文件,包括:
19、針對所述待刪除數(shù)據(jù)源信息列表中的各個第二hive數(shù)據(jù)源,通過協(xié)調(diào)器動態(tài)目錄管理器刪除所述各個hive數(shù)據(jù)源對應的信息;
20、針對所述待刪除數(shù)據(jù)源信息列表中的各個第二hive數(shù)據(jù)源,將所述各個第二hive數(shù)據(jù)源對應路徑下的core-site.xml配置文件和hdfs-site.xml配置文件刪除。
21、作為本技術實施例一種可選的實施方式,在所述周期性的從elastic?search中讀取目標數(shù)據(jù)源信息列表之前,所述方法還包括:
22、預先配置所述業(yè)務端和所述trino集群之間elastic?search的index及數(shù)據(jù)結(jié)構(gòu),并建立所述trino與所述elastic?search之間的連接。
23、作為本技術實施例一種可選的實施方式,所述方法還包括:
24、在所述第一數(shù)據(jù)源信息列表中注冊所述各個hive數(shù)據(jù)源對應的信息,并添加對應的配置文件,以及在所述第一數(shù)據(jù)源信息列表中刪除所述各個hive數(shù)據(jù)源對應的信息,并刪除對應的配置文件之后,生成最新的trino-main模塊,并替換所述最新的trino-main模塊對應的jar文件,重啟所述trino集群中的coordinator節(jié)點。
25、第二方面,本技術實施例提供了一種基于trino的hive數(shù)據(jù)源熱加載裝置,包括:
26、獲取單元,用于獲取第一數(shù)據(jù)源信息列表;所述第一數(shù)據(jù)源信息列表中包括多個已注冊的hive數(shù)據(jù)源;
27、讀取單元,用于周期性的從elastic?search中讀取目標數(shù)據(jù)源信息列表;所述目標數(shù)據(jù)源信息列表中包括根據(jù)業(yè)務端需求實時動態(tài)更新的多個hive數(shù)據(jù)源;
28、對比單元,用于對比所述第一數(shù)據(jù)源信息列表中各個hive數(shù)據(jù)源的名稱、以及所述目標數(shù)據(jù)源信息列表中各個hive數(shù)據(jù)源的名稱,獲取新增數(shù)據(jù)源信息列表和待刪除數(shù)據(jù)源信息列表;
29、第一處理單元,用于針對所述新增數(shù)據(jù)源信息列表中的各個hive數(shù)據(jù)源,在所述第一數(shù)據(jù)源信息列表中注冊所述各個hive數(shù)據(jù)源對應的信息,并添加對應的配置文件;
30、第二處理單元,用于針對所述待刪除數(shù)據(jù)源信息列表中的各個hive數(shù)據(jù)源,在所述第一數(shù)據(jù)源信息列表中刪除所述各個hive數(shù)據(jù)源對應的信息,并刪除對應的配置文件。
31、作為本技術實施例一種可選的實施方式,所述對比單元,具體用于若所述目標數(shù)據(jù)源信息列表中出現(xiàn)所述第一數(shù)據(jù)源信息列表中不同名稱的第一hive數(shù)據(jù)源,則將所述第一hive數(shù)據(jù)源作為新增hive數(shù)據(jù)源,以生成所述新增數(shù)據(jù)源信息列表;若所述第一數(shù)據(jù)源信息列表中出現(xiàn)所述目標數(shù)據(jù)源信息列表中不同名稱的第二hive數(shù)據(jù)源,則將所述第二的hive數(shù)據(jù)源作為待刪除hive數(shù)據(jù)源,以生成所述待刪除數(shù)據(jù)源信息列表。
32、作為本技術實施例一種可選的實施方式,所述對比為單元,還用于:獲取所述第一數(shù)據(jù)源信息列表以及所述目標數(shù)據(jù)源信息列表中名稱相同的hive數(shù)據(jù)源,以生成多個數(shù)據(jù)源對;針對所述多個數(shù)據(jù)源對,對比所述數(shù)據(jù)源對中各個hive數(shù)據(jù)源的配置信息是否相等;若否,則等待最新讀取的所述目標數(shù)據(jù)源信息列表,重新確定所述數(shù)據(jù)源對中來自所述第一數(shù)據(jù)源信息列表的hive數(shù)據(jù)源是屬于所述新增數(shù)據(jù)源信息列表或所述待刪除數(shù)據(jù)源信息列表。
33、作為本技術實施例一種可選的實施方式,所述第一處理單元,具體用于針對所述新增數(shù)據(jù)源信息列表中的各個第一hive數(shù)據(jù)源,通過協(xié)調(diào)器動態(tài)目錄管理器在所述第一數(shù)據(jù)源信息列表中注冊所述各個hive數(shù)據(jù)源對應的信息;針對所述新增數(shù)據(jù)源信息列表中的各個第一hive數(shù)據(jù)源,獲取所述各個第一hive數(shù)據(jù)源的nameservices配置值和hdfsaddr配置值,以生成對應的core-site.xml配置文件和hdfs-site.xml配置文件,并添加至對應的第一hive數(shù)據(jù)源名稱所對應的路徑下。
34、作為本技術實施例一種可選的實施方式,所述第二處理單元,具體用于針對所述待刪除數(shù)據(jù)源信息列表中的各個第二hive數(shù)據(jù)源,通過協(xié)調(diào)器動態(tài)目錄管理器刪除所述各個hive數(shù)據(jù)源對應的信息;針對所述待刪除數(shù)據(jù)源信息列表中的各個第二hive數(shù)據(jù)源,將所述各個第二hive數(shù)據(jù)源對應路徑下的core-site.xml配置文件和hdfs-site.xml配置文件刪除。
35、作為本技術實施例一種可選的實施方式,在所述獲取單元,還用于預先配置所述業(yè)務端和所述trino集群之間elastic?search的index及數(shù)據(jù)結(jié)構(gòu),并建立所述trino與所述elastic?search之間的連接。
36、作為本技術實施例一種可選的實施方式,所述基于trino的hive數(shù)據(jù)源熱加載裝置還包括:重啟單元,具體用于在所述第一數(shù)據(jù)源信息列表中注冊所述各個hive數(shù)據(jù)源對應的信息,并添加對應的配置文件,以及在所述第一數(shù)據(jù)源信息列表中刪除所述各個hive數(shù)據(jù)源對應的信息,并刪除對應的配置文件之后,生成最新的trino-main模塊,并替換所述最新的trino-main模塊對應的jar文件,重啟所述trino集群中的coordinator節(jié)點。
37、第三方面,本技術實施例提供了一種電子設備,包括:存儲器和處理器,所述存儲器用于存儲計算機程序;所述處理器用于在執(zhí)行計算機程序時,使得所述電子設備實現(xiàn)上述任一項實施例所述的基于trino的hive數(shù)據(jù)源熱加載方法。
38、第四方面,本技術實施例提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)上存儲有計算機程序,當所述計算機程序被計算設備執(zhí)行時,使得所述計算設備實現(xiàn)上述任一項實施例所述的基于trino的hive數(shù)據(jù)源熱加載方法。
39、本技術實施例提供的基于trino的hive數(shù)據(jù)源熱加載方法具體為:獲取第一數(shù)據(jù)源信息列表;所述第一數(shù)據(jù)源信息列表中包括多個已注冊的hive數(shù)據(jù)源;周期性的從elastic?search中讀取目標數(shù)據(jù)源信息列表;所述目標數(shù)據(jù)源信息列表中包括根據(jù)業(yè)務端需求實時動態(tài)更新的多個hive數(shù)據(jù)源;對比所述第一數(shù)據(jù)源信息列表中各個hive數(shù)據(jù)源的名稱、以及所述目標數(shù)據(jù)源信息列表中各個hive數(shù)據(jù)源的名稱,獲取新增數(shù)據(jù)源信息列表和待刪除數(shù)據(jù)源信息列表;針對所述新增數(shù)據(jù)源信息列表中的各個hive數(shù)據(jù)源,在所述第一數(shù)據(jù)源信息列表中注冊所述各個hive數(shù)據(jù)源對應的信息,并添加對應的配置文件;針對所述待刪除數(shù)據(jù)源信息列表中的各個hive數(shù)據(jù)源,在所述第一數(shù)據(jù)源信息列表中刪除所述各個hive數(shù)據(jù)源對應的信息,并刪除對應的配置文件。本技術通過對比所述第一數(shù)據(jù)源信息列表中各個hive數(shù)據(jù)源的名稱、以及所述目標數(shù)據(jù)源信息列表中各個hive數(shù)據(jù)源的名稱,進而快速獲取新增數(shù)據(jù)源信息列表和待刪除數(shù)據(jù)源信息列表,并對其配置文件進行對應的添加或刪除操作,無需人工手動再進行配置文件的修改,十分方便,同時也提高了可以提高trino集群的數(shù)據(jù)處理效率。