elasticsearch7.1.1入门之集群的基础配置
操作系統(tǒng)win10,慕課網(wǎng)在一兩年前出了這個es的基礎教程,然后最近才開始學習,哪知道已經(jīng)到了7.1.1的版本了(下面的內(nèi)容都有官方文檔,只是用來記錄一下自己的學習過程)
先了解下他的基礎概念:
文檔:ES是面向文檔的,他不同與傳統(tǒng)的關系型數(shù)據(jù)庫,存一個對象要制定相應的列來表達他的某個屬性,他是面向整個對象(文檔)的,在創(chuàng)建索引時,要描述這個文檔的每個字段的數(shù)據(jù)類型。所以可以把文檔近似于對象,但是這個文檔是描述頂級對象或最終對象,他被序列化為json并存儲到es中
分片:分片是底層的基本讀寫單元,他是為了分割巨大的索引,支持讀寫并行操作,由多個節(jié)點共同完成,他是存放數(shù)據(jù)的地方,文檔就保存在分片內(nèi),他分為主分片和副分片,以主分片的數(shù)據(jù)為準,從分片要等主分片被成功寫入后再被寫入。
索引:引致官方文檔
索引(名詞):
如前所述,一個?索引?類似于傳統(tǒng)關系數(shù)據(jù)庫中的一個?數(shù)據(jù)庫?,是一個存儲關系型文檔的地方。?索引?(index) 的復數(shù)詞為?indices?或?indexes?。
索引(動詞):
索引一個文檔?就是存儲一個文檔到一個?索引?(名詞)中以便它可以被檢索和查詢到。這非常類似于 SQL 語句中的?INSERT?關鍵詞,除了文檔已存在時新文檔會替換舊文檔情況之外。?
到這里以后,可以了解到 一個索引擁有多個分片,一個分片擁有多個文檔,而節(jié)點、分片分別保證分布式系統(tǒng)的中的服務可用性
和數(shù)據(jù)可用性
類型:表示一類相似的文檔,一個索引里面可以有多個類型,用于區(qū)分同一個索引中的不同細分(后面沒有這個概念了)。
?
節(jié)點:
運行中的es實例
主節(jié)點:
負責管理集群的工作、管理集群變更
node.master: true(該配置會被認為是具有選舉為master的資格),主節(jié)點可以作為數(shù)據(jù)節(jié)點,但是在生產(chǎn)環(huán)境中減少工作量可以配置 node.data: false
數(shù)據(jù)節(jié)點:
負責數(shù)據(jù)相關的操作:增刪改查、搜索、聚合 配置方式:node.data:true
預處理節(jié)點:
可以在起到攔截處理的作用,在寫入數(shù)據(jù)之前,經(jīng)由該節(jié)點處理 配置方式:node.ingest:true
協(xié)調(diào)節(jié)點:
路由的作用
基礎的概念就介紹到這里,如果想了解更多,需要自己去深入了解,看看文檔和相關的視頻
那接下來說一下安裝:
首先肯定要有jvm環(huán)境啦,這里通過zip包解壓,最好不要用那個msi的方式下載,因為好像做集群沒有zip包方便(就從跟著慕課網(wǎng)的老師視頻來學習的角度來說)zip包地址
解壓好后,配置相關的文件,這里我解壓了三個,這里如果直接復制的話,在window下面好像有點坑,然后配置跟著視頻配置相應的文件
主節(jié)點:
http.cors.enabled: true http.cors.allow-origin: "*" cluster.name: lele node.name: master node.master: true network.host: 127.0.0.1 #node.data: false數(shù)據(jù)節(jié)點1:
cluster.name: lele node.name: slave1 network.host: 127.0.0.1 http.port: 8200 discovery.zen.ping.unicast.hosts: ["127.0.0.1"] node.data: truecluster.name是集群的名稱,node.name是節(jié)點名字,要保證對應的節(jié)點對應上集群名稱,而后設置相應的端口,還有主節(jié)點的ip地址
數(shù)據(jù)節(jié)點2就是把端口號、節(jié)點名、改一下就可以了
集群的健康狀態(tài)?
green 健康狀態(tài),所有主副分片都正常分配,yellow指所有主分片都正常分配,但是有副分片為正常分配,red有主分片未分配
這里說一下我遇到的坑,當時啟動時突然出現(xiàn)找不到jvm.options這個文件,后來上網(wǎng)查詢了是沒有權限。。所以以系統(tǒng)管理員運行bat命令就可以了,先啟動主節(jié)點再啟動從節(jié)點,然后關于可視化的那個界面按著視頻做就可以了,那里需要用到node的環(huán)境。大概的步驟就是先下載那個壓縮包,解壓,然后npm install,npm run start
然后看一下效果:
后面又接觸到了另外的可視化界面cerebro,感覺更加好用,功能更強大,而啟動的方式也從配置文件改為參數(shù)啟動,-E參數(shù)
elasticsearch -Ecluster.name=lele -Epath.data=./data/node1 -Enode.name=node1 -Ehttp.port=9200 -d這里再記錄一下索引的分片和副本的關系,分片是把數(shù)據(jù)分成一個個部分,副本則是這些分片的副本可以通過
"number_of_shards":2,"number_of_replicas":"2",來設置,那么這里其實有2*(2+1)個分片,需要主分片有2個,每個主分片有2個副本,應該每個節(jié)點上都有兩個主分片的數(shù)據(jù)。
然后如果為3個主分片,1個副本的話,也是六個分片,其中把數(shù)據(jù)分成3部分,每個部分有1個副本。
當磁盤空間不夠時,可能為導致索引不能分配,這時候可以設置cluster.routing.allocation.disk.threshold_enabled為false,在cerebro中的集群配置里面
最后附上慕課網(wǎng)鏈接,瓦力老師聲音挺好聽的!
?
?
?
?
總結
以上是生活随笔為你收集整理的elasticsearch7.1.1入门之集群的基础配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。