真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

elasticsearch分片的操作

本篇內(nèi)容介紹了“elasticsearch分片的操作”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)主要從事成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)浦江,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

分片重要性

Es中所有數(shù)據(jù)均衡的存儲(chǔ)在集群中各個(gè)節(jié)點(diǎn)分片中,會(huì)影響ES的性能、安全和穩(wěn)定性, 所以很有必要了解一下它。

分片是什么?

簡單來講就是咱們在ES中所有數(shù)據(jù)的文件塊,也是數(shù)據(jù)的最小單元塊,整個(gè)ES集群的核心就是對所有分片的分布、索引、負(fù)載、路由等達(dá)到驚人的速度

實(shí)列場景:

假設(shè) IndexA 有2個(gè)分片,我們向 IndexA 中插入10條數(shù)據(jù) (10個(gè)文檔),那么這10條數(shù)據(jù)會(huì)盡可能平均的分為5條存儲(chǔ)在第一個(gè)分片,剩下的5條會(huì)存儲(chǔ)在另一個(gè)分片中。

和主流關(guān)系型數(shù)據(jù)庫的表分區(qū)的概念有點(diǎn)類似,如果你比較熟悉關(guān)系型數(shù)據(jù)庫的話。

分片的設(shè)置

創(chuàng)建 IndexName 索引時(shí)候,在 Mapping 中可以如下設(shè)置分片 (curl)

PUT indexName
{
    "settings": {
        "number_of_shards": 5
    }
}

注意

索引建立后,分片個(gè)數(shù)是不可以更改的

分片個(gè)數(shù)(數(shù)據(jù)節(jié)點(diǎn)計(jì)算)

分片個(gè)數(shù)是越多越好還是越少越好了?根據(jù)整個(gè)索引的數(shù)據(jù)量來判斷。

實(shí)列場景:

如果  IndexA 所有數(shù)據(jù)文件大小是300G,該怎么定制方案了?

建議:(僅參考)

1、每一個(gè)分片數(shù)據(jù)文件小于30GB

2、每一個(gè)索引中的一個(gè)分片對應(yīng)一個(gè)數(shù)據(jù)節(jié)點(diǎn)

3、節(jié)點(diǎn)數(shù)大于等于分片數(shù)(不含復(fù)制分片數(shù))

 

根據(jù)建議,至少需要 14個(gè)分片,11個(gè)數(shù)據(jù)分片,3個(gè)主節(jié)點(diǎn)。

結(jié)果: 建11個(gè)數(shù)據(jù)節(jié)點(diǎn) (Node),Mapping 指定分片數(shù)為 10,滿足每一個(gè)節(jié)點(diǎn)一個(gè)分片,每一個(gè)分片數(shù)據(jù)帶下在30G左右。同時(shí)作為健壯性和擴(kuò)展性,多一個(gè)數(shù)據(jù)節(jié)點(diǎn)。

SN(分片數(shù)) = IS(索引大小)  / 30

NN(節(jié)點(diǎn)數(shù)) = SN(分片數(shù)) + MNN(主節(jié)點(diǎn)數(shù)[無數(shù)據(jù)]) + NNN(負(fù)載節(jié)點(diǎn)數(shù))

分片查詢

我們可以指定es去具體的分片查詢從而進(jìn)一步的實(shí)現(xiàn)es極速查詢。

1:randomizeacross shards

隨機(jī)選擇分片查詢數(shù)據(jù),es的默認(rèn)方式

2:_local

優(yōu)先在本地節(jié)點(diǎn)上的分片查詢數(shù)據(jù)然后再去其他節(jié)點(diǎn)上的分片查詢,本地節(jié)點(diǎn)沒有IO問題但有可能造成負(fù)載不均問題。數(shù)據(jù)量是完整的。

3:_primary

只在主分片中查詢不去副本查,一般數(shù)據(jù)完整。

4:_primary_first

優(yōu)先在主分片中查,如果主分片掛了則去副本查,一般數(shù)據(jù)完整。

5:_only_node

只在指定id的節(jié)點(diǎn)中的分片中查詢,數(shù)據(jù)可能不完整。

6:_prefer_node

優(yōu)先在指定你給節(jié)點(diǎn)中查詢,一般數(shù)據(jù)完整。

7:_shards

在指定分片中查詢,數(shù)據(jù)可能不完整。

8:_only_nodes

可以自定義去指定的多個(gè)節(jié)點(diǎn)查詢,es不提供此方式需要改源碼。

    /** 
         * 指定分片 查詢 
         */  
        @Test  
        public void testPreference()  
        {  
            SearchResponse searchResponse = transportClient.prepareSearch(index)  
                    .setTypes("add")  
                    //.setPreference("_local")  
                    //.setPreference("_primary")  
                    //.setPreference("_primary_first")  
                    //.setPreference("_only_node:ZYYWXGZCSkSL7QD0bDVxYA")  
                    //.setPreference("_prefer_node:ZYYWXGZCSkSL7QD0bDVxYA")  
                    .setPreference("_shards:0,1,2")  
                    .setQuery(QueryBuilders.matchAllQuery()).setExplain(true).get();  
              
            SearchHits hits = searchResponse.getHits();  
            System.out.println(hits.getTotalHits());  
            SearchHit[] hits2 = hits.getHits();  
            for(SearchHit h : hits2)  
            {  
                System.out.println(h.getSourceAsString());  
            }  
        }

“elasticsearch分片的操作”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


新聞名稱:elasticsearch分片的操作
標(biāo)題URL:http://weahome.cn/article/ijsejh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部