1.安裝
參考CSDN es官方部落格
https://elasticstack.blog.csdn.net/article/details/99413578官網下載下傳,啟動即可
測試安裝:
postman測試:
http://192.168.164.132:9200/傳回如下圖所示,安裝成功
2.概念
2.1 Cluster
叢集,有一個或多個節點組成,預設情況下啟動的es有一個cluster的叢集,參照Es的配置檔案elasticsearch.yml如下如所示:
PostMan查詢叢集狀态
Get
http://192.168.164.132:9200/_cluster/state傳回叢集的資訊
2.2 node
執行個體,一個node就是一個es的執行個體,多個node組成了es的叢集,正常情況下,一個執行個體部署在一個單獨的伺服器上,學習中使用同一台伺服器,或者多個虛拟機
node的分類
node類型 | 功能描述 | 參數(elasticsearch.yml中的配置項) |
master-eligible | 主node,可以對叢集進行管理,增删node/index,分片 | node.master |
data | 資料節點 | node.data |
ingest | 資料接入節點 | node.ingest |
machine learning | 機器學習 | node.ml |
7.9版本後使用node.roles指定node類型
https://elasticstack.blog.csdn.net/article/details/110947372一個node可以同時具有上述的多個類型,即一個node既可以是主node,也可以作為data node存儲資料,預設情況下,一個node是同時具有上述多個功能的
針對master節點,由于是管理叢集節點,可以通過設定參數cluster.remote.connect:false來拒絕遠端連接配接
針對master節點,如果有多個節點的node.master為true的情況下,需要從這些節點中選取一個作為master節點,可以通過node.voting_only參數設定此節點隻參與選舉,自身不會被選舉.
postman檢視node
http://192.168.164.132:9200/_cluster/state?filter_path=metadata.cluster_coordination.last_committed_config傳回結果:
2.3 Document
文檔,是es中存儲的最小資料單元,對比關系型資料庫,文檔與資料庫表中的記錄對應.
文檔的存儲不依賴與預先定義,即不需要按照預先定義好的字段存儲,可以增減字段
文檔通常以Json的形式存儲,因為http的傳輸多以json
2.4 Type
類型,是文檔的邏輯容器,對比關系型資料庫,類型與資料庫的表是同一個概念.
類型在es 6版本之後,開始削弱,目前一個index隻能由一個type,預設情況下是_doc
es8之後計劃移除type
2.5 Index
索引,是文檔的集合,對比關系型資料庫是庫的概念
當一個文檔進入索引的時候,需要根據hash運算得出文檔的存儲位置(哪一個分片),具體公式如下:
shard_num = hash(_routing)%分片數
_routing是文檔id,由此也可以看出,分片數并不能動态修改,修改後無法查到對應文檔的存儲位置了.
replica可以修改數目
2.6 shard
分片,将一個索引劃分為幾個不同的索引,拆分的索引就是分片
在建立索引的時候可以指定分片數,注意的是分片會存在多個node上,這也是es作為分布式部署的功能
分片可以讓es存儲遠超過一個節點磁盤容量的資料,并且可以加快搜尋速度,減輕壓力
分片分為兩種:
- primary shard 主分片,将一個索引分割形成的分片就是主分片
- replica shard 複制分片,對每一個主分片做的副本,可以在主分片故障時替換主分片
測試建立index指定分片
PUT
http://192.168.164.132:9200/user/pretty{
"settings":{
"index.number_of_shards":2,
"index.number_of_replicas":1
}
}
指定主分片2個,副本一個
查詢index設定資訊
GET
http://192.168.164.132:9200/user/_settings?pretty2.7 replica
副本,可以提高搜尋效率,保證高可用
預設情況下,es建立索引時會為索引建立一個分片,一個副本
查詢index健康資訊
http://192.168.164.132:9200/_cat/indices/user傳回狀态值,yellow表示不安全,因為現在隻有一個節點,是以我們指定的分片和副本處于同一個節點上,如果整個節點挂了,此索引就不可用了
查詢分片情況
http://192.168.164.132:9200/_cat/shards?pretty可以看到副本都未配置設定,因為沒有新的node加入,如果有新的node加入,會自動将副本配置設定至新node
2.8 shard 健康狀态
分為三種:
- red 至少一個主分片未配置設定或不可用
- yellow 所有主分片都已配置設定,但是至少一個副本未配置設定
- green 表示所有分片都已配置設定