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

【Elasticsearch管理】分片分配

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

索引級分片分配

分片分配過濾

可以在啟動時為每個節(jié)點分配任意的元數(shù)據(jù)屬性。例如,可以給節(jié)點分配機架和size屬性

bin/elasticsearch -Enode.attr.rack=rack1 -Enode.attr.size=big  

也可以在 elasticsearch.yml配置文件中設(shè)置

這些元數(shù)據(jù)屬性可以與index.routing.allocation.* 一起使用,為特定節(jié)點組分配索引的設(shè)置。

例如,我們可以將索引測試移動到大節(jié)點或中節(jié)點:

PUT test/_settings
{
  "index.routing.allocation.include.size": "big,medium"
}

或者,我們可以使用exclude規(guī)則將索引test遠(yuǎn)離small節(jié)點:

PUT test/_settings
{
  "index.routing.allocation.exclude.size": "small"
}

可以指定多個規(guī)則,在這種情況下,必須滿足所有條件。例如,我們可以將索引test移動到rack1中的big節(jié)點,操作如下:

PUT test/_settings
{
  "index.routing.allocation.include.size": "big",
  "index.routing.allocation.include.rack": "rack1"
}

如果某些條件不能滿足,那么分片將不會被移動。

以下設(shè)置是動態(tài)的,允許活動索引從一組節(jié)點移動到另一組節(jié)點:

index.routing.allocation.include.{attribute}
將索引分配給{attribute}至少有一個逗號分隔值的節(jié)點。

index.routing.allocation.require.{attribute} 
將索引分配給{attribute}具有所有逗號分隔值的節(jié)點。

index.routing.allocation.exclude.{attribute} 
將索引分配給{attribute}不包含逗號分隔值的節(jié)點。


{attribute}屬性值支持:_name _host_ip _publish_ip ip _host 

支持通配符

PUT test/_settings
{
  "index.routing.allocation.include._ip": "192.168.2.*"
}

節(jié)點下線時的延遲分配

當(dāng)一個節(jié)點出于任何原因離開集群時,master 的反應(yīng):

  • 將replica 分片提升為primary ,以替換節(jié)點上的任何primaries 。
  • 分配replica 分片以替換丟失的副本(假設(shè)有足夠的節(jié)點)。
  • 在剩余節(jié)點之間均勻地重新平衡分片。

通過確保盡快完全復(fù)制每個分片,這些操作旨在保護(hù)集群免受數(shù)據(jù)丟失。

盡管我們在節(jié)點級和集群級都限制了并發(fā)恢復(fù),但這種“分片轉(zhuǎn)移”仍然會給集群增加大量額外的負(fù)載,如果丟失的節(jié)點可能很快就會返回,這可能是不必要的。設(shè)想一下這樣的情景:

  1. 節(jié)點5失去了網(wǎng)絡(luò)連接。
  2. 對于節(jié)點5上的每個primary ,master 將一個replica 分片提升為primary 。
  3. master 將新的副本分配給集群中的其他節(jié)點。
  4. 每個新replica 在網(wǎng)絡(luò)上生成primary 分片的整個副本。
  5. 將更多的分片移動到不同的節(jié)點以重新平衡集群。
  6. 節(jié)點5在幾分鐘后返回。
  7. 主服務(wù)器通過向節(jié)點5分配分片來重新平衡集群。

如果master 只等待了幾分鐘,那么丟失的分片就可以被重新分配到節(jié)點5,并且具有最小的網(wǎng)絡(luò)流量。對于已經(jīng)自動同步刷新的空閑分片(沒有接收索引請求的分片),這個過程會更快。

由于一個節(jié)點已經(jīng)離開而沒有分配的復(fù)制分片的分配可以通過index.unassigned.node_left.delayed_timeout動態(tài)設(shè)置延遲,默認(rèn)為1m。

PUT _all/_settings
{
  "settings": {
    "index.unassigned.node_left.delayed_timeout": "5m"
  }
}

//立即進(jìn)行重新分配
PUT _all/_settings
{
  "settings": {
    "index.unassigned.node_left.delayed_timeout": "0"
  }
}

啟用延遲分配后,上面的場景變?yōu)槿缦滤?

  1. 節(jié)點5失去了網(wǎng)絡(luò)連接。
  2. 對于節(jié)點5上的每個primary ,master 將一個replica分片提升到primary 。
  3. master會記錄一條消息,說明未分配分片的分配已經(jīng)被延遲,以及延遲了多長時間。
  4. 集群仍然是黃色的,因為有未分配的副本分片。
  5. 節(jié)點5在超時結(jié)束前幾分鐘返回。
  6. 丟失的副本被重新分配到節(jié)點5(同步刷新的分片幾乎立即恢復(fù))。

此設(shè)置不會影響將副本提升到primaries,也不會影響以前未分配的副本的分配。特別是,延遲分配在整個集群重新啟動后不會生效。此外,在master 故障轉(zhuǎn)移情況下,會忘記經(jīng)過的延遲時間(即重置為完整的初始延遲)。

如果延遲分配超時,master 將丟失的分片分配給另一個節(jié)點,該節(jié)點將開始恢復(fù)。如果丟失的節(jié)點重新加入集群,并且它的分片仍然具有與primary相同的同步id,則分片重新定位將被取消,而同步的分片將用于恢復(fù)。

索引恢復(fù)優(yōu)先級

在可能的情況下,將按優(yōu)先級順序恢復(fù)未分配的分片。索引按優(yōu)先次序排列如下:

  • 可選的index.priority設(shè)置(先高后低)
  • 索引創(chuàng)建日期(先高后低)
  • 索引名(先高后低)

這意味著,在默認(rèn)情況下,較新的索引將在較舊的索引之前恢復(fù)。

使用每個索引動態(tài)更新index.priority設(shè)置,用于定制索引優(yōu)先級順序,此設(shè)置接受一個整數(shù),并可以動態(tài)更新,例如:

PUT index_1

PUT index_2

PUT index_3
{
  "settings": {
    "index.priority": 10
  }
}

PUT index_4
{
  "settings": {
    "index.priority": 5
  }
}

在上面的例子中:

  • index_3將首先被恢復(fù),因為它具有最高的index.priority。
  • index_4下一個將被恢復(fù),因為它具有下一個最高優(yōu)先級。
  • 接下來將恢復(fù)index_2,因為它是最近創(chuàng)建的。
  • index_1將最后恢復(fù)。

節(jié)點的總分片數(shù)

集群級分片分配器試圖將單個索引的分片分散到盡可能多的節(jié)點上。然而,根據(jù)您有多少個分片和索引以及它們有多大,可能并不總是能夠均勻地分布分片。

下面的動態(tài)設(shè)置允許您指定一個對每個節(jié)點允許的單個索引的分片總數(shù)的硬限制:

index.routing.allocation.total_shards_per_node 
將分配給單個節(jié)點的最大分片數(shù)(副本和主節(jié)點)。默認(rèn)為無限。

您還可以限制一個節(jié)點可以擁有的分片的數(shù)量,而不考慮索引:

cluster.routing.allocation.total_shards_per_node 
全局分配給單個節(jié)點的最大分片數(shù)(副本和主節(jié)點)。默認(rèn)值為unbounded(-1)。

這些設(shè)置施加了硬限制,這可能導(dǎo)致一些分片沒有被分配。謹(jǐn)慎使用。

集群級分片分配策略

Shard Allocation是向節(jié)點分配分片的過程??赡馨l(fā)生在初始恢復(fù)、副本分配、重新平衡或添加或刪除節(jié)點時。

master的主要角色之一是決定將哪些分片分配給哪些節(jié)點,以及何時在節(jié)點之間移動分片以重新平衡集群。

有許多設(shè)置可用來控制分片分配過程:

  • 集群級分片分配列出了控制分配和重新平衡操作的設(shè)置。

  • 基于磁盤的分片分配解釋了Elasticsearch如何考慮可用磁盤空間和相關(guān)設(shè)置。

  • 分片分配感知和強制感知控制如何跨不同機架或可用性區(qū)域分布分片。

  • 分片分配過濾允許某些節(jié)點或節(jié)點組被排除在分配之外,以便它們可以退役。

分片分配設(shè)置

cluster.routing.allocation.enable 

啟用或禁用特定類型的分片分配:
all -(默認(rèn))允許為所有類型的分片分配分片。
primaries ——只允許為主分片分配分片。
new_primary—只允許對新索引的主分片進(jìn)行分片分配。
none—對于任何索引都不允許任何類型的分片分配。

當(dāng)重新啟動節(jié)點時,此設(shè)置不影響本地主分片的恢復(fù)。擁有未分配主分片副本的重新啟動節(jié)點將立即恢復(fù)該主分片,假設(shè)其分配id與集群狀態(tài)中的一個活動分配id匹配。

其他參數(shù):

cluster.routing.allocation.node_concurrent_incoming_recoveries 
在一個節(jié)點上允許發(fā)生多少個并發(fā)傳入分片恢復(fù)。傳入恢復(fù)是指在節(jié)點上分配目標(biāo)分片(很可能是副本,除非分片被重新定位)的恢復(fù)。默認(rèn)為2。

cluster.routing.allocation.node_concurrent_outgoing_recoveries 
在一個節(jié)點上允許發(fā)生多少并發(fā)傳出分片恢復(fù)。傳出恢復(fù)是指在節(jié)點上分配源分片(很可能是主分片,除非分片被重新定位)的恢復(fù)。默認(rèn)為2。

cluster.routing.allocation.node_concurrent_recoveries 
設(shè)置以上兩個值的快捷方式

cluster.routing.allocation.node_initial_primaries_recoveries 
雖然通過網(wǎng)絡(luò)恢復(fù)副本,但在節(jié)點重啟后恢復(fù)未分配的primary將使用來自本地磁盤的數(shù)據(jù)。這些操作應(yīng)該很快,這樣更多的初始primary恢復(fù)就可以在同一個節(jié)點上并行進(jìn)行。默認(rèn)為4。

cluster.routing.allocation.same_shard.host 
允許執(zhí)行檢查,以防止基于主機名和主機地址在一臺主機上分配同一個shard的多個實例。默認(rèn)值為false,表示默認(rèn)情況下不執(zhí)行檢查。此設(shè)置僅適用于在同一臺機器上啟動多個節(jié)點的情況。

分片平衡設(shè)置

以下動態(tài)設(shè)置可用于控制跨集群的分片重新平衡:

cluster.routing.rebalance.enable 
	為特定類型的分片啟用或禁用重新平衡:

	all -(默認(rèn))允許對所有類型的分片進(jìn)行分片平衡。
	primaries ——只允許主分片進(jìn)行分片平衡。
	replicas -只允許副本分片平衡。
	none -任何索引都不允許任何類型的分片平衡。

cluster.routing.allocation.allow_rebalance 
	指定何時允許分片再平衡:

	always 
	indices_primaries_active   僅當(dāng)集群中的所有primaries都已分配。
	indices_all_active   (默認(rèn))僅當(dāng)集群中的所有分片(主分片和副本)都已分配。

cluster.routing.allocation.cluster_concurrent_rebalance 

允許控制集群范圍內(nèi)允許多少并發(fā)分片重平衡。默認(rèn)為2。
注意,此設(shè)置僅控制由于集群中不平衡而導(dǎo)致的并發(fā)分片重定位的數(shù)量。此設(shè)置不限制由于 allocation filtering或forced awareness而導(dǎo)致的分片重定位。

分片平衡因子

以下設(shè)置共同確定將每個分片放置在何處。當(dāng)沒有允許的重新平衡操作使任何節(jié)點的權(quán)重更接近任何其他節(jié)點的權(quán)重超過balance.threshold時,集群即達(dá)到平衡。

cluster.routing.allocation.balance.shard 
定義在節(jié)點上分配的分片總數(shù)的權(quán)重因子(浮點數(shù))。默認(rèn)為0.45f。提高這個值會導(dǎo)致集群中所有節(jié)點上的分片數(shù)量趨于均衡。

cluster.routing.allocation.balance.index 
定義在特定節(jié)點上分配的每個索引的分片數(shù)的權(quán)重因子(浮點數(shù))。默認(rèn)為0.55f。提高這個值會導(dǎo)致集群中所有節(jié)點的每個索引的分片數(shù)趨于相等。

cluster.routing.allocation.balance.threshold 
應(yīng)該執(zhí)行的操作的最小優(yōu)化值(非負(fù)浮點數(shù))。默認(rèn)為1.0f。提高這個值將導(dǎo)致集群在優(yōu)化分片平衡方面不那么積極。

無論平衡算法的結(jié)果如何,由于forced awareness或 allocation filtering導(dǎo)致的操作都不允許再平衡。

基于磁盤的分片分配策略

Elasticsearch會考慮節(jié)點上的可用磁盤空間,然后再決定是將新分片分配給該節(jié)點,還是主動將分片從該節(jié)點重新定位。

cluster.routing.allocation.disk.threshold_enabled  
	(動態(tài))默認(rèn)為true。若設(shè)置為false,則禁用磁盤分配決定器。
cluster.routing.allocation.disk.watermark.low  
	(動態(tài))磁盤水位線,不使用超過該水位線的空間,默認(rèn)是85%,也可以設(shè)置值(500m)。此設(shè)置對新創(chuàng)建的索引的主分片沒有影響,特別是對以前從未分配過的分片沒有影響。
cluster.routing.allocation.disk.watermark.high  
	(動態(tài))磁盤高水位線,超過該水位線的分片將重新定位。此設(shè)置將影響所有分片的分配,無論之前是否分配。
cluster.routing.allocation.disk.watermark.enable_for_single_data_node 
	(靜態(tài))默認(rèn)是單節(jié)點中忽略磁盤水位線,設(shè)置為true,啟用該設(shè)置
cluster.routing.allocation.disk.watermark.flood_stage  
	(靜態(tài))最高水位線,默認(rèn)值95%,強制使索引變?yōu)橹蛔x索引塊(index.blocks.read_only_allow_delete),禁止任何的寫入請求。這是為了防止耗盡單機磁盤容量的最后手段。這是防止節(jié)點耗盡磁盤空間的最后一種手段。一旦有足夠的可用磁盤空間允許索引操作繼續(xù),就必須手動釋放索引塊。

cluster.info.update.interval 
	(動態(tài))節(jié)點磁盤檢查頻率,默認(rèn)30s

不能在這些設(shè)置中混合使用百分比值和字節(jié)值。要么全部設(shè)置為百分比值,要么全部設(shè)置為字節(jié)值。這樣我們就可以驗證設(shè)置在內(nèi)部是否一致(即,低磁盤閾值不超過高磁盤閾值,而高磁盤閾值不超過泛濫階段閾值)。

重置只讀索引塊:

PUT /twitter/_settings
{
  "index.blocks.read_only_allow_delete": null
}

舉個栗子:

PUT _cluster/settings
{
  "transient": {
    "cluster.routing.allocation.disk.watermark.low": "100gb",
    "cluster.routing.allocation.disk.watermark.high": "50gb",
    "cluster.routing.allocation.disk.watermark.flood_stage": "10gb",
    "cluster.info.update.interval": "1m"
  }
}

百分比值指的是已使用的磁盤空間,而字節(jié)值指的是空閑磁盤空間。這可能會令人困惑,因為它顛倒了high和low的含義。例如,將低水印設(shè)置為10gb,將高水印設(shè)置為5gb是合理的,但反之則不然。

其他設(shè)置

cluster.routing.allocation.disk.include_relocations 
默認(rèn)為true,這意味著Elasticsearch在計算節(jié)點的磁盤使用情況時將考慮當(dāng)前正在重定位到目標(biāo)節(jié)點的分片。 但是,考慮到重定位分片的大小,可能意味著在高端方面錯誤地估計了節(jié)點的磁盤使用情況,因為重定位可能已完成90%,并且最近檢索到的磁盤使用情況將包括重定位分片的總大小。 以及正在運行的重定位已使用的空間。

分片自動感知

多個vm上運行節(jié)點時,在相同的物理服務(wù)器上,在多個機架,或跨多個區(qū)域或領(lǐng)域,更有可能是兩個節(jié)點在同一物理服務(wù)器上,在同一架,或在同一區(qū)域或域會崩潰在同一時間,而不是兩個無關(guān)的節(jié)點同時崩潰。

如果Elasticsearch了解硬件的物理配置,它可以確保主分片及其復(fù)制分片分散在不同的物理服務(wù)器、機架或區(qū)域,從而最大限度地降低同時丟失所有分片副本的風(fēng)險。

分片分配感知設(shè)置允許您告訴Elasticsearch您的硬件配置。

例如,假設(shè)我們有幾個機架。當(dāng)我們啟動一個節(jié)點時,我們可以通過給它分配一個名為rack_id的任意元數(shù)據(jù)屬性來告訴它它在哪個機架上——我們可以使用任何屬性名稱。例如:

./bin/elasticsearch -Enode.attr.rack_id=rack_one 
也可以在elasticsearch.yml 設(shè)置

自動感知屬性

cluster.routing.allocation.awareness.attributes: rack_id

有了這個配置之后,我們假設(shè)用node.attr.rack_id:rack_one啟動兩個節(jié)點,然后創(chuàng)建一個包含5個主分片和每個主分片1個副本的索引。在這兩個節(jié)點上分配所有的主節(jié)點和副本。

現(xiàn)在,如果我們用node.attr.rack_id:rack_two再啟動兩個節(jié)點, Elasticsearch將把分片移動到新節(jié)點,確保(如果可能)同一分片的兩個副本不會出現(xiàn)在同一機架上。然而,如果rack_two失敗,關(guān)閉了它的兩個節(jié)點,Elasticsearch仍然會將丟失的分片副本分配給rack_one中的節(jié)點。

當(dāng)執(zhí)行搜索或獲取請求時,啟用了分片感知,Elasticsearch將傾向于使用本地分片(同一感知組中的分片)來執(zhí)行請求。這通常比跨機架或跨區(qū)域邊界更快。

//設(shè)置節(jié)點的自動感知屬性
node.attr.rack_id: rack_one
cluster.routing.allocation.awareness.attributes: rack_id

自動感知同一網(wǎng)段、同一機架、同一機房的物理機,最大限度的動態(tài)分配分片位置。則集群分片只在這個兩個節(jié)點之間復(fù)制。

混合感知

可以指定多個感知屬性,在這種情況下,在決定將分片分配到何處時,將分別考慮每個屬性。

cluster.routing.allocation.awareness.attributes: rack_id,zone

在使用感知屬性時,將不會將分片分配給沒有為這些屬性設(shè)置值的節(jié)點。

在具有相同感知屬性值的特定節(jié)點組上分配的分片的主/副本數(shù)量由屬性值的數(shù)量決定。當(dāng)組中的節(jié)點數(shù)量不平衡,并且有許多副本時,可能會留下未分配的副本分片。

強制感知

假設(shè)您有兩個區(qū)域,這兩個區(qū)域上有足夠的硬件來承載所有的主分片和復(fù)制分片。但是,一個區(qū)域中的硬件,雖然足以承載一半的分片,但可能無法承載所有的分片。

在一般情況下,如果一個區(qū)域與另一個區(qū)域失去聯(lián)系,Elasticsearch將把所有丟失的復(fù)制分片分配到一個區(qū)域。但是在本例中,這種突然的額外負(fù)載會導(dǎo)致剩余區(qū)域中的硬件過載。

強制感知通過不允許將同一分片的副本分配到同一區(qū)域來解決這個問題。

例如,假設(shè)我們有一個名為zone的感知屬性,并且我們知道我們將有兩個區(qū)域,zone1和zone2。下面是我們?nèi)绾螐娭聘兄粋€節(jié)點:

cluster.routing.allocation.awareness.force.zone.values: zone1,zone2 
cluster.routing.allocation.awareness.attributes: zone
我們必須列出區(qū)域?qū)傩钥赡軗碛械乃兄怠?

現(xiàn)在,如果我們用 node.attr.zone:zone1開始兩個節(jié)點,并創(chuàng)建具有5個分片和1個副本的索引。將創(chuàng)建索引,但只分配5個主分片(不分配副本)。只有當(dāng)我們使用node.attr.zone:zone2啟動更多節(jié)點時將分配副本。

分片分配過濾器

索引分片分配提供了每個索引的設(shè)置來控制對節(jié)點的分片分配,而集群級分片分配過濾允許您允許或不允許從任何索引向特定節(jié)點分配分片。

屬性設(shè)置

cluster.routing.allocation.include.{attribute} 
將分片分配給{attribute}至少有一個逗號分隔值的節(jié)點。

cluster.routing.allocation.require.{attribute} 
僅將分片分配給{attribute}具有所有逗號分隔值的節(jié)點。

cluster.routing.allocation.exclude.{attribute} 
不要為{attribute}具有任何逗號分隔值的節(jié)點分配分片。

{attribute}屬性值:_name  _ip   _host 

節(jié)點退役

集群范圍的分片分配篩選的典型用例是當(dāng)您想要退役一個節(jié)點,并且您想要在關(guān)閉該節(jié)點之前將分片從該節(jié)點移動到集群中的其他節(jié)點。

PUT _cluster/settings
{
  "transient" : {
    "cluster.routing.allocation.exclude._ip" : "10.0.0.1"
  }
}

只有在不破壞另一個路由約束的情況下,如永遠(yuǎn)不將主分片和復(fù)制分片分配給同一個節(jié)點,分片才會被重新分配。

雜項設(shè)置

元數(shù)據(jù)設(shè)置

cluster.blocks.read_only 
	(動態(tài))設(shè)置整個集群只讀
cluster.blocks.read_only_allow_delete 
	(動態(tài))集群只讀,可以刪除

不要依賴此設(shè)置來防止對集群的更改。任何能夠訪問集群更新設(shè)置API的用戶都可以再次對集群進(jìn)行讀寫操作。

索引設(shè)置

PUT /my-index-000001/_settings
{
  "index.blocks.read_only_allow_delete": null
}

集群分片限制

在Elasticsearch 7.0及以后版本中,將根據(jù)集群中的節(jié)點數(shù)量對集群中的分片數(shù)量進(jìn)行軟限制。這樣做的目的是防止可能無意中破壞集群穩(wěn)定的操作。在7.0之前,會導(dǎo)致集群超過限制的操作將發(fā)出棄用警告。

如果集群已經(jīng)超過極限,由于在節(jié)點加入或環(huán)境變化,所有操作,創(chuàng)建或打開指數(shù)將發(fā)出警告,直到增加如下所述的極限,或一些指數(shù)已經(jīng)關(guān)閉或刪除分片下面的數(shù)量限制。

如果創(chuàng)建新索引、恢復(fù)索引快照或打開已關(guān)閉索引等操作將導(dǎo)致集群中的分片數(shù)量超過此限制,該操作將發(fā)出棄用警告。

副本會達(dá)到這個限制,但是關(guān)閉的索引不會。包含5個主分片和2個副本的索引將被計算為15個分片。任何關(guān)閉的索引都被計數(shù)為0,無論它包含多少個分片和副本。

默認(rèn)限制為每個節(jié)點1000個分片,可以使用以下屬性動態(tài)調(diào)整:

cluster.max_shards_per_node 
	(動態(tài))控制每個data node的最大分片數(shù)量

例如,具有默認(rèn)設(shè)置的3節(jié)點集群將允許跨所有打開的索引共3000個shard。如果將上述設(shè)置更改為1,500,那么集群總共將允許4,500個分片。

當(dāng)超過單節(jié)點所能容納的最大分片數(shù)量的上限值時

PUT test/_doc/1
{
  "message":"test"
}

會發(fā)出軟警告,該警告并不會讓你的操作無效,具體的機器可以承載的分片數(shù)仍然視機器性能而定,并不做強制限制

#! Deprecation: In a future major version, this request will fail because this action would add [10] total shards, but this cluster currently has [1303]/[1000] maximum shards open. Before upgrading, reduce the number of shards in your cluster or adjust the cluster setting [cluster.max_shards_per_node].

自定義集群元數(shù)據(jù)

用戶定義的元數(shù)據(jù)可以使用集群設(shè)置API存儲和檢索。這可以用于存儲關(guān)于集群的不經(jīng)常更改的任意數(shù)據(jù),而不需要創(chuàng)建索引來存儲這些數(shù)據(jù)。此數(shù)據(jù)可以使用任何前綴為cluster.metadata的鍵存儲。例如,將集群管理員的電子郵件地址存儲在密鑰cluster.metadata.administrator下,發(fā)出此請求:

PUT /_cluster/settings
{
  "persistent": {
    "cluster.metadata.administrator": "sysadmin@example.com"
  }
}

用戶定義的集群元數(shù)據(jù)不用于存儲敏感或機密信息。任何存儲在用戶定義的集群元數(shù)據(jù)中的信息都可以被任何訪問集群Get Settings API的人看到,并記錄在Elasticsearch日志中。

Index tombstone

集群狀態(tài)維護(hù)索引tombstone以顯式地表示已刪除的索引。集群狀態(tài)下維護(hù)的tombstone數(shù)量由以下屬性控制,不能動態(tài)更新:

cluster.indices.tombstones.size 

當(dāng)刪除發(fā)生時,索引tombstone防止不屬于集群的節(jié)點加入集群并重新導(dǎo)入索引,就像刪除從未發(fā)出過一樣。為了防止集群狀態(tài)變得過大,我們只保留最后的cluster.indices.tombstones.size刪除,默認(rèn)值為500。如果您希望集群中沒有節(jié)點并且遺漏超過500個刪除操作,那么可以增加這個值。我們認(rèn)為這是罕見的,因此默認(rèn)。tombstones不會占用太多空間,但我們也認(rèn)為像5萬這樣的數(shù)字可能太大了。

日志

PUT /_cluster/settings
{
  "transient": {
    "logger.org.elasticsearch.indices.recovery": "DEBUG"
  }
}

持久任務(wù)

插件可以創(chuàng)建一種稱為持久任務(wù)的任務(wù)。這些任務(wù)通常是長期存在的任務(wù),并以集群狀態(tài)存儲,從而允許在整個集群重新啟動后恢復(fù)這些任務(wù)。

每次創(chuàng)建持久任務(wù)時,主節(jié)點負(fù)責(zé)將任務(wù)分配給集群的一個節(jié)點,然后被分配的節(jié)點將挑選任務(wù)并在本地執(zhí)行。為節(jié)點分配持久任務(wù)的過程由以下屬性控制,可以動態(tài)更新:

cluster.persistent_tasks.allocation.enable 
啟用或禁用持久任務(wù)分配:
	all (default)允許將持久任務(wù)分配給節(jié)點
	none	對于任何類型的持久任務(wù)都不允許分配

此設(shè)置不會影響正在執(zhí)行的持久任務(wù)。只有新創(chuàng)建的持久任務(wù)或必須重新分配的任務(wù)(例如,在節(jié)點離開集群之后)才會受到此設(shè)置的影響。文章來源地址http://www.zghlxwxcb.cn/news/detail-837485.html

到了這里,關(guān)于【Elasticsearch管理】分片分配的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 記錄ElasticSearch分片被鎖定導(dǎo)致無法分配處理過程

    本篇文章記錄最近ES做節(jié)點替換, 從shard 遷移過程中被鎖定導(dǎo)致無法分配, 主shard正常 ,希望可以幫助其它人 failed to create shard,failed to obtain in-memory shard lock,ShardLockObtainFailedException 這次遇到的問題比較特殊,嘗試過以下幾種手段都沒有恢復(fù): _cluster/reroute手動分片shard 由于

    2024年02月05日
    瀏覽(58)
  • Elasticsearch基礎(chǔ)篇(七):分片大小修改和路由分配規(guī)則

    Elasticsearch基礎(chǔ)篇(七):分片大小修改和路由分配規(guī)則

    在Elasticsearch中,分片是對索引數(shù)據(jù)的水平劃分和分布。索引被分成多個分片,每個分片可以在集群的不同節(jié)點上存儲。這種分片的設(shè)計提供了一種水平擴展的能力,允許將大量數(shù)據(jù)分布到多個節(jié)點上,從而提高性能和可伸縮性。每個分片就是一個Lucene的實例,具有完整的功能

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

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

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

    2024年02月02日
    瀏覽(27)
  • Elasticsearch 的節(jié)點、集群、分片和副本 全面解析

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

    2024年04月27日
    瀏覽(33)
  • 【elasticsearch】 es狀態(tài)查看節(jié)點分片信息:/_cat/shards

    在kibana查詢: 查詢結(jié)果: index:索引名稱 shard:分片數(shù) prirep:分片類型,p=pri=primary為主分片,r=rep=replicas為復(fù)制分片 state:分片狀態(tài),STARTED為正常分片,INITIALIZING為異常分片 docs:記錄數(shù) store:存儲大小 ip:es節(jié)點ip node:es節(jié)點名稱

    2024年02月11日
    瀏覽(23)
  • elasticSearch核心概念的介紹(十四):ES集群索引分片管理

    elasticSearch核心概念的介紹(十四):ES集群索引分片管理

    上一章節(jié)我們對ES的集群進(jìn)行了搭建,有興趣的朋友可以參考一下elasticSearch核心概念的介紹(十三):docker搭建ES集群 這里我們來介紹了ES集群索引的分片管理 ES集群索引分片管理 介紹 分片(shard):因為ES是個分布式的搜索引擎,所以索引通常都會分解成不同部分,而這些

    2023年04月27日
    瀏覽(24)
  • Elasticsearch的集群與節(jié)點管理

    Elasticsearch是一個分布式、實時的搜索和分析引擎,它可以處理大量數(shù)據(jù)并提供快速、準(zhǔn)確的搜索結(jié)果。在大規(guī)模數(shù)據(jù)處理和搜索場景中,Elasticsearch的集群和節(jié)點管理是非常重要的。本文將深入探討Elasticsearch的集群與節(jié)點管理,涵蓋其核心概念、算法原理、最佳實踐、實際應(yīng)

    2024年02月21日
    瀏覽(43)
  • ElasticSearch集群管理--往集群內(nèi)添加新節(jié)點

    ElasticSearch集群管理--往集群內(nèi)添加新節(jié)點

    本節(jié)描述的集群,都是基于docker對elasticsearch節(jié)點進(jìn)行進(jìn)行管理。 本節(jié)描述elasticsearch基于版本8.5.0 本節(jié)描述的集群部署方式只是用來學(xué)習(xí)和測試,不是為了生產(chǎn)環(huán)境 注意,加入這個參數(shù)-e ES_JAVA_OPTS=“-Xms1g -Xmx1g”,防止添加新容器后,master節(jié)點掛掉 在Kibana監(jiān)控上可以看到已經(jīng)

    2024年02月11日
    瀏覽(17)
  • ElasticSearch實戰(zhàn)--集群管理--向集群中添加新節(jié)點

    基于ElasticSearch版本8.5.0 本文描述的集群部署方式,只用以測試和學(xué)習(xí)使用,不能作為生產(chǎn)環(huán)境 本文描述的集群方式基于docker ElasticSearch文檔

    2024年02月11日
    瀏覽(70)
  • Elasticsearch的集群負(fù)載均衡與分片分片

    Elasticsearch是一個分布式、實時的搜索和分析引擎,它可以處理大量數(shù)據(jù)并提供快速、準(zhǔn)確的搜索結(jié)果。在大規(guī)模應(yīng)用中,Elasticsearch的性能和可用性是關(guān)鍵因素。為了確保高性能和高可用性,Elasticsearch需要實現(xiàn)集群負(fù)載均衡和分片分片。 在本文中,我們將深入探討Elasticsear

    2024年04月25日
    瀏覽(32)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包