亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

elasticsearch分片的操作

發布時間:2021-09-01 16:27:30 來源:億速云 閱讀:352 作者:chen 欄目:云計算

本篇內容介紹了“elasticsearch分片的操作”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

分片重要性

Es中所有數據均衡的存儲在集群中各個節點分片中,會影響ES的性能、安全和穩定性, 所以很有必要了解一下它。

分片是什么?

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

實列場景:

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

和主流關系型數據庫的表分區的概念有點類似,如果你比較熟悉關系型數據庫的話。

分片的設置

創建 IndexName 索引時候,在 Mapping 中可以如下設置分片 (curl)

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

注意

索引建立后,分片個數是不可以更改的

分片個數(數據節點計算)

分片個數是越多越好還是越少越好了?根據整個索引的數據量來判斷。

實列場景:

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

建議:(僅參考)

1、每一個分片數據文件小于30GB

2、每一個索引中的一個分片對應一個數據節點

3、節點數大于等于分片數(不含復制分片數)

 

根據建議,至少需要 14個分片,11個數據分片,3個主節點。

結果: 建11個數據節點 (Node),Mapping 指定分片數為 10,滿足每一個節點一個分片,每一個分片數據帶下在30G左右。同時作為健壯性和擴展性,多一個數據節點。

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

NN(節點數) = SN(分片數) + MNN(主節點數[無數據]) + NNN(負載節點數)

分片查詢

我們可以指定es去具體的分片查詢從而進一步的實現es極速查詢。

1:randomizeacross shards

隨機選擇分片查詢數據,es的默認方式

2:_local

優先在本地節點上的分片查詢數據然后再去其他節點上的分片查詢,本地節點沒有IO問題但有可能造成負載不均問題。數據量是完整的。

3:_primary

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

4:_primary_first

優先在主分片中查,如果主分片掛了則去副本查,一般數據完整。

5:_only_node

只在指定id的節點中的分片中查詢,數據可能不完整。

6:_prefer_node

優先在指定你給節點中查詢,一般數據完整。

7:_shards

在指定分片中查詢,數據可能不完整。

8:_only_nodes

可以自定義去指定的多個節點查詢,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分片的操作”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黄骅市| 新野县| 中江县| 绥德县| 通化市| 伊金霍洛旗| 体育| 华蓥市| 新巴尔虎右旗| 舟曲县| 威宁| 大关县| 襄城县| 北海市| 教育| 黄大仙区| 灯塔市| 治多县| 陇南市| 从化市| 南投县| 陈巴尔虎旗| 乌兰浩特市| 呼图壁县| 华安县| 根河市| 绿春县| 叙永县| 逊克县| 临西县| 泰兴市| 雅江县| 固始县| 大关县| 平江县| 绥阳县| 湘西| 梧州市| 枣庄市| 余干县| 自贡市|