elasticsearch集群搭建及參數(shù)詳解

介紹

elasticsearch集群的搭建教程很多见秤。網(wǎng)上一搜都是砂竖,但是真椿,搭建不難。更重要的是明白集群原理乎澄,性能以及運(yùn)維知識(shí)點(diǎn)突硝。所以,本文將從這些點(diǎn)著重介紹三圆。

配置參數(shù)詳解

elasticsearch配置文件中有以下這些參數(shù)狞换,將逐一介紹(其實(shí)配置文件中英文描述已經(jīng)非常清楚):

  • cluster.name
    集群名,自定義集群名舟肉,默認(rèn)為elasticsearch修噪,建議修改,因?yàn)榈桶姹径嗖ツJ较峦痪W(wǎng)段下相同集群名會(huì)自動(dòng)加入同一集群路媚,如生產(chǎn)環(huán)境這樣易造成數(shù)據(jù)運(yùn)維紊亂黄琼。

  • node.name
    節(jié)點(diǎn)名,同一集群下要求每個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)名不一致整慎,起到區(qū)分節(jié)點(diǎn)和辨認(rèn)節(jié)點(diǎn)作用

  • node.master
    是否為主節(jié)點(diǎn)脏款,選項(xiàng)為true或false,當(dāng)為true時(shí)在集群啟動(dòng)時(shí)該節(jié)點(diǎn)為主節(jié)點(diǎn)裤园,在宕機(jī)或任務(wù)掛掉之后會(huì)選舉新的主節(jié)點(diǎn)撤师,恢復(fù)后該節(jié)點(diǎn)依然為主節(jié)點(diǎn)

  • node.data
    是否處理數(shù)據(jù),選項(xiàng)為true或false拧揽。負(fù)責(zé)數(shù)據(jù)的相關(guān)操作

  • path.data
    默認(rèn)數(shù)據(jù)路徑剃盾,可用逗號(hào)分隔多個(gè)路徑

  • path.logs
    默認(rèn)日志路徑

  • bootstrap.mlockall
    內(nèi)存鎖,選項(xiàng)為true或false淤袜,用來確保用戶在es-jvm中設(shè)置的ES_HEAP_SIZE參數(shù)內(nèi)存可以使用一半以上而又不溢出

  • network.host
    對(duì)外暴露的host痒谴,0.0.0.0時(shí)暴露給外網(wǎng)

  • http.port
    對(duì)外訪問的端口號(hào),默認(rèn)為9200铡羡,所以外界訪問該節(jié)點(diǎn)一般為http://ip:9200/

  • transport.tcp.port
    集群間通信的端口號(hào)积蔚,默認(rèn)為9300

  • discovery.zen.ping.unicast.hosts
    集群的ip集合,可指定端口烦周,默認(rèn)為9300尽爆,如 ["192.168.1.101","192.168.1.102"]

  • discovery.zen.minimum_master_nodes
    最少的主節(jié)點(diǎn)個(gè)數(shù),為了防止腦裂读慎,最好設(shè)置為(總結(jié)點(diǎn)數(shù)/2 + 1)個(gè)

  • discovery.zen.ping_timeout
    主節(jié)點(diǎn)選舉超時(shí)時(shí)間設(shè)置

  • gateway.recover_after_nodes
    值為n教翩,網(wǎng)關(guān)控制在n個(gè)節(jié)點(diǎn)啟動(dòng)之后才恢復(fù)整個(gè)集群

  • node.max_local_storage_nodes
    值為n,一個(gè)系統(tǒng)中最多啟用節(jié)點(diǎn)個(gè)數(shù)為n

  • action.destructive_requires_name
    選項(xiàng)為true或false贪壳,刪除indices是否需要現(xiàn)實(shí)名字

理解主節(jié)點(diǎn)饱亿、副節(jié)點(diǎn)、分片與復(fù)制分片

關(guān)系

起初創(chuàng)建節(jié)點(diǎn)與分片的關(guān)系,設(shè)置shards=2,replicas=1

elasticsearch節(jié)點(diǎn)與分片的關(guān)系圖.png

解析

  • node-master主節(jié)點(diǎn)
    集群中用于元數(shù)據(jù)(metadata)的請(qǐng)求處理彪笼,比如確定分片位置钻注,索引的新增、刪除請(qǐng)求分配等

  • node
    包括client nodedata node

1. `client node` node.master=true,node.data=false 用于轉(zhuǎn)發(fā)請(qǐng)求配猫,起到平衡負(fù)載的作用
2. `data node` node.master=flase,node.data=true
> 節(jié)點(diǎn)上保存了數(shù)據(jù)分片幅恋。它負(fù)責(zé)數(shù)據(jù)相關(guān)操作,比如分片的 CRUD泵肄,以及搜索和整合操作捆交。這些操作都比較消耗 CPU、內(nèi)存和 I/O 資源
  • shards 分片
    在設(shè)置索引時(shí)默認(rèn)(5)或自己設(shè)置的分片數(shù)量腐巢,即indices(1)--shards(n)品追,而每插入一條數(shù)據(jù)都會(huì)在唯一主分片中,即Document(n)--shards(1)

  • replicas 復(fù)制分片
    同樣在設(shè)置索引時(shí)會(huì)默認(rèn)(1)或自定義復(fù)制分片數(shù)量冯丙,該數(shù)量對(duì)應(yīng)關(guān)系為每個(gè)主分片對(duì)應(yīng)的復(fù)制分片肉瓦,即shards(1)--replicas(n)

要點(diǎn)

  1. 當(dāng)集群健康狀態(tài)為yello表示存在復(fù)制分片未被分配(unassigned)到節(jié)點(diǎn)中(或者分配的復(fù)制節(jié)點(diǎn)個(gè)數(shù)少于設(shè)置的個(gè)數(shù)),這時(shí)如果硬件有故障將無法找回?cái)?shù)據(jù)。
  2. 在同一個(gè)節(jié)點(diǎn)上既保存原始數(shù)據(jù)又保存副本是沒有意義的胃惜,因?yàn)橐坏┦チ四莻€(gè)節(jié)點(diǎn)泞莉,我們也將丟失該節(jié)點(diǎn)上的所有副本數(shù)據(jù)。
  3. 主分片數(shù)量一般是在建立索引時(shí)就固定的船殉,一般是不作修改的鲫趁,如果減少分片數(shù)量意味著數(shù)據(jù)將要丟失
  4. 復(fù)制分片一定意義上可以起到負(fù)載的功能,提高數(shù)據(jù)的冗余量利虫。但如果只是在相同節(jié)點(diǎn)數(shù)目的集群上增加更多的副本分片并不能提高性能挨厚,因?yàn)槊總€(gè)分片從節(jié)點(diǎn)上獲得的資源會(huì)變少。 你需要增加更多的硬件資源來提升吞吐量

節(jié)點(diǎn)與分片模型

同樣設(shè)置shards=2,replicas=1

elasticsearch節(jié)點(diǎn)與分片可分配關(guān)系圖.png

elasticsearch節(jié)點(diǎn)與分片正常存儲(chǔ)關(guān)系圖.png

分布式文檔存儲(chǔ)的關(guān)系原理

這個(gè)由于在官網(wǎng)指南中寫的很清楚了列吼,直接貼出章節(jié)幽崩。
分布式文檔存儲(chǔ)

集群搭建

配置集群

修改配置文件

# vi /etc/elasticsearch/elasticsearch.yml

# 統(tǒng)一的集群名
cluster.name: syncwt-es
# 當(dāng)前節(jié)點(diǎn)名
node.name: syncwt-es-node-1
# 對(duì)外暴露端口使外網(wǎng)訪問
network.host: 0.0.0.0
# 對(duì)外暴露端口
http.port: 9200
# ...還有很多可以設(shè)置苦始,這些是基礎(chǔ)的寞钥。具體看上面的配置參數(shù)說明

重啟并查看集群健康狀態(tài):

# sudo systemctl start elasticsearch.service
# curl -XGET 'http://localhost:9200/_cat/health?v'

集群可視化插件安裝elasticsearch-head

# cd ${elasticsearch_HOME}
# ./plugin install mobz/elasticsearch-head

頁面訪問效果(單節(jié)點(diǎn)):
http://119.29.248.199:9200/_plugin/head/

elasticsearch_head效果圖.png

注意

  1. 集群中es的版本應(yīng)保持一致,最好內(nèi)網(wǎng)部署陌选,外網(wǎng)不是很穩(wěn)定理郑。
  2. 可用容器(如docker)封裝統(tǒng)一部署集群各節(jié)點(diǎn)以保持配置一致性
  3. 可在一臺(tái)機(jī)器上運(yùn)行多個(gè)節(jié)點(diǎn)來構(gòu)建集群,只是性能會(huì)和機(jī)器配置相關(guān)

總結(jié)

  1. 集群中節(jié)點(diǎn)選型策略咨油。node-data節(jié)點(diǎn)(隨著數(shù)據(jù)增加而增加)您炉,note-client(隨著查詢壓力而增加)節(jié)點(diǎn)
  2. 集群節(jié)點(diǎn)數(shù)量上升時(shí),多關(guān)注配置參數(shù)役电,如gateway.recover_after_nodes等赚爵,會(huì)帶來很多效率的提高
  3. 當(dāng)集群數(shù)量較大時(shí),建議橫向擴(kuò)展集群。單純?cè)黾觘s節(jié)點(diǎn)的內(nèi)存和CPU不會(huì)有很大提升冀膝,建議多增加節(jié)點(diǎn)

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末唁奢,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子窝剖,更是在濱河造成了極大的恐慌麻掸,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赐纱,死亡現(xiàn)場離奇詭異脊奋,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)疙描,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門诚隙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人淫痰,你說我怎么就攤上這事最楷。” “怎么了待错?”我有些...
    開封第一講書人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵籽孙,是天一觀的道長。 經(jīng)常有香客問我火俄,道長犯建,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任瓜客,我火速辦了婚禮适瓦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谱仪。我一直安慰自己玻熙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開白布疯攒。 她就那樣靜靜地躺著嗦随,像睡著了一般。 火紅的嫁衣襯著肌膚如雪敬尺。 梳的紋絲不亂的頭發(fā)上枚尼,一...
    開封第一講書人閱讀 49,985評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音砂吞,去河邊找鬼署恍。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蜻直,可吹牛的內(nèi)容都是我干的盯质。 我是一名探鬼主播袁串,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼呼巷!你這毒婦竟也來了般婆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤朵逝,失蹤者是張志新(化名)和其女友劉穎蔚袍,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體配名,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡啤咽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了渠脉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宇整。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖芋膘,靈堂內(nèi)的尸體忽然破棺而出鳞青,到底是詐尸還是另有隱情,我是刑警寧澤为朋,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布臂拓,位于F島的核電站,受9級(jí)特大地震影響习寸,放射性物質(zhì)發(fā)生泄漏胶惰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一霞溪、第九天 我趴在偏房一處隱蔽的房頂上張望孵滞。 院中可真熱鬧,春花似錦鸯匹、人聲如沸坊饶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽匿级。三九已至,卻和暖如春科雳,著一層夾襖步出監(jiān)牢的瞬間根蟹,已是汗流浹背脓杉。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來泰國打工糟秘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人球散。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓尿赚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子凌净,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容