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