2021年大数据ELK(五):Elasticsearch中的核心概念
全網最詳細的大數據ELK文章系列,強烈建議收藏加關注!?
新文章都已經列出歷史文章目錄,幫助大家回顧前面的知識重點。
目錄
系列歷史文章
Elasticsearch中的核心概念
一、索引 index
二、映射 mapping
三、字段Field
四、類型 Type
五、文檔 document
六、集群 cluster
七、節點 node
八、分片和副本 shards&replicas
?????1、分片
2、副本
九、總結
ES中的相關的術語總結:
注意:
系列歷史文章
2021年大數據ELK(六):安裝Elasticsearch
2021年大數據ELK(五):Elasticsearch中的核心概念
2021年大數據ELK(四):Lucene的美文搜索案例
2021年大數據ELK(三):Lucene全文檢索庫介紹
2021年大數據ELK(二):?Elasticsearch簡單介紹
2021年大數據ELK(一):集中式日志協議棧Elastic Stack簡介
Elasticsearch中的核心概念
一、索引 index
- 一個索引就是一個擁有幾分相似特征的文檔的集合。比如說,可以有一個客戶數據的索引,另一個產品目錄的索引,還有一個訂單數據的索引
- 一個索引由一個名字來標識(必須全部是小寫字母的),并且當我們要對對應于這個索引中的文檔進行索引、搜索、更新和刪除的時候,都要使用到這個名字
- 在一個集群中,可以定義任意多的索引。
二、映射 mapping
- ElasticSearch中的映射(Mapping)用來定義一個文檔
- mapping是處理數據的方式和規則方面做一些限制,如某個字段的數據類型、默認值、分析器、是否被索引等等,這些都是映射里面可以設置的
三、字段Field
相當于是數據表的字段,對文檔數據根據不同屬性進行的分類標識
四、類型 Type
每一個字段都應該有一個對應的類型,例如:Text、Keyword、Byte等
五、文檔 document
一個文檔是一個可被索引的基礎信息單元。比如,可以擁有某一個客戶的文檔,某一個產品的一個文檔,當然,也可以擁有某個訂單的一個文檔。文檔以JSON(Javascript Object Notation)格式來表示,而JSON是一個到處存在的互聯網數據交互格式
六、集群 cluster
- 一個集群就是由一個或多個節點組織在一起,它們共同持有整個的數據,并一起提供索引和搜索功能
- 一個集群由一個唯一的名字標識,這個名字默認就是“elasticsearch”
- 這個名字是重要的,因為一個節點只能通過指定某個集群的名字,來加入這個集群
七、節點 node
- 一個節點是集群中的一個服務器,作為集群的一部分,它存儲數據,參與集群的索引和搜索功能
- 一個節點可以通過配置集群名稱的方式來加入一個指定的集群。默認情況下,每個節點都會被安排加入到一個叫做“elasticsearch”的集群中
- 這意味著,如果在網絡中啟動了若干個節點,并假定它們能夠相互發現彼此,它們將會自動地形成并加入到一個叫做“elasticsearch”的集群中
- 在一個集群里,可以擁有任意多個節點。而且,如果當前網絡中沒有運行任何Elasticsearch節點,這時啟動一個節點,會默認創建并加入一個叫做“elasticsearch”的集群。
八、分片和副本 shards&replicas
?????1、分片
- 一個索引可以存儲超出單個結點硬件限制的大量數據。比如,一個具有10億文檔的索引占據1TB的磁盤空間,而任一節點都沒有這樣大的磁盤空間;或者單個節點處理搜索請求,響應太慢
- 為了解決這個問題,Elasticsearch提供了將索引劃分成多份的能力,這些份就叫做分片
- 當創建一個索引的時候,可以指定你想要的分片的數量
- 每個分片本身也是一個功能完善并且獨立的“索引”,這個“索引”可以被放置到集群中的任何節點上
- 分片很重要,主要有兩方面的原因
- 允許水平分割/擴展你的內容容量
- 允許在分片之上進行分布式的、并行的操作,進而提高性能/吞吐量
- 至于一個分片怎樣分布,它的文檔怎樣聚合回搜索請求,是完全由Elasticsearch管理的,對于作為用戶來說,這些都是透明的
2、副本
- 在一個網絡/云的環境里,失敗隨時都可能發生,在某個分片/節點不知怎么的就處于離線狀態,或者由于任何原因消失了,這種情況下,有一個故障轉移機制是非常有用并且是強烈推薦的。為此目的,Elasticsearch允許你創建分片的一份或多份拷貝,這些拷貝叫做副本分片,或者直接叫副本
- 副本之所以重要,有兩個主要原因
- 在分片/節點失敗的情況下,提供了高可用性。注意到復制分片從不與原/主要(original/primary)分片置于同一節點上是非常重要的
- 擴展搜索量/吞吐量,因為搜索可以在所有的副本上并行運行
- 每個索引可以被分成多個分片。一個索引有0個或者多個副本
- 一旦設置了副本,每個索引就有了主分片和副本分片,分片和副本的數量可以在索引創建的時候指定
- 在索引創建之后,可以在任何時候動態地改變副本的數量,但是不能改變分片的數量
九、總結
ES中的相關的術語總結:
- index: 索引庫 ?在一個ES中可以構建多個索引庫的, 理解為MySQL中數據庫, 或者 hbase 中 命名空間
- type: 類型 ?在一個索引庫下 可以構建多個類型, 相當于在MySQL中一個數據庫下面可以構建多個表, 或者在命名空間下構建多個表,ES在最新 6.x版本后, 已經不允許在一個索引庫下有多個不同類型, 只允許有一個了
- filed: 字段 ? 在索引庫中, 可以有多個字段, 同時每個字段擁有數據類型的 , 類似于表中有多個字段, 每個字段有自己的類型
- document: 文檔 ?描述的是索引庫中一行數據, 一個文檔就表示一行數據, 類型與 表中 row
- mapping: 映射 ?用于設置索引庫中字段的數據類型, 比如說, 字段采用什么類型, 字段是否需要分詞, 是否需要索引,是否需要保存(原始數據)....
- setting: 設置 ?用于對索引庫設置 ?比如 設置索引庫有多少個分片 多少個副本....
- cluster: 集群 表示ES的集群
- node: 節點 ?ES的各個節點
- shards: 分片 ? 一個索引庫可以被分為多個分片 ?默認為 5
- replicas: 副本 ? 一個分片可以被分為多個副本 ?默認為 2
注意:
- 分片的數量不受節點的限制
- 副本的數據最多和節點的數量是一致的: 副本數量 <=節點的數量
- 副本一般為 :2 或者 3
- 📢博客主頁:https://lansonli.blog.csdn.net
- 📢歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!
- 📢本文由 Lansonli 原創,首發于 CSDN博客🙉
- 📢大數據系列文章會每天更新,停下休息的時候不要忘了別人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活?
總結
以上是生活随笔為你收集整理的2021年大数据ELK(五):Elasticsearch中的核心概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年大数据ELK(四):Lucen
- 下一篇: 2021年大数据ELK(六):安装Ela