elasticsearch是乙個基於lucene的搜尋伺服器。它提供了乙個分布式多使用者能力的全文搜尋引擎,基於restful web介面。
驗證是否成功:http://localhost:9200/?pretty
一、es的核心概念:
cluster
代表乙個集群,集群中有多個節點,其中有乙個為主節點,這個主節點是可以通過選舉產生的,主從節點是對於集群內部來說的。es的乙個概念就是去中心化,字面上理解就是無中心節點,這是對於集群外部來說的,因為從外部來看es集群,在邏輯上是個整體,你與任何乙個節點的通訊和與整個es集群通訊是等價的。
shards
代表索引分片,es可以把乙個完整的索引分成多個分片,這樣的好處是可以把乙個大的索引拆分成多個,分布到不同的節點上。構成分布式搜尋。分片的數量只能在索引建立前指定,並且索引建立後不能更改。
replicas
代表索引副本,es可以設定多個索引的副本,副本的作用一是提高系統的容錯性,當某個節點某個分片損壞或丟失時可以從副本中恢復。二是提高es的查詢效率,es會自動對搜尋請求進行負載均衡。
recovery
代表資料恢復或叫資料重新分布,es在有節點加入或退出時會根據機器的負載對索引分片進行重新分配,掛掉的節點重新啟動時也會進行資料恢復。
river
代表es的乙個資料來源,也是其它儲存方式(如:資料庫)同步資料到es的乙個方法。它是以外掛程式方式存在的乙個es服務,通過讀取river中的資料並把它索引到es中,官方的river有couchdb的,rabbitmq的,twitter的,wikipedia的。
gateway
代表es索引快照的儲存方式,es預設是先把索引存放到記憶體中,當記憶體滿了時再持久化到本地硬碟。gateway對索引快照進行儲存,當這個es集群關閉再重新啟動時就會從gateway中讀取索引備份資料。es支援多種型別的gateway,有本地檔案系統(預設),分布式檔案系統,hadoop的hdfs和amazon的s3雲儲存服務。
discovery.zen
代表es的自動發現節點機制,es是乙個基於p2p的系統,它先通過廣播尋找存在的節點,再通過多播協議來進行節點之間的通訊,同時也支援點對點的互動。
transport
代表es內部節點或集群與客戶端的互動方式,預設內部是使用tcp協議進行互動,同時它支援http協議(json格式)、thrift、servlet、memcached、zeromq等的傳輸協議(通過外掛程式方式整合)。
補充:(1)near realtime(nrt):近實時,兩個意思,從寫入資料到資料可以被搜尋到有乙個小延遲(大概1秒);基於es執行搜尋和分析可以達到秒級
(2)cluster:集群,包含多個節點,每個節點屬於哪個集群是通過乙個配置(集群名稱,預設是elasticsearch)來決定的,對於中小型應用來說,剛開始乙個集群就乙個節點很正常
(3)node:節點,集群中的乙個節點,節點也有乙個名稱(預設是隨機分配的),節點名稱很重要(在執行運維管理操作的時候),預設節點會去加入乙個名稱為「elasticsearch」的集群,如果直接啟動一堆節點,那麼它們會自動組成乙個elasticsearch集群,當然乙個節點也可以組成乙個elasticsearch集群
(4)document&field:文件,es中的最小資料單元,乙個document可以是一條客戶資料,一條商品分類資料,一條訂單資料,通常用json資料結構表示,每個index下的type中,都可以去儲存多個document。乙個document裡面有多個field,每個field就是乙個資料字段。
(7)shard:單台機器無法儲存大量資料,es可以將乙個索引中的資料切分為多個shard,分布在多台伺服器上儲存。有了shard就可以橫向擴充套件,儲存更多資料,讓搜尋和分析等操作分布到多台伺服器上去執行,提公升吞吐量和效能。每個shard都是乙個lucene index。
(8)replica:任何乙個伺服器隨時可能故障或宕機,此時shard可能就會丟失,因此可以為每個shard建立多個replica副本。replica可以在shard故障時提供備用服務,保證資料不丟失,多個replica還可以提公升搜尋操作的吞吐量和效能。primary shard(建立索引時一次設定,不能修改,預設5個),replica shard(隨時修改數量,預設1個),預設每個索引10個shard,5個primary shard,5個replica shard,最小的高可用配置,是2臺伺服器。
二、es的核心概念和db的核心概念比較:
esdb
index
庫type
表document
行三、kibana的安裝和訪問:
Elasticsearch 極簡入門
考慮到阿里雲 elasticsearch 使用 6.7.x 版本,本小節我們基於 6.7.2 版本進行安裝部署。前置準備 1 安裝 jdk 2 修改 etc security limits.conf,在此配置中增加以下內容。如果伺服器已經配置好,可以不用重複配置。需要在 root 下執行。root ...
Elasticsearch 索引管理 一
本文翻譯自elasticsearch官方指南的索引管理 index management 一章 我們已經了解了es是如何在不需要任何複雜的計畫和安裝就能讓我們很容易地開始開發乙個新的應用的。但是,用不了多久你就會想要仔細調整索引和搜尋過程來更好的適配你的用例。幾乎所有的定製都和索引 index 以及...
Elasticsearch入門簡介(一)
elasticsearch 是乙個高可用開源全文檢索和分析元件。提供儲存服務,搜尋服務,大資料準實時分析等。一般用於提供一些提供複雜搜尋的應用。elasticsearch 提供了一套基於restful風格的全文檢索服務元件。前身是compass,直到2010被一家公司接管進行維護,開始商業化,並提供...