1. 程式人生 > >ElasticSearch叢集的安裝和配置

ElasticSearch叢集的安裝和配置

說明:這裡只介紹在Linux下ElasticSearch的安裝配置,windows下的使用跟Linux很類似

一、前期準備

    Elasticsearch 需要Java 7的支援,推薦使用Oracle JDK version 1.7.0_60,根據所選用平臺在這裡下載安裝,完成安裝後設置好環境變JAVA_HOME(如何設定Java的環境變數這裡不再贅述),然後可以使用java -version命令進行版本檢查。

二、下載安裝ElasticSearch

   完成準備工作之後,下載安裝ElasticSearch最新發布包,點這裡下載,選擇下載zip包elasticsearch-1.3.1.zip並上傳到伺服器的/usr/search/目錄下,然後使用命令unzip 
elasticsearch-1.3.1.zip進行解壓,這時進入/usr/search/elasticsearch-1.3.1/bin/ 用命令./elasticsearch -d啟動單個叢集。如果看到類似下面日誌後說明安裝正常: ./elasticsearch .....
    [2014-03-1313:42:23,630][INFO ][node           ][NewGoblin]started

三、啟動包含多個節點的ElasticSearch叢集

因為ElasticSearch原生就是支援叢集的,啟動單個es節點也是叢集,每個叢集都有一個名稱,預設的叢集名稱為elasticsearch,同樣每個
elasticsearch  節點也都有名稱,如果不指定,ElasticSearch會從自己的配置檔案中隨機選出一個作為自己的名稱,如果啟動節點時想指定叢集名稱和節點名稱,使用一下命令進行啟動: ./elasticsearch --cluster.name <叢集名稱> --node.name <節點名稱> 所以在ElasticSearch中啟動叢集是很簡單的事情,啟動其他的節點,可以在其上重複第一步和第二步的操作,如果不希望修改叢集名稱和節點名稱,那麼ElasticSearch通過使用區域網廣播自動發現機制尋找預設叢集名稱的所有節點,最終擁有相同叢集名稱的節點就自動的構成了一個ElasticSearch叢集,不用做其他繁瑣的配置,這樣一個叢集環境就搭建好了。這時可以在任意一臺伺服器使用 
curl 'localhost:9200/_cat/health?v' 檢視叢集健康狀態了,再比如:
   curl 'localhost:9200/_cat/nodes?v'   檢視叢集中所有的節點資訊
   curl 'localhost:9200/_cat/indices?v' 檢視所有索引
   curl -XPUT 'localhost:9200/customer?pretty' 建立索引名稱為customer的索引
   curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '{"name": "John Doe"}' 索引一篇文件,型別為external,文件ID:1
   curl -XGET 'localhost:9200/customer/external/1?pretty' 查詢一篇文件
   curl -XDELETE 'localhost:9200/customer?pretty' 刪除索引名稱為customer的索引

四、ElasticSearch外掛的安裝

   上述對於叢集的測試都是通過命令列的方式,使用起來不是很直觀,ElasticSeach提供外掛的方式可以對整個叢集進行檢測和管理、功能擴充套件等。           elasticsearch-servicewrapper是用在ElasticSearch上的Java服務包裝器,可以將Java程序包裝系統服務進行管理。在這裡下載外掛的zip包,解壓後,將目錄   中的service這個目錄拷貝到ES_HOME/bin/下,修改ES_HOME/bin/service/elasticsearch.conf中set.default.ES_HOME為ES的安裝根目錄,然後使用命令ES_HOME/bin/service/elasticsearch檢視elasticsearch-servicewrapper支援的引數:
console Run the elasticsearch in the foreground.
start Run elasticsearch in the background.
stop Stops elasticsearch if its running.
install Install elasticsearch to run on system startup (init.d / service).
remove Removes elasticsearch from system startup (init.d / service).
如果想將elasticsearch設定成系統服務可以通過以下步驟:  a、ES_HOME/bin/service/elasticsearch install  b、chkconfig elasticsearch on 然後就可以通過service elasticsearch [console] [start] [stop] [restart] [install] [remove]來操作了。

  2) 基於Web的叢集節點瀏覽外掛head

elasticsearch-head是ElasticSearch瀏覽叢集資訊並與之互動的web應用程式;通過該外掛可以檢視叢集中節點分佈拓撲圖,提供基於Json方式的查詢介面入口等功能。        使用說明:              a、 在這裡下載elasticsearch-head的zip包elasticsearch-head-master.zip              b、使用命令進行本地安裝:ES_HOME/bin/plugin -i head -u file:<目錄>/elasticsearch-head-master.zip              c、http://localhost:9200/_plugin/head進行檢視

  3) 官方推薦的ElasticSearch監控管理外掛Marvel

   該外掛提供更為詳細的叢集檢測管理功能,提供帶有查詢提示的介面Sense。 使用說明:              a、 在這裡下載elasticsearch-head的zip包elasticsearch-head-master.zip              b、使用命令進行本地安裝:ES_HOME/bin/plugin -i marvel -u file:<目錄>/elasticsearch-marvel-master.zip              c、http://localhost:9200/_plugin/marvel進行檢視

五、配置說明

  ElasticSearch大多配置基本都放在ES_HOME/config/elasticsearch.yml中,主要配置引數說明:
#cluster.name: elasticsearch             配置叢集名稱
#node.name: "Franz Kafka"                配置節點名稱
#node.master: true                       配置當前節點是否具有可選為master節點的資格、
#node.data: true                         配置當前節點是否允許儲存資料
#node.max_local_storage_nodes: 1         配置每個幾點可以啟動的Elasticsearch最大例項個數
#index.number_of_shards: 5               配置索引的預設分片數
#index.number_of_replicas: 1             配置索引的預設副本數
#path.conf: /path/to/conf                配置檔案存放目錄
#path.data: /path/to/data                配置該節點索引資料的存放目錄,多個用都好分割
#path.logs: /path/to/logs                配置日誌的存放目錄
#path.plugins: /path/to/plugins          配置外掛安裝目錄
#network.host: 192.168.0.1               配置節點繫結的IP和與其他幾點互動的IP
#transport.tcp.port: 9300                配置節點之間互動的埠
#http.port: 9200                         配置Http訪問的埠
#http.max_content_length: 100mb          配置可允許的文字最大長度