Elasticsearch 實用手冊,系列文章之第一篇(科普文)

今日頭條作者:不宅的技術男

不宅的技術男www.toutiao.com

註:本文範例版本: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。

下載地址:

github.com/mobz/elastic,下載後解壓縮。

啟動:

/elasticsearch-head/node_modules/grunt/bin>./grunt server

訪問:

http://localhost:9100/

參考:

blog.csdn.net/napoay/ar

概覽

這個頁面可以看到基本的分片的信息,比如主分片、副本分片等等,以及多少分片可用。

上方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源碼

地址:github.com/hlstudio/big

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 github.com/medcl/elasti

獲取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查詢變化的動態儀錶盤

下載插件

elastic.co/downloads/ki

編輯文件: config/kibana.yml

elasticsearch.url =http://localhost:9200

啟動:./bin/kibana

訪問:http://localhost:5601/app/kibana

(查看分詞情況)

5、Marvel-Monitor Elasticsearch 插件

硬碟使用情況,節點運行情況監控

插件下載地址: elastic.co/downloads/ma

訪問地址:http://localhost:5601/app/marve

今日頭條作者:不宅的技術男

不宅的技術男www.toutiao.com


推薦閱讀:

talk about consensus algorithm and distributed lock
Facebook 為什麼不用 Cassandra 了?
自研文件系統本身通用功能要達到那些標準才算通用呢?
淺談分散式存儲系統數據分布方法

TAG:分布式存储 | 大数据 | 中文分词 |