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