本篇文章給大家分享的是有關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 eligible | node.master | true |
| data | node.data | true |
| ingest | node.ingest | true |
| 協調者 | 無 | 不涉及 |
| 機器學習 | node.ml | true |
任何節點都一定是協調者,如果要把某節點設置為只充當協調者,則只需且必須把其他的 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的基本概念是什么呢,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。