從2014年到現(xiàn)在接觸ES(Elasticsearch)已經(jīng)兩年多了,感觸良多尤其ES的開盒即用特性完全區(qū)別于之前接觸復(fù)雜的hadoop和solor。ES不需要你對它了解就能很快入門,而且ES的實時搜索,自動拓展,自愈功能深深吸引我。最近很多朋友也開始使用向我問了很多常見問題,我在這總結(jié)了一些使用中踩過的坑希望大家對ES有更多的了解。
專注于為中小企業(yè)提供成都做網(wǎng)站、網(wǎng)站制作服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)西市免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了超過千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。簡介
Elasticsearch是基于Lucene開發(fā)的一個準(zhǔn)實時搜索服務(wù),搜索延時在秒級。ES存儲主要通過自身解析json數(shù)據(jù),然后json里面的key映射為Lucene里面的字段,使用lucene進行搜索和索引。ES不僅支持普通的全文搜索和按詞搜索,還支持模糊匹配,近義詞搜索,聚合,排序,geo等特性。ES的開源特性也使得它社區(qū)活躍,版本迭代更新迅速,現(xiàn)在主要分為2.0和5.0兩個大版本,建議大家使用最新的5.0版本會更容易升級和獲取一些更高級的特性。
下面是一些上線或者線上使用Elasticsearch需要了解的特性
es主要依賴于硬盤和內(nèi)存,所以對CPU要求不高,一般8核就行,如果并發(fā)比較多可以適當(dāng)增加。
硬盤決定你es寫入讀取數(shù)據(jù)速度,磁盤建議用15k的機械硬盤,并配置為raid0,如果集群節(jié)點<5個,請使用raid5,這樣保證一個硬盤故障不會影響服務(wù)。雖然es本身可以通過分片去保證數(shù)據(jù)的冗余,但是es每個節(jié)點大量數(shù)據(jù)爬行還是對較小的集群有一定影響。(土豪直接上SSD,需要正確配置I/O調(diào)度程序,陣列卡建議>h710,否則就像ssd跑車上安裝一個拖拉機引擎)
1. ES的內(nèi)存使用分為兩部分ES緩存和Lucene通過內(nèi)核緩存加速一些數(shù)據(jù)。
2 .如果服務(wù)器內(nèi)存 `nG> 64G`,ES的內(nèi)存盡量設(shè)置低于32G,建議大31G.因為es使用“內(nèi)存指針壓縮”技術(shù),一旦內(nèi)存內(nèi)存大于32G這項技術(shù)將失效,內(nèi)存有效使用只有原來的60%~70%。你不必為內(nèi)存浪費而擔(dān)心,因為lucene會通過系統(tǒng)把一些聚合和排序的數(shù)據(jù)緩存起來方便你快速查詢使用。
3.如果服務(wù)器內(nèi)存 `nG <64G`,建議給ES分配 內(nèi)存 (n-2)/2G. 首先2G是給系統(tǒng)預(yù)留,然后es和lucene
4.如果你想繼續(xù)你的實時查詢,盡量不要使用swap(交換分區(qū)),建議關(guān)閉系統(tǒng)swap使用
建議千兆光纖,高速網(wǎng)絡(luò)可以保證集群節(jié)點故障后快速恢復(fù),以及添加節(jié)點后快速再平衡。
盡量不要跨機房,除非需要災(zāi)備,或者有足夠的帶寬,否則你將迎來es節(jié)點數(shù)據(jù)同步的無限等待。
因為所有es節(jié)點需要實時同步‘索引列表’,‘文檔類型’,‘字段名’等信息,所以在節(jié)點數(shù)固定的情況下索引,字段名等不要太多否則會給es的master節(jié)點造成壓力。
簡單舉例:我要保存用戶提交字段和信息,各個字段名因為是動態(tài)生成,理論上是無上限的,但是es的master要實時的同步這些字段信息到每個節(jié)點,如果現(xiàn)在只有100個字段還好,要是有1000個字段就會產(chǎn)生問題,如果有2000個字段就嚴(yán)重到無法使用了,當(dāng)然索引的數(shù)量也是同樣的意義,
es的每個索引默認(rèn)總計10個分片,5個主分片,每個主分片對應(yīng)一個副分片。
1. 當(dāng)然很多情況下這個無法滿足你實際需求,例如你的集群有8個節(jié)點,計劃單個索引超過100億條數(shù)據(jù),為了讓這個索引查詢速度快一點,你可以增加索引分片數(shù)量:1.增加主副分片對數(shù),增加副分片的數(shù)量。這樣不僅加速搜索還增加了數(shù)據(jù)的冗余。
2.一些只讀的索引可以使用‘optimize的API’進行把每個索引合并為一個單獨數(shù)據(jù)段,這樣可以節(jié)省資源加速操作,但是需要注意這樣會消耗一定IO,如果當(dāng)前節(jié)點請求繁忙,不要進行此類操作。
3.在使用索引的時候盡量使用索引別名,在以后索引重建或者索引名變更時避免宕機維護。
1.并發(fā)請求不要一次太多,否則超過es內(nèi)部隊列長度將失敗。
2.如果一次一定要提交太多任務(wù)寫入盡量添加失敗判斷,一旦失敗等待3~5秒重試操作,否則數(shù)據(jù)將丟失。
3.文檔盡量一次寫入不要更改和刪除,因為es的更改和刪除只是給舊數(shù)據(jù)做了一個標(biāo)簽,查詢的時候依然會查詢匹配,只是不在結(jié)果中計算。
故障處理
如果有ES集群單節(jié)點掉出集群不要慌張ES有自愈的能力,你只需要保證集群穩(wěn)定,磁盤充足即可自動修復(fù)。
如果集群突然大多節(jié)點掉出集群,且出現(xiàn)分片丟失,那你需要考慮分片丟失是否能夠接受,如果不能你可以通過同時停止全部節(jié)點,并啟動全部節(jié)點進入時間門來嘗試恢復(fù)全部數(shù)據(jù)。
正常情況下少數(shù)節(jié)點掉出集群,導(dǎo)致一些只讀的分片丟失,可以把這些掉出的節(jié)點重新加入回集群即可恢復(fù)分片。
http://nginxs.blog.51cto.com/
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前題目:Elasticsearch實踐指南-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://redsoil1982.com.cn/article38/dihjsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、虛擬主機、企業(yè)建站、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容