本申請涉及計算機,尤其涉及一種基于elasticsearch的索引分片分配方法、裝置、電子設(shè)備及計算機可讀存儲介質(zhì)。
背景技術(shù):
1、當前大數(shù)據(jù)盛行的年代,用于存儲海量數(shù)據(jù)的數(shù)據(jù)倉庫也十分得多,開源的分布式搜索引擎elasticsearch(搜索引擎,es)便是屬于其中之一。elasticsearch既能存儲和管理大規(guī)模數(shù)據(jù),也能實現(xiàn)對其存儲數(shù)據(jù)的近實時全文檢索。
2、在elasticsearch中,一臺服務(wù)器對應(yīng)一個數(shù)據(jù)節(jié)點,每個數(shù)據(jù)節(jié)點運行有一個程序,各個程序之間進行通信,進行通信的程序組成一個集群,并通過索引記錄數(shù)據(jù)和數(shù)據(jù)位置。為實現(xiàn)分布式存儲,現(xiàn)有的索引分片分配方法把一個完整的索引分成多個分片,并分布到集群的不同的服務(wù)器上,并保證索引分片及其對應(yīng)的備份分片不會分配到同一臺服務(wù)器上。
3、然而,現(xiàn)有的索引分片分配方法當集群中出現(xiàn)屬于同一個leaf節(jié)點的多臺服務(wù)器故障時,會導致索引分片及其對應(yīng)的備份分片均不可用,無法保障數(shù)據(jù)的可用性。
技術(shù)實現(xiàn)思路
1、鑒于上述問題,提出了本申請以便提供一種克服上述問題或者至少部分地解決上述問題的基于elasticsearch的索引分片分配方法、裝置、電子設(shè)備及計算機可讀存儲介質(zhì)。
2、本申請實施例采用下述技術(shù)方案:
3、第一方面,本申請實施例提供一種基于elasticsearch的索引分片分配方法,應(yīng)用于服務(wù)器,包括:
4、接收用戶針對索引分片的分配參數(shù)的配置信息,其中,所述索引分片的分配參數(shù)包括集群中各個服務(wù)器的編號及其對應(yīng)的leaf節(jié)點編號;
5、根據(jù)所述集群中各個服務(wù)器對應(yīng)的leaf節(jié)點編號對目標索引的索引分片進行分配,將所述目標索引的索引分片及其對應(yīng)的備份分片分配到leaf節(jié)點編號不同的服務(wù)器上。
6、可選地,所述集群中的服務(wù)器屬于不同的邏輯子集群;
7、所述索引分片的分配參數(shù)還包括:集群中各個服務(wù)器對應(yīng)的邏輯子集群編號;
8、所述方法還包括:
9、根據(jù)所述集群中各個服務(wù)器對應(yīng)的邏輯子集群編號對目標索引的索引分片進行分配,將不同的目標索引的索引分片分配到屬于不同邏輯子集群的服務(wù)器上。
10、可選地,所述方法還包括:判斷目標索引是否為重要數(shù)據(jù);
11、當所述目標索引為重要數(shù)據(jù)時,則執(zhí)行根據(jù)所述集群中各個服務(wù)器對應(yīng)的邏輯子集群編號對目標索引的索引分片進行分配,將不同的目標索引的索引分片分配到屬于不同邏輯子集群的服務(wù)器上。
12、可選地,所述重要數(shù)據(jù)包括:日志數(shù)據(jù)和核心業(yè)務(wù)數(shù)據(jù)。
13、可選地,所述將不同的目標索引的索引分片分配到屬于不同邏輯子集群的服務(wù)器上,包括:
14、根據(jù)所述集群中各個服務(wù)器對應(yīng)的邏輯子集群編號對第一目標索引和第二目標索引的索引分片進行分配,將所述第一目標索引的索引分片分配到第一邏輯子集群中的服務(wù)器上,將所述第二目標索引的索引分片分配到第二邏輯子集群的服務(wù)器上。
15、可選地,所述第一邏輯子集群與所述第二邏輯子集群分別對應(yīng)不同的leaf節(jié)點。
16、可選地,所述方法還包括:
17、對所述集群中各個服務(wù)器的性能進行評估;
18、在對目標索引的索引分片的分配過程中,優(yōu)先選擇性能高的服務(wù)器。
19、第二方面,本申請實施例還提供一種基于elasticsearch的索引分片分配裝置,應(yīng)用于服務(wù)器,包括:
20、配置信息接收單元,用于接收用戶針對索引分片的分配參數(shù)的配置信息,其中,所述索引分片的分配參數(shù)包括集群中各個服務(wù)器的編號及其對應(yīng)的leaf節(jié)點編號;
21、索引分片分配單元,用于根據(jù)所述集群中各個服務(wù)器對應(yīng)的leaf節(jié)點編號對目標索引的索引分片進行分配,將所述目標索引的索引分片及其對應(yīng)的備份分片分配到leaf節(jié)點編號不同的服務(wù)器上。
22、可選地,所述集群中的服務(wù)器屬于不同的邏輯子集群;
23、所述索引分片的分配參數(shù)還包括:集群中各個服務(wù)器對應(yīng)的邏輯子集群編號;
24、所述索引分片分配單元還用于:
25、根據(jù)所述集群中各個服務(wù)器對應(yīng)的邏輯子集群編號對目標索引的索引分片進行分配,將不同的目標索引的索引分片分配到屬于不同邏輯子集群的服務(wù)器上。
26、可選地,所述裝置還包括:判斷單元,用于判斷目標索引是否為重要數(shù)據(jù);
27、所述索引分片分配單元進一步用于當所述目標索引為重要數(shù)據(jù)時,則執(zhí)行根據(jù)所述集群中各個服務(wù)器對應(yīng)的邏輯子集群編號對目標索引的索引分片進行分配,將不同的目標索引的索引分片分配到屬于不同邏輯子集群的服務(wù)器上。
28、可選地,所述重要數(shù)據(jù)包括:日志數(shù)據(jù)和核心業(yè)務(wù)數(shù)據(jù)。
29、可選地,所述將不同的目標索引的索引分片分配到屬于不同邏輯子集群的服務(wù)器上,包括:
30、根據(jù)所述集群中各個服務(wù)器對應(yīng)的邏輯子集群編號對第一目標索引和第二目標索引的索引分片進行分配,將所述第一目標索引的索引分片分配到第一邏輯子集群中的服務(wù)器上,將所述第二目標索引的索引分片分配到第二邏輯子集群的服務(wù)器上。
31、可選地,所述第一邏輯子集群與所述第二邏輯子集群分別對應(yīng)不同的leaf節(jié)點。
32、可選地,所述裝置還包括:
33、評估單元,用于對所述集群中各個服務(wù)器的性能進行評估;
34、所述索引分片分配單元進一步用于:在對目標索引的索引分片的分配過程中,優(yōu)先選擇性能高的服務(wù)器。
35、第三方面,本申請實施例還提供一種電子設(shè)備,包括:
36、處理器;以及
37、被安排成存儲計算機可執(zhí)行指令的存儲器,所述可執(zhí)行指令在被執(zhí)行時使所述處理器執(zhí)行上述的基于elasticsearch的索引分片分配方法。
38、第四方面,本申請實施例還提供計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲一個或多個程序,所述一個或多個程序當被包括多個應(yīng)用程序的電子設(shè)備執(zhí)行時,使得所述電子設(shè)備執(zhí)行上述的基于elasticsearch的索引分片分配方法。
39、本申請實施例采用的上述至少一個技術(shù)方案能夠達到以下有益效果:
40、本申請實施例在索引分片的分配過程中增加leaf節(jié)點編號作為分配參數(shù),保證目標索引的索引分片本身及其對應(yīng)的備份分片分配到leaf節(jié)點編號不同的服務(wù)器上。這樣,目標索引的索引分片本身及其對應(yīng)的備份分片分布于不同的leaf節(jié)點,索引分片本身及其備份分片各自所在的服務(wù)器不是統(tǒng)一供電、供網(wǎng),同時發(fā)生故障概率較低,當索引分片所在的服務(wù)器故障時,其備份分片所在的服務(wù)器仍可以正常工作,可以從其對應(yīng)的備份分片中完成數(shù)據(jù)恢復,因而提高了數(shù)據(jù)的可用性。
1.一種基于elasticsearch的索引分片分配方法,應(yīng)用于服務(wù)器,其特征在于,包括:
2.如權(quán)利要求1所述方法,其特征在于,所述集群中的服務(wù)器屬于不同的邏輯子集群;
3.如權(quán)利要求2所述方法,其特征在于,所述方法還包括:判斷目標索引是否為重要數(shù)據(jù);
4.如權(quán)利要求3所述方法,其特征在于,所述重要數(shù)據(jù)包括:日志數(shù)據(jù)和核心業(yè)務(wù)數(shù)據(jù)。
5.如權(quán)利要求2所述方法,其特征在于,所述將不同的目標索引的索引分片分配到屬于不同邏輯子集群的服務(wù)器上,包括:
6.如權(quán)利要求5所述方法,其特征在于,所述第一邏輯子集群與所述第二邏輯子集群分別對應(yīng)不同的leaf節(jié)點。
7.如權(quán)利要求1所述方法,其特征在于,所述方法還包括:
8.一種基于elasticsearch的索引分片分配裝置,應(yīng)用于服務(wù)器,其特征在于,包括:
9.一種電子設(shè)備,其特征在于,包括:
10.一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲一個或多個程序,所述一個或多個程序當被包括多個應(yīng)用程序的電子設(shè)備執(zhí)行時,使得所述電子設(shè)備執(zhí)行所述權(quán)利要求1~7之任一所述方法。