溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Elasticsearch的基本概念是什么呢

發布時間:2021-12-16 17:10:27 來源:億速云 閱讀:157 作者:柒染 欄目:大數據

本篇文章給大家分享的是有關Elasticsearch的基本概念是什么呢,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

以 Elasticsearch 7.9.2 為準。

文檔和索引面向開發者,是邏輯概念;節點、分片、集群面向運維,是物理概念。

文檔

一個文檔理解為一個 JSON 對象即可。文檔是 ES 中存儲、搜索的最小單位。

文檔均有自己的 id,形式為一個整數,可以自己指定,也可以由 ES 生成。

文檔的常見樣子:

{
    "_index": "myindex",
    "_type": "doc", // es7 開始,這里必須是 doc
    "_id": "YmYJdj888",
    "_score": 0.2876333,
    "_source": {
        "foo": "astr",
        "bar": "bstr",
        "biz": [
            "book", "cat"
        ]
    }
}

其中,_source 字段保存文檔原始內容,其他字段為文檔元數據。

_index 表示它屬于那個索引,_id 表示文檔的 id。其他字段后面再說。

索引

所以是文檔和集合。類似于關系型數據庫中的表。

一詞多義,索引:

  • (ES 中)名詞,表示文檔的集合

  • (ES 中)動詞,表示將文檔放入 ES (例:將某文檔索引到 ES 中)

  • (拋開 ES)名詞,表示查找標記(例:這個數據庫用 B+ 樹實現索引)

索引中的文檔被分散在分片(shard)上。

節點

一個 ES 節點指的是一個 ES 程序運行實例,其實就是個 Java 進程。

生產環境中,一臺機器只運行一個實例。

每一個節點都有名字,通過配置文件指定,或在啟動時加參數

-E node.name=foo

節點啟動后,會分配 UID,保存于 data 目錄下。

集群

ES 是分布式軟件,不同角色的節點組成集群,以提供如下特性:

可用性:

  • 服務可用:允許少數節點不可用

  • 數據可用:損壞少數節點時數據不丟失

可擴展:可以不斷增加機器。

集群:

不同集群通過名字區分,默認的集群名為 elasticsearch。集群名通過配置文件指定或在命令行中 -E cluster.name=myc 指定。集群中有 >= 1 個節點。

集群中節點的角色:

  • master eligible:可被選舉為 master。master 主要負責索引的創建和刪除,決定分片分到哪里,維護和更新集群的狀態。

  • data:存放數據。

  • ingest:數據進來之前進行過濾。

  • 協調者(coordinating):與客戶端打交道的節點??蛻舳说恼埱蠖际窍鹊絽f調者這里,再由協調者在后面忙活,然后把結果返回給客戶端。

  • 機器學習:負責機器學習。需要開啟 X-Pack 插件。

節點角色參數默認值
master eligiblenode.mastertrue
datanode.datatrue
ingestnode.ingesttrue
協調者不涉及
機器學習node.mltrue

任何節點都一定是協調者,如果要把某節點設置為只充當協調者,則只需且必須把其他的 4 個參數都設為 false。

生產環境中,每個節點應該只充當一個角色。如果數據量小,酌情讓部分節點兼職。

生產環境中,應該只對外保留協調者的地址。

分片與副本

索引有 >=1 個分片,每個分片有 1 個主分片和 >=0 個副本分片。

例如,對于索引 myindex,分片數設為 3,副本數設為 1,則總數據片個數為 3*(1+1)=6。一般的,某索引分片數為 n,副本數為 m,則總數據片個數為 n(m+1)。

一個文檔放到某索引后,文檔會被放入某個主分片和這個主分片對應的所有副本分片。主分片及其對應的副本分片必須在互不相同的節點上,但主分片之間不必如此。

例如,索引 myindex,分片數設為 3,副本數設為 1。3 個主分片記為 P0、P1、P2,對應的副本分片記為 R0,R1,R2。給 3 臺機器,則數據片的分布可能為:

(P0 R2) (P1 R0) (P2 R1),

如果只給 2 臺機器,則則數據片的分布可能為:

(P0 P1 R2) (P2 R0 R1),

如果只給 1 臺機器,則則數據片的分布可能為:

(P0 P1 P2),

此時,ES 無法創建副本分片,此時集群可用但非高可用。

索引的分片數設定后不可修改,如果需要修改必須重新建索引。副本數可以動態調整。

適當增加分片數可以避免單個數據片過大,也增加了對機器的可伸縮性。適當增加副本數可以提高性能和吞吐量。

以上就是Elasticsearch的基本概念是什么呢,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女