Elasticsearch 5.0-基礎概念

Elasticsearch 5.0-基礎概念

標籤 : Elasticsearchhtml


[TOC]node


本文是 Elasticsearch 5.0 系列博文的基礎概念篇,主要介紹集羣,節點,索引,類型,文檔,分片,副本等基礎概念git

寫在前面

  • 本文以 Elasticsearch 5.0.1 版本爲例進行講解,不按期更新
  • 該系列主要參考的 Elasticsearch Reference: 5.0,儘可能避免照搬翻譯,只摘錄精要部分輔以簡單說明
  • 寫這個系列博客的初衷是強迫本身梳理,同時方便一些較忙/沒空耐心看英文文檔的朋友快速上手,建議讀者有空多讀官方文檔,畢竟別人寫的都是二手資料
  • 如需查看 ES 系列更多博文,請關注個人我的網站@brianway 或者 @CSDN

基本概念

有關概念在Basic Concepts中已經介紹的很詳細了,這裏簡單說一下。github

  • 集羣(cluster):集羣由一個或者多個節點組成,由名稱惟一標識
  • 節點(node):一個單獨的 Elasticsearch 實例
  • 索引(index):文檔的集合
  • 類型(type):索引的邏輯分類/分區
  • 文檔(document):可以被索引的信息基礎單元
  • 分片(shard):索引的物理分區,是一個最小的 Lucene 索引單元。分爲 primary shard(主分片) 和 replica shard(簡稱replicas)。
  • 副本/備份(replicas):主分片的備份

下面就這幾個概念進一步說明數據庫

類比關係型數據庫

其中索引,類型,文檔的概念能夠類比關係型數據庫elasticsearch

Elasticsearch 關係型數據庫
索引(index) 數據庫(database)
類型(type) 表(table)
文檔(document) 行記錄(row)
字段(field) 列(column)

爲何有shard和replica

爲何有 shard?ide

  • 能夠水平切分和擴展內容容量
  • 在shards 間分發和並行執行操做,從而提供性能和吞吐量

爲何有replica?性能

  • 當 shard 失效時提供高可用性。由於這個緣由,一個primary shard的replica不會分配到和該shard所處的同一節點
  • 擴展查詢的容量/吞吐量,由於查詢操做是一個讀操做,能夠在全部replica上並行執行

其餘補充

Elasticsearch 默認爲每一個 index 建立 5 個主分片,且備份數爲 1。也就是說,每一個索引由 5 個主分片組成,而且每一個分片擁有一個備份。須要注意的是,主分片的數量一旦肯定,以後是不能更改的(除非從新創建索引),而 replicas 的數量能夠在以後隨時更改。網站

因此在上一篇文章中,咱們啓動 Kibana 後在 Consonle 查詢索引狀態GET /_cat/indices?v,會發現 healthyellow 而不是 green,就是由於咱們只開啓了一個節點,並且 Kibana 啓動後在 Elasticsearch 中創建了一個默認索引 .kibana,該索引只有 1 個主分片和一個副本,故 shard 都在該節點上,而 shard 的副本不能和該 shard 分配在同一節點,故未生效,從而致使狀態是黃色。ui

另外,每一個索引被分配到多個分片,但 number_of_shards 的值只適用於索引,而不是整個集羣。這個值指定了每一個索引的分片數,而非整個集羣中的所有主分片數。(摘自Optimizing Elasticsearch: How Many Shards per Index?


做者@brianway更多文章:我的網站 | CSDN | oschina

相關文章
相關標籤/搜索