〇、環境配置
服務器:3台(node1 -> node3)
操作系統:Cent OS 5.6,添加普通用戶angelwang
ElasticSearch版本:1.7.1
JDK版本:1.8
一、安裝JDK(所有服務器)
在每台服務器(node1 -> node3)上安裝JDK,安裝過程略。
以下二至六步可以選取某台服務器執行。
二、安裝ElasticSearch
1、下載elasticsearch-1.7.1.tar.gz
2、解壓:[angelwang@node1 ~]$ tar -xf elasticsearch-1.4.2.tar.gz
三、安裝elasticsearch-head插件
elasticsearch-head是一個elasticsearch的集群管理工具,它是完全由html5編寫的獨立網頁程序。
1、聯網環境,執行下面語句進行安裝:
[angelwang@node1 ~]$ ./elasticsearch-1.7.1/bin/plugin -install mobz/elasticsearch-head
2、離線安裝:
[angelwang@node190 ~]$ unzip elasticsearch-head-master.zip
[angelwang@node1 ~]$ mkdir ./elasticsearch-1.7.1/plugins
[angelwang@node1 ~]$ mkdir ./elasticsearch-1.7.1/plugins/head
[angelwang@node1 ~]$ mkdir ./elasticsearch-1.7.1/plugins/head/_site
[angelwang@node1 ~]$ cp -r ~/elasticsearch-head-master/* ./elasticsearch-1.7.1/plugins/head/_site
在執行:[angelwang@node190 ~]$ ./elasticsearch-1.7.1/bin/elasticsearch
啟動ElasticSearch后,可以通過訪問:http://node1:9200/_plugin/head/,
可以看到如下圖:

四、安裝elasticsearch-sql插件
elasticsearch-sql插件可以做到:Query elasticsearch using familiar SQL syntax. You can also use ES functions in SQL.
執行下面語句進行安裝:
[angelwang@node1 ~]$ ./bin/plugin -u https://github.com/NLPchina/elasticsearch-sql/releases/download/1.3.5/elasticsearch-sql-1.3.5.zip --install sql
在啟動ElasticSearch后,可以通過訪問:http://localhost:9200/_plugin/sql/,
可以看到如下圖:

看到這個界面你也能想像到它是做什么的了吧?更多的信息可以去 https://github.com/NLPchina/elasticsearch-sql 獲取,當然不能通過elasticsearch-sql把elasticsearch當關系型數據庫用,但畢竟elasticsearch的查詢語句不如solr那般簡潔,所以對於熟悉sql的朋友,這樣拼sql語句也是很方便的吧。此工具的開發者真是體貼。
五、安裝elasticsearch-Bigdesk插件
bigdesk是elasticsearch的一個集群監控工具,可以通過它來查看es集群的各種狀態,如:cpu、內存使用情況,索引數據、搜索情況,http連接數等。
1、聯網環境
[angelwang@node1 ~]$ ./bin/plugin -install lukas-vlcek/bigdesk
在啟動ElasticSearch后,可以通過訪問:http://node1:9200/_plugin/bigdesk/,
可以看到如下圖:


這個插件使得elasticsearch太直觀了,數據在哪、怎么變動的、流動的過程都顯示的一清二楚,很酷炫,大贊!為啥Solr沒有這樣的東東呢?
六、安裝elasticsearch-servicewrapper插件
elasticsearch-servicewrapper插件是ElasticSearch的服務化插件。
在https://github.com/elasticsearch/elasticsearch-servicewrapper下載該插件后,解壓縮。將service目錄拷貝到elasticsearch目錄的bin目錄下。
而后,可以通過執行以下語句安裝、啟動、停止ElasticSearch。(先不要執行)
[root@node1 service]# sh elasticsearch install (Must be root to perform this action.)
[root@node1 service]# sh elasticsearch start
[root@node1 service]# sh elasticsearch stop
這個插件也是實用的不要不要的。沒有此插件,有多少人還要寫一個腳本來開機啟動啊。需要的請舉手!
七、將配置好的ElasticSearch拷貝到各服務器
在一台服務器上執行完成步驟二到步驟七后,得到最終的elasticsearch-1.7.1文件夾。將此文件夾打包並scp拷貝到各服務器。
八、配置ElasticSearch集群
在各服務器(node1 -> node3)中。
執行下面語句對配置文件elasticsearch.yml中的內容進行修改:
[angelwang@node1 ~]$ vim elasticsearch-1.7.1/config/elasticsearch.yml
修改elasticsearch.yml后的部分文件內容:
################################### Cluster ###################################
# Cluster name identifies your cluster for auto-discovery. If you're running
# multiple clusters on the same network, make sure you're using unique names.
#
cluster.name: elasticsearch_angelwang
#################################### Node #####################################
# Node names are generated dynamically on startup, so you're relieved
# from configuring them manually. You can tie this node to a specific name:
#
node.name: "node196"
九、啟動ElasticSearch集群
可以通過執行sh elasticsearch start或./elasticsearch語句啟動ElasticSearch。
也可以在通過執行[root@node1 service]# sh elasticsearch install后,通過執行:[root@node1 service]# chmod 777 /home/angelwang/elasticsearch-1.7.1/bin/service/elasticsearch,分配給elasticsearch執行權限。執行[root@node1 service]# /etc/init.d/elasticsearch start啟動ElasticSearch服務。而后就可以執行[root@node1 service]# service elasticsearch start來啟動ElasticSearch了。系統reboot后也能開機啟動。
在所有服務器(node1 -> node3)上的ElasticSearch配置相同的cluster.name后,依次啟動各服務器上的ElasticSearch,便可以通過bigdesk查看該集群下的所有node狀態。集群啟動結束。
十、ElasticSearch集群功能測試
可以在head頁面新建索引、刪除索引、數據瀏覽、查詢等操作,新建索引時需要設置分片數、副本數,可以在bigdesk頁面進行分片及副本的查看。
數據均存儲於elasticsearch-1.7.1/data目錄下,以cluster.name進行分目錄存儲。下圖說明了兩個cluster.name的存儲方式。
我們對已啟動的(node1 -> node3)上的ElasticSearch進行監控。下面圖1 -> 圖4是當集群中一個node重啟時,集群內數據復制移動的過程。索引的分片數為5,副本數為1。

圖1: 三個node穩定后 圖2: 關閉一個node196

圖3: 兩個node穩定后 圖4: 啟動node196,恢復三個node穩定后
可以通過上面的操作和形象的圖形,看到宕機一個對這個集群真是一點關系都沒有,數據在各服務器間自如流動、分布,各服務器並無主次之分,因此ES的可用性真的是很好!
Solr我也用過很久,我個人感覺,ElasticSearch比Solr好就好在有那么多好用的插件可以用,即有形象直觀的顯示,又有方便實用的工具,真是感謝這些開源貢獻者們,沒有你們就沒有這么一個好用的搜索引擎ElasticSearch了,很多的公司業務也便無法開展了!當然ElasticSearch目前也有不少亟需解決的問題,以后有空再聊。
