Elasticsearch實(shí)踐指南

Elasticsearch實(shí)踐指南http://nginxs.blog.51cto.com/

員工經(jīng)過(guò)長(zhǎng)期磨合與沉淀,具備了協(xié)作精神,得以通過(guò)團(tuán)隊(duì)的力量開(kāi)發(fā)出優(yōu)質(zhì)的產(chǎn)品。創(chuàng)新互聯(lián)公司堅(jiān)持“專(zhuān)注、創(chuàng)新、易用”的產(chǎn)品理念,因?yàn)椤皩?zhuān)注所以專(zhuān)業(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡(jiǎn)單”。公司專(zhuān)注于為企業(yè)提供網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、微信公眾號(hào)開(kāi)發(fā)、電商網(wǎng)站開(kāi)發(fā),重慶小程序開(kāi)發(fā)公司,軟件按需設(shè)計(jì)等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。

   從2014年到現(xiàn)在接觸ESElasticsearch)已經(jīng)兩年多了,感觸良多尤其ES的開(kāi)盒即用特性完全區(qū)別于之前接觸復(fù)雜的hadoop和solor。ES不需要你對(duì)它了解就能很快入門(mén),而且ES的實(shí)時(shí)搜索,自動(dòng)拓展,自愈功能深深吸引我。最近很多朋友也開(kāi)始使用向我問(wèn)了很多常見(jiàn)問(wèn)題,我在這總結(jié)了一些使用中踩過(guò)的坑希望大家對(duì)ES有更多的了解。

簡(jiǎn)介

  Elasticsearch是基于Lucene開(kāi)發(fā)的一個(gè)準(zhǔn)實(shí)時(shí)搜索服務(wù),搜索延時(shí)在秒級(jí)。ES存儲(chǔ)主要通過(guò)自身解析json數(shù)據(jù),然后json里面的key映射為L(zhǎng)ucene里面的字段,使用lucene進(jìn)行搜索和索引。ES不僅支持普通的全文搜索和按詞搜索,還支持模糊匹配,近義詞搜索,聚合,排序,geo等特性。ES的開(kāi)源特性也使得它社區(qū)活躍,版本迭代更新迅速,現(xiàn)在主要分為2.0和5.0兩個(gè)大版本,建議大家使用最新的5.0版本會(huì)更容易升級(jí)和獲取一些更高級(jí)的特性。

下面是一些上線或者線上使用Elasticsearch需要了解的特性

CPU

es主要依賴(lài)于硬盤(pán)和內(nèi)存,所以對(duì)CPU要求不高,一般8核就行,如果并發(fā)比較多可以適當(dāng)增加。

 

硬盤(pán)

    硬盤(pán)決定你es寫(xiě)入讀取數(shù)據(jù)速度,磁盤(pán)建議用15k的機(jī)械硬盤(pán),并配置為raid0,如果集群節(jié)點(diǎn)<5個(gè),請(qǐng)使用raid5,這樣保證一個(gè)硬盤(pán)故障不會(huì)影響服務(wù)。雖然es本身可以通過(guò)分片去保證數(shù)據(jù)的冗余,但是es每個(gè)節(jié)點(diǎn)大量數(shù)據(jù)爬行還是對(duì)較小的集群有一定影響。(土豪直接上SSD,需要正確配置I/O調(diào)度程序,陣列卡建議>h710,否則就像ssd跑車(chē)上安裝一個(gè)拖拉機(jī)引擎)

 

內(nèi)存優(yōu)化

1. ES的內(nèi)存使用分為兩部分ES緩存和Lucene通過(guò)內(nèi)核緩存加速一些數(shù)據(jù)。

2 .如果服務(wù)器內(nèi)存 `nG> 64G`,ES的內(nèi)存盡量設(shè)置低于32G,建議最大31G.因?yàn)閑s使用“內(nèi)存指針壓縮”技術(shù),一旦內(nèi)存內(nèi)存大于32G這項(xiàng)技術(shù)將失效,內(nèi)存有效使用只有原來(lái)的60%~70%。你不必為內(nèi)存浪費(fèi)而擔(dān)心,因?yàn)閘ucene會(huì)通過(guò)系統(tǒng)把一些聚合和排序的數(shù)據(jù)緩存起來(lái)方便你快速查詢(xún)使用。

3.如果服務(wù)器內(nèi)存 `nG <64G`,建議給ES分配 內(nèi)存 (n-2)/2G. 首先2G是給系統(tǒng)預(yù)留,然后es和lucene

4.如果你想繼續(xù)你的實(shí)時(shí)查詢(xún),盡量不要使用swap(交換分區(qū)),建議關(guān)閉系統(tǒng)swap使用

 

網(wǎng)絡(luò)

  1. 建議千兆光纖,高速網(wǎng)絡(luò)可以保證集群節(jié)點(diǎn)故障后快速恢復(fù),以及添加節(jié)點(diǎn)后快速再平衡。

  2. 盡量不要跨機(jī)房,除非需要災(zāi)備,或者有足夠的帶寬,否則你將迎來(lái)es節(jié)點(diǎn)數(shù)據(jù)同步的無(wú)限等待。

 

數(shù)據(jù)文檔結(jié)構(gòu)數(shù)據(jù)

因?yàn)樗衑s節(jié)點(diǎn)需要實(shí)時(shí)同步‘索引列表’,‘文檔類(lèi)型’,‘字段名’等信息,所以在節(jié)點(diǎn)數(shù)固定的情況下索引,字段名等不要太多否則會(huì)給es的master節(jié)點(diǎn)造成壓力。

簡(jiǎn)單舉例:我要保存用戶(hù)提交字段和信息,各個(gè)字段名因?yàn)槭莿?dòng)態(tài)生成,理論上是無(wú)上限的,但是es的master要實(shí)時(shí)的同步這些字段信息到每個(gè)節(jié)點(diǎn),如果現(xiàn)在只有100個(gè)字段還好,要是有1000個(gè)字段就會(huì)產(chǎn)生問(wèn)題,如果有2000個(gè)字段就嚴(yán)重到無(wú)法使用了,當(dāng)然索引的數(shù)量也是同樣的意義,

 

索引優(yōu)化

es的每個(gè)索引默認(rèn)總計(jì)10個(gè)分片,5個(gè)主分片,每個(gè)主分片對(duì)應(yīng)一個(gè)副分片。

1. 當(dāng)然很多情況下這個(gè)無(wú)法滿(mǎn)足你實(shí)際需求,例如你的集群有8個(gè)節(jié)點(diǎn),計(jì)劃單個(gè)索引超過(guò)100億條數(shù)據(jù),為了讓這個(gè)索引查詢(xún)速度快一點(diǎn),你可以增加索引分片數(shù)量:1.增加主副分片對(duì)數(shù),增加副分片的數(shù)量。這樣不僅加速搜索還增加了數(shù)據(jù)的冗余。

2.一些只讀的索引可以使用‘optimize的API’進(jìn)行把每個(gè)索引合并為一個(gè)單獨(dú)數(shù)據(jù)段,這樣可以節(jié)省資源加速操作,但是需要注意這樣會(huì)消耗一定IO,如果當(dāng)前節(jié)點(diǎn)請(qǐng)求繁忙,不要進(jìn)行此類(lèi)操作。

3.在使用索引的時(shí)候盡量使用索引別名,在以后索引重建或者索引名變更時(shí)避免宕機(jī)維護(hù)。

 

操作優(yōu)化

1.并發(fā)請(qǐng)求不要一次太多,否則超過(guò)es內(nèi)部隊(duì)列長(zhǎng)度將失敗。

2.如果一次一定要提交太多任務(wù)寫(xiě)入盡量添加失敗判斷,一旦失敗等待3~5秒重試操作,否則數(shù)據(jù)將丟失。

3.文檔盡量一次寫(xiě)入不要更改和刪除,因?yàn)閑s的更改和刪除只是給舊數(shù)據(jù)做了一個(gè)標(biāo)簽,查詢(xún)的時(shí)候依然會(huì)查詢(xún)匹配,只是不在結(jié)果中計(jì)算。

故障處理

  1. 如果有ES集群?jiǎn)喂?jié)點(diǎn)掉出集群不要慌張ES有自愈的能力,你只需要保證集群穩(wěn)定,磁盤(pán)充足即可自動(dòng)修復(fù)。

  2. 如果集群突然大多節(jié)點(diǎn)掉出集群,且出現(xiàn)分片丟失,那你需要考慮分片丟失是否能夠接受,如果不能你可以通過(guò)同時(shí)停止全部節(jié)點(diǎn),并啟動(dòng)全部節(jié)點(diǎn)進(jìn)入時(shí)間門(mén)來(lái)嘗試恢復(fù)全部數(shù)據(jù)。

  3. 正常情況下少數(shù)節(jié)點(diǎn)掉出集群,導(dǎo)致一些只讀的分片丟失,可以把這些掉出的節(jié)點(diǎn)重新加入回集群即可恢復(fù)分片。

    http://nginxs.blog.51cto.com/

網(wǎng)頁(yè)題目:Elasticsearch實(shí)踐指南
標(biāo)題URL:http://bm7419.com/article38/pscgsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶(hù)體驗(yàn)、微信公眾號(hào)、域名注冊(cè)、網(wǎng)站排名、響應(yīng)式網(wǎng)站、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)