elasticsearch概念詳解

本文主要介紹elasticsearch6.0的一些基本概念,有助於深刻理解、研究elasticsearch和elk系統

一圖勝千言

elasticsearch與mysql參照來看

clipboard.png

添加一條數據html

紫色箭頭所指向的nginx爲index名稱 紅色箭頭所指向的logs爲type名稱
-d 參數後面的整個json串爲document(一條數據) 黃色箭頭所指向的http_version(json串的key部分)爲字段名稱 藍色箭頭所指向的HTTP/1.1(json串的value部分)爲字段值

圖片描述

Cluster

顧名思義,cluster(集羣)由一臺及以上主機節點組成並提供存儲及搜索服務,爲方便理解能夠將其看做爲mysql集羣;
elasticsearch集羣名稱在配置文件ES_HOME/config/elasticsearch.yml中定義,集羣名稱默認爲elasticsearch,可經過cluster.name: my-application屬性定義;
單臺節點在集羣中的名字可經過node.name: node-1屬性定義,默認爲自動生成的一個uuid值;node

Node

node爲集羣中的單臺節點,其能夠爲master節點亦可爲slave節點(節點屬性由集羣內部選舉得出)並提供存儲相關數據的功能,爲方便理解能夠將其看做mysql集羣中的某一臺主機;
能夠經過下述配置設置master節點只提供搜索服務不提供存儲服務從而提升該節點的搜索處理效率;mysql

node.master: false
node.data: false

Index

index直譯爲索引,主要用於存儲具體數據,爲方便理解能夠將其看做mysql數據中的一個庫;好比能夠定義一個索引名稱爲nginx-2018-01-11用於存儲2018-01-11當天全部的nginx訪問日誌;nginx

注意:索引名稱必須爲小寫

Type

簡單的說能夠將type看做mysql數據庫中的一張表;sql

注意:從6.0版本開始type默認只能爲log,後續版本中將再也不使用type這個概念;

Document

document是能夠被索引的最小單元,能夠將其看做爲mysql中某張表的一條數據;其包含多個字段,好比用戶表中能夠包含用戶名、密碼、郵箱等;
在elasticsearch中,存儲document數據需使用json格式數據與服務端交互;數據庫

Shards

shards(切片)這個概念也比較容易理解,說白了就是把一個大文件分割成多個小文件而後分散存儲在集羣中的多個節點上;能夠將其看做mysql的分庫分表概念;這樣作的好處是將壓力分散到多臺機器上,好比你有一張1T的表,要執行一條查詢語句,傳統方式會只在某一臺節點上執行查詢語句其所能用到的資源也就是這臺節點的最高配置;如今的狀況是(假若有5臺節點)將1T的表拆分爲5分分別存儲在5臺節點上,查詢的時候5臺節點都會執行查詢操做,而後將5臺節點的查詢結果彙總在一塊兒返回給用戶,這樣所能用的資源就是整個集羣的資源,處理效率天然也會快不少(不要擔憂集羣彙總查詢結果的耗時太大);
默認狀況下elasticsearch會將用戶的index拆分爲5個shard,能夠在建立索引的時候經過number_of_shards參數制定shard的數量;
整體來講,shard的數量與集羣中的data節點數量成正比但不宜超過data節點數量;json

注意: 索引一旦建立,shard值不可改變,但replicas的值能夠改變;

Replicas

replicas(副本)簡單的理解就是某個文件的拷貝,兩個文件如出一轍,查詢的時候兩個都能看,誤刪除其中一個的時候另外一個還在;本質是保證數據不丟失,在elasticsearch中replicas的另外一個做用就是提升查詢效率;
replica是相對與shard而言的,通常成對使用,好比你有一個索引,shard設置爲5,replica設置爲1,那麼總的切片數爲shard(5) + shard(5) * replicas(1) = total(10);若是有5臺data節點,每臺節點上都會存儲兩個不相同的shard,這樣某臺data節點壞掉集羣能從其它節點上保存了整個index的5個shard,因此不影響正常使用;一旦有新的節點加入,集羣能夠從其它節點將shard再次存儲在該節點,從而保證集羣高可用性;
replica可在index建立後更改,其值越大搜索效率越高,但寫入性能越低(一條數據寫入操做須要作(1+replicas)遍),具體值與集羣data節點數量相關,不宜超過【data節點數-1】app

參考文檔

elasticsearch概念介紹: https://www.elastic.co/guide/...
相關文章
相關標籤/搜索