Elasticsearch 實用手冊,系列文章之第一篇(科普文)
今日頭條作者:不宅的技術男
不宅的技術男註:本文範例版本:Elasticsearch-5.2.2
目錄:
體系結構描述常用插件
體系結構描述
cluster
代表一個集群,集群中有多個節點,其中有一個為主節點,這個主節點是可以通過選舉產生的,主從節點是對於集群內部來說的。es的一個概念就是去中心化,字面上理解就是無中心節點,這是對於集群外部來說的,因為從外部來看es集群,在邏輯上是個整體,你與任何一個節點的通信和與整個es集群通信是等價的。
shards
代表索引分片,es可以把一個完整的索引分成多個分片,這樣的好處是可以把一個大的索引拆分成多個,分布到不同的節點上。構成分散式搜索。分片的數量只能在索引創建前指定,並且索引創建後不能更改。
replicas
代表索引副本,es可以設置多個索引的副本,副本的作用一是提高系統的容錯性,當個某個節點某個分片損壞或丟失時可以從副本中恢復。二是提高es的查詢效率,es會自動對搜索請求進行負載均衡。
recovery
代表數據恢復或叫數據重新分布,es在有節點加入或退出時會根據機器的負載對索引分片進行重新分配,掛掉的節點重新啟動時也會進行數據恢復。
river
代表es的一個數據源,也是其它存儲方式(如:資料庫)同步數據到es的一個方法。它是以插件方式存在的一個es服務,通過讀取river中的數據並把它索引到es中,官方的river有couchDB的,RabbitMQ的,Twitter的,Wikipedia的,river這個功能將會在後面的文件中重點說到。
gateway
代表es索引的持久化存儲方式,es默認是先把索引存放到內存中,當內存滿了時再持久化到硬碟。當這個es集群關閉再重新啟動時就會從gateway中讀取索引數據。es支持多種類型的gateway,有本地文件系統(默認),分散式文件系統,Hadoop的HDFS和amazon的s3雲存儲服務。
discovery.zen
代表es的自動發現節點機制,es是一個基於p2p的系統,它先通過廣播尋找存在的節點,再通過多播協議來進行節點之間的通信,同時也支持點對點的交互。
Transport
代表es內部節點或集群與客戶端的交互方式,默認內部是使用tcp協議進行交互,同時它支持http協議(json格式)、thrift、servlet、memcached、zeroMQ等的傳輸協議(通過插件方式集成)。
常用插件
1、插件——head
elasticsearch-head是一個elasticsearch的集群管理工具,它是完全由html5編寫的獨立網頁程序,你可以通過插件把它集成到es。
下載地址:
https://github.com/mobz/elasticsearch-head,下載後解壓縮。
啟動:
/elasticsearch-head/node_modules/grunt/bin>./grunt server
訪問:
http://localhost:9100/
參考:
http://blog.csdn.net/napoay/article/details/53896348
概覽
這個頁面可以看到基本的分片的信息,比如主分片、副本分片等等,以及多少分片可用。
上方my-application是集群的名稱,顏色表示集群的健康狀態:
- 綠色表示主分片和副本分片都可用;
- 黃色表示只有主分片可用,沒有副本分片;
- 紅色表示主分片中的部分索引不可用,但是不耽誤某些索引的訪問。
索引
這個頁面可以創建索引,並且可以設置分片的數量,副本的數量等等。
創建完索引,可以回來再看看概覽的數據:
數據瀏覽
這個tab頁可以看到每個索引的基本信息,比如都有什麼欄位,存儲的內容等等。
不過這裡並不能查詢到全量的數據!想要看所有的數據,只能使用scroll進行分頁查詢了。
基本查詢
在這裡可以拼接一些基本的查詢。
如果了解elasticsearch的朋友,可以在這裡輕鬆拼接處es的查詢語句。
複合查詢
這裡比較常用了,不僅僅可以做查詢,還可以執行PUT DELETE等curl的命令。
因此,剛學習es的朋友,不需要在windows下安裝curl,直接在這裡就可以提交一些rest請求。
這裡能使用的功能還是很多的,所有需要通過curl執行的rest請求,都可以在這裡執行:
- 創建索引
- 刪除索引
- 索引數據
- 更新數據
- 刪除數據
- 創建映射
- 創建別名
- 指定路由
等等功能。
2、插件——bigdesk
bigdesk是elasticsearch的一個集群監控工具,可以通過它來查看es集群的各種狀態,如:cpu、內存使用情況,索引數據、搜索情況,http連接數等。由於elasticsearch不再建議支持插件的安裝方式。建議作為獨立的程序來安裝類似於bigdesk、head。
1、下載git zip源碼
地址:https://github.com/hlstudio/bigdesk
2、在linux上解壓zip
unzip bigdesk-master.zip
3、進入_site目錄
cd bigdesk-master/_site
4、啟動Python服務(後台運行)
nohup python -m SimpleHTTPServer 6060 &
5、訪問:
http://localhost:6060/#nodes
註:
在elasticsearch.yml中必須配置以下屬性,否則bigdesk前台頁面點connect無反應
http.cors.enabled: true
http.cors.allow-origin: "*"
3、分詞插件--elasticsearch-analysis-ik/
1、下載插件
git clone https://github.com/medcl/elasticsearch-analysis-ik
獲取elasticsearch對應版本的分詞器
git checkout tags/{version}
(git checkout v1.10.1)
2、打包編譯
mvn package
3、將編譯生成的文件拷貝到elasticsearch相應的目錄
copy and unzip target/releases/elasticsearch-analysis-ik-{version}.zip
to your-es-root/plugins/ik
4、重啟elasticsearch
4、kibana -分析插件
Kibana是一個開源的分析與可視化平台,設計出來用於和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的數據,使用各種不同的圖表、表格、地圖等kibana能夠很輕易地展示高級數據分析與可視化。
Kibana讓我們理解大量數據變得很容易。它簡單、基於瀏覽器的介面使你能快速創建和分享實時展現Elasticsearch查詢變化的動態儀錶盤下載插件
https://www.elastic.co/downloads/kibana
編輯文件: config/kibana.yml
elasticsearch.url =http://localhost:9200
啟動:./bin/kibana
訪問:http://localhost:5601/app/kibana
(查看分詞情況)
5、Marvel-Monitor Elasticsearch 插件
硬碟使用情況,節點運行情況監控
插件下載地址: https://www.elastic.co/downloads/marvel
訪問地址:http://localhost:5601/app/marve
今日頭條作者:不宅的技術男
不宅的技術男推薦閱讀:
※talk about consensus algorithm and distributed lock
※Facebook 為什麼不用 Cassandra 了?
※自研文件系統本身通用功能要達到那些標準才算通用呢?
※淺談分散式存儲系統數據分布方法