国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ES分片副本設置及集群部署

這篇具有很好參考價值的文章主要介紹了ES分片副本設置及集群部署。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、概念

1、分片Shards

一個 Lucene 索引 我們在 Elasticsearch 稱作 分片 。 一個Elasticsearch 索引 是分片的集合。 當 Elasticsearch 在索引中搜索的時候, 他發(fā)送查詢到每一個屬于索引的分片(Lucene 索引),然后合并每個分片的結果到一個全局的結果集。

分片很重要,主要有兩方面的原因:
1、允許水平分割 / 擴展我們的內(nèi)容容量。
2、允許在分片之上進行分布式的、并行的操作,進而提高性能/吞吐量。

分片的配置必須在創(chuàng)建索引的時候就指定分片數(shù)量,因為這直接決定了數(shù)據(jù)的路由規(guī)則,索引不支持在運行中的索引進行動態(tài)修改,副本則可以。

2、副本Replicas

Elasticsearch 允許你創(chuàng)建分片的一份或多份拷貝,這些拷貝叫做副本分片,目的就是解決在在某個分片或節(jié)點因出現(xiàn)問題時候,能提供故障轉移的機制。

副本分片很重要,有兩個主要原因:
1、在分片/節(jié)點失敗的情況下,提供了高可用性。因為這個原因,注意到副本分片從不與主分片置于同一節(jié)點上是非常重要的。
2、擴展你的搜索量/吞吐量,因為搜索可以在所有的副本上并行運行。

在運行中的集群上是可以動態(tài)調整副本分片數(shù)目的,我們可以按需伸縮集群。讓我們把
副本數(shù)從默認的 1 增加到 2。

PUT your_index/_settings
{
	"number_of_replicas" : 2
}

二、分片副本設置

1、分配 3個主分片和一份副本分配

PUT your_index
{
    "mappings" : {
      "properties" : {
      #索引字段(略)
      }
    }
    "settings" : {
        "number_of_shards" : 3,
        "number_of_replicas" : 1
    }
}

配置之后總共有3個主分片f1,f2,f3,并且每個分片有自己的一個副本分片,f1-back,f2-back,f3-back,總共6個分片。

2、集群部署

1、分片肯定以為著es的集群部署,那么怎樣設置分配和副本才能使得集群部署合理呢?
如果我們按照1那樣配置,并且只有一臺機器ES分片副本設置及集群部署
集群健康值:yellow( 3 of 6 ):表示當前集群的全部主分片都正常運行,但是副本分片沒有全部處在正常狀態(tài)。
在同一個節(jié)點上既保存原始數(shù)據(jù)又保存副本是沒有意義的,因為一旦失去了那個節(jié)點,我們也將丟失該節(jié)點 上的所有副本數(shù)據(jù)。
雖然當前集群是正常運行的,但存在丟失數(shù)據(jù)的風險。
2、當我們有3臺服務器,并且在每個啟動的es都配置文件中都完成了集群監(jiān)聽配置

#在節(jié)點1配置節(jié)點2和3的地址
discovery.seed_hosts: ["localhost:9302", "localhost:9303"]

ES分片副本設置及集群部署
集群健康值:green( 3 of 6 ):表示所有 6 個分片(包括 3 個主分片和 3 個副本分片)都在正常運行。

邊框加粗的是主分片,沒加粗的是副本分片,從中我們也可以看出es自動分片并沒有強迫癥,但是卻嚴格遵守水平擴容,以及故障轉移的配置規(guī)格,但節(jié)點一掛了(服務器node-1),此時,副本0(node-2)副本1(node-3)會通過選舉成為主分片,保證了索引的正常運行。

三、路由計算

當索引一個文檔的時候,文檔會被存儲到一個主分片中。 Elasticsearch 如何知道一個文檔應該存放到哪個分片中呢?當我們創(chuàng)建文檔時,它如何決定這個文檔應當被存儲在分片 1 還是分片 2 中呢?首先這肯定不會是隨機的,否則將來要獲取文檔的時候我們就不知道從何處尋找了。實際上,這個過程是根據(jù)下面這個公式?jīng)Q定的:

shard = hash(routing) % number_of_primary_shards

四、集群中es的數(shù)據(jù)增刪改查操作流程

1、數(shù)據(jù)寫流程(增、刪)

新建、刪除請求都是寫操作, 必須在主分片上面完成之后才能被復制到相關的副本分片。ES分片副本設置及集群部署
當刪除某個數(shù)據(jù)時,es并不會直接物理刪除,而是將原文檔的數(shù)據(jù)標記為刪除,然后重新寫入新的文檔數(shù)據(jù),被標記刪除的文檔數(shù)據(jù),會有一定的策略進行統(tǒng)一收集再真正進行物理刪除操作

2、更新流程 & 批量操作(改)

更新一個文檔的部分數(shù)據(jù)

  1. 客戶端向Node 1發(fā)送更新請求。
  2. 它將請求轉發(fā)到主分片所在的Node 3 。
  3. Node3從主分片檢索文檔,修改_source字段中的JSON,并且嘗試重新索引主分片的文檔。如果文檔已經(jīng)被另一個進程修改,它會重試步驟3,超過retry_on_conflict次后放棄。
  4. 如果 Node 3成功地更新文檔,它將新版本的文檔并行轉發(fā)到Node 1和 Node2上的副本分片,重新建立索引。一旦所有副本分片都返回成功,Node 3向協(xié)調節(jié)點也返回成功,協(xié)調節(jié)點向客戶端返回成功。

當主分片把更改轉發(fā)到副本分片時, 它不會轉發(fā)更新請求。 相反,它轉發(fā)完整文檔的新版本。請記住,這些更改將會異步轉發(fā)到副本分片,并且不能保證它們以發(fā)送它們相同的順序到達。 如果 Elasticsearch 僅轉發(fā)更改請求,則可能以錯誤的順序應用更改,導致得到損壞的文檔。

3、數(shù)據(jù)讀流程(查)

五、優(yōu)化

1、減少 Refresh 的次數(shù)

Lucene 在新增數(shù)據(jù)時,采用了延遲寫入的策略,默認情況下索引的refresh_interval 為1 秒。

Lucene 將待寫入的數(shù)據(jù)先寫到內(nèi)存中,超過 1 秒(默認)時就會觸發(fā)一次 Refresh,然后 Refresh 會把內(nèi)存中的的數(shù)據(jù)刷新到操作系統(tǒng)的文件緩存系統(tǒng)中。

如果我們對搜索的實效性要求不高,可以將 Refresh 周期延長,例如 30 秒。

這樣還可以有效地減少段刷新次數(shù),但這同時意味著需要消耗更多的 Heap 內(nèi)存。

2、加大 Flush 設置

Flush 的主要目的是把文件緩存系統(tǒng)中的段持久化到硬盤,當 Translog 的數(shù)據(jù)量達到 512MB 或者 30 分鐘時,會觸發(fā)一次 Flush。

index.translog.flush_threshold_size 參數(shù)的默認值是 512MB,我們進行修改。

增加參數(shù)值意味著文件緩存系統(tǒng)中可能需要存儲更多的數(shù)據(jù),所以我們需要為操作系統(tǒng)的文件緩存系統(tǒng)留下足夠的空間。

3、減少副本的數(shù)量

ES 為了保證集群的可用性,提供了 Replicas(副本)支持,然而每個副本也會執(zhí)行分析、索引及可能的合并過程,所以 Replicas 的數(shù)量會嚴重影響寫索引的效率。

當寫索引時,需要把寫入的數(shù)據(jù)都同步到副本節(jié)點,副本節(jié)點越多,寫索引的效率就越慢。

如果我們需要大批量進行寫入操作,可以先禁止Replica復制,設置
index.number_of_replicas: 0 關閉副本。在寫入完成后, Replica 修改回正常的狀態(tài)。文章來源地址http://www.zghlxwxcb.cn/news/detail-402491.html

到了這里,關于ES分片副本設置及集群部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • ES分片和副本

    ES分片和副本

    通過該圖, 記住下面的幾個定義: 集群(cluster):由一個或多個節(jié)點組成, 并通過集群名稱與其他集群進行區(qū)分 es集群一般有幾個master 一個 “ ? 一個正常es集群中只有一個主節(jié)點(Master),主節(jié)點負責管理整個集群。 節(jié)點(node):單個ElasticSearch實例. 通常一個節(jié)點運行在一個隔離的容器

    2024年02月09日
    瀏覽(21)
  • ES更改默認分片數(shù)量及副本

    ES更改默認分片數(shù)量及副本

    ES更改默認分片數(shù)量及副本 KIBANA方式 POST _template/default_template { \\\"index_patterns\\\": [ \\\"*\\\" ], \\\"settings\\\": { \\\"number_of_shards\\\": 3, \\\"number_of_replicas\\\": 1 } } *代表所有索引 POST _template/microsvclog_template { \\\"index_patterns\\\": [ \\\"*microsvclog*\\\" ], \\\"settings\\\": { \\\"number_of_shards\\\": 3, \\\"number_of_replicas\\\": 1 } }

    2024年02月08日
    瀏覽(17)
  • ElasticSearch的集群、節(jié)點、索引、分片和副本

    ElasticSearch的集群、節(jié)點、索引、分片和副本

    Elasticsearch是面向文檔型數(shù)據(jù)庫,一條數(shù)據(jù)在這里就是一個文檔。為了方便大家理解,我們將Elasticsearch里存儲文檔數(shù)據(jù)和關系型數(shù)據(jù)庫MySQL存儲數(shù)據(jù)的概念進行一個類比 ES里的Index可以看做一個庫,而Types相當于表,Documents則相當于表的行。 這里Types的概念已經(jīng)被逐漸弱化,E

    2024年02月02日
    瀏覽(27)
  • ClickHouse高可用集群分片-副本實操(四)

    ClickHouse高可用集群分片-副本實操(四)

    目錄 一、ClickHouse高可用之ReplicatedMergeTree引擎 二、?ClickHouse高可用架構準備-環(huán)境說明和ZK搭建 ?三、高可用集群架構-ClickHouse副本配置實操 四、ClickHouse高可用集群架構分片 4.1?ClickHouse高可用架構之兩分片實操 ?4.2?ClickHouse高可用架構之兩分片建表實操 什么是CK的副本引擎

    2023年04月20日
    瀏覽(22)
  • Elasticsearch 的節(jié)點、集群、分片和副本 全面解析

    節(jié)點是 Elasticsearch 實例的運行實例,即一個獨立的 Elasticsearch 服務進程。每個節(jié)點都是一個獨立的工作單元,負責存儲數(shù)據(jù)、參與數(shù)據(jù)處理(如索引、搜索、聚合等)以及參與集群的協(xié)調工作。節(jié)點可以在物理或虛擬機上單獨部署,也可以在同一臺機器上運行多個節(jié)點(但需

    2024年04月27日
    瀏覽(33)
  • 04_手工畫圖剖析Elasticsearch核心概念:NRT、索引、分片、副本等

    2.elasticsearch的核心概念 (1)Near Realtime (NRT):近實時, 從寫入數(shù)據(jù)到數(shù)據(jù)可以被搜索到有一個小延遲(大概1秒);基于es執(zhí)行搜索和分析可以達到秒級 (2) cluster集群:包括多個節(jié)點, 每個節(jié)點屬于哪個集群是通過一個配置(集群名稱,默認是elasticsearch)來決定的, 對于中小型

    2024年02月09日
    瀏覽(27)
  • 【MongoDB】集群搭建實戰(zhàn) | 副本集 Replica-Set | 分片集群 Shard-Cluster | 安全認證

    【MongoDB】集群搭建實戰(zhàn) | 副本集 Replica-Set | 分片集群 Shard-Cluster | 安全認證

    副本集 MongoDB副本集(Replica Set)是一組維護相同數(shù)據(jù)集的 MongoDB 實例,它可以提供數(shù)據(jù)的冗余和高可用性。 副本集由一個主節(jié)點(Primary)和多個從節(jié)點(Secondary)組成。 客戶端所有寫操作都會發(fā)送到主節(jié)點,主節(jié)點會記錄oplog,然后將寫操作同步到從節(jié)點。 從節(jié)點可以進行

    2024年02月05日
    瀏覽(24)
  • CentOS 8自動化安裝MongoDB并安裝和實驗master-slave集群、副本集群(Replica Set)、分片集群(Sharding)

    CentOS 8自動化安裝MongoDB并安裝和實驗master-slave集群、副本集群(Replica Set)、分片集群(Sharding)

    注意實驗使用的是ARM架構的CentOS 8 虛擬機 首先,更新系統(tǒng)并安裝必要的依賴項: 添加 MongoDB 官方倉庫: 創(chuàng)建一個新的倉庫文件 /etc/yum.repos.d/mongodb-org.repo : 將以下內(nèi)容添加到文件中,保存并退出: 使用nano編輯器打開/etc/yum.repos.d/mongodb-org.repo文件后,按下 Ctrl + X 組合鍵退出

    2023年04月22日
    瀏覽(20)
  • 【elasticsearch】修改es集群的索引副本數(shù)量

    最近海外es集群進行調整,從3節(jié)點變成了單節(jié)點。所以需要將集群模式改為單點模式,并需要將es 集群的全部索引副本個數(shù)改為0,不然會有很多未分配的分片,導致集群狀態(tài)為 yellow 。 1. 先將現(xiàn)有的index的副本數(shù)量為0個 此步驟是為了解決現(xiàn)有的索引副本數(shù)。 2. 創(chuàng)建模板匹配

    2024年02月11日
    瀏覽(20)
  • elasticsearch修改es集群的索引副本數(shù)量

    最近es集群進行調整,從2節(jié)點變成了單節(jié)點。所以需要將集群模式改為單點模式,并需要將es 集群的全部索引副本個數(shù)改為0,不然會有很多未分配的分片,導致集群狀態(tài)為 yellow。 1. 先將現(xiàn)有的index的副本數(shù)量為0個 此步驟是為了解決現(xiàn)有的索引副本數(shù)。 2. 創(chuàng)建模板匹配所有

    2024年02月08日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包