服務器:3臺(node1 -> node3)html
操做系統:Cent OS 5.6,添加普通用戶angelwanghtml5
ElasticSearch版本:1.7.1node
JDK版本:1.8git
在每臺服務器(node1 -> node3)上安裝JDK,安裝過程略。github
如下二至六步能夠選取某臺服務器執行。sql
一、下載elasticsearch-1.7.1.tar.gz數據庫
二、解壓:[angelwang@node1 ~]$ tar -xf elasticsearch-1.4.2.tar.gzvim
elasticsearch-head是一個elasticsearch的集羣管理工具,它是徹底由html5編寫的獨立網頁程序。服務器
一、聯網環境,執行下面語句進行安裝:網絡
[angelwang@node1 ~]$ ./elasticsearch-1.7.1/bin/plugin -install mobz/elasticsearch-head
二、離線安裝:
[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插件能夠作到: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語句也是很方便的吧。此工具的開發者真是體貼。
bigdesk是elasticsearch的一個集羣監控工具,能夠經過它來查看es集羣的各類狀態,如:cpu、內存使用狀況,索引數據、搜索狀況,http鏈接數等。
一、聯網環境
[angelwang@node1 ~]$ ./bin/plugin -install lukas-vlcek/bigdesk
在啓動ElasticSearch後,能夠經過訪問:http://node1:9200/_plugin/bigdesk/,
能夠看到以下圖:
這個插件使得elasticsearch太直觀了,數據在哪、怎麼變更的、流動的過程都顯示的一清二楚,很酷炫,大讚!爲啥Solr沒有這樣的東東呢?
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-1.7.1文件夾。將此文件夾打包並scp拷貝到各服務器。
在各服務器(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"
能夠經過執行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狀態。集羣啓動結束。
能夠在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目前也有很多亟需解決的問題,之後有空再聊。