elasticsearch-1.7.1 (es Windows 64) 安裝、啟動、停止的詳細記錄
restful adj.平靜的,悠閒的,讓人得到休息的;安生
RESTful API
為了建立 Elasticsearch ,第一步是確保正確安裝Java 環境。我就預設安裝了,因為我確實安裝了,jdk 1.8版本的。
這個安裝完全不需要配置,只需要把下載的東西解壓,直接可以用。
我提供某度雲盤,具體如下。
連結:http://pan.baidu.com/s/1c1JfIjY 密碼:zcpm
包括 elasticsearch-1.7.1 和 elasticsearch-2.3.4 兩個版本的壓縮包。其中1.7版本的裡面有2個外掛。head和bigdesk。下面介紹2個外掛:
head
用於在瀏覽器中管理索引,查詢資料等
地址:http://192.168.1.233:9200/_plugin/head
Bigdesk
用於實時監控索引的效能狀態
地址:http://192.168.1.233:9200/_plugin/bigdesk
安裝,啟動ES。
執行完之後,就安裝好了。不需要安裝,不需要配置,就可以用了。
開啟這個網址,http://localhost:9200/?pretty,看到如下概覽資訊。
看到上面的資訊,說明就啟動OK了,簡單,只要你的Java環境是OK的。
這個圖,是因為,我的plugins資料夾下面已經有2個外掛了,head和bigdesk。看到這個是head。可以提供方便的搜尋方式吧。
目錄概覽:
bin :執行Elasticsearch例項和外掛管理所需的指令碼
confg: 配置檔案所在的目錄
lib : Elasticsearch使用的庫
data : Elasticsearch使用的所有資料的儲存位置
logs : 關於事件和錯誤記錄的檔案
plugins: 儲存所安裝外掛的地方
work : Elasticsearch使用的臨時檔案,這個檔案我這暫時好像沒有,可以根據配置檔案來 配置這些個檔案的目錄位置,比如上面的data,logs,
data資料夾裡面具體,如下,有2個資料夾,第一個是剛剛預設配置啟動時,生成的叢集和節點,第二個是我修改了叢集和節點的預設值又啟動後生成的。
config配置資料夾修改配置檔案
可以看到兩個檔案:elasticsearch.yml(或elasticsearch.json,如果有的話會被使用)和logging.yml。第一個檔案負責設定伺服器的預設配置值。重要的是,因為一些配置值可以在執行時更改,也可作為叢集狀態的一部分被保留,所以這個檔案中的值可能不準確。有兩個值不能在執行時更改,分別是cluster.name和node.name。日誌的配置檔案一般不需要修改。暫不作了解。
bin資料夾下的檔案,我做了個簡單的測試,可能有點蠢啊。就看看吧。
上面配置完之後,就可以直接在瀏覽器裡面開啟
localhost:9200/_plugin/head/index.html
這個地址,看到如下圖的資訊。
先了解2個概念。
叢集和節點
節點(node)是一個執行著的Elasticsearch例項。
叢集(cluster)是一組具有相同cluster.name的節點集合,他們協同工作,共享資料並提供故障轉移和擴充套件功能,當然一個節點也可以組成一個叢集。
關於 cluster.name 的解釋:
這個在config配置檔案 elasticsearch.yml 裡面可以自己修改,我的叢集就叫lixuekai,具體看上面的圖。配置完,然後重啟ELasticsearch 就OK了。
停止就是Ctrl + C,然後yes就停止了。
解釋URL裡面的 ?pretty 。
http://localhost:9200/_cluster/health?pretty,這個url可以檢視叢集的健康狀況。cluster 這個單詞就是叢集的意思,注意識得這個單詞,也就明白這個URL的意思了。在head外掛裡面,叢集名字後面的綠色部分,可以直接看到,要是沒這個外掛,也可這麼看。API返回的JSON物件資訊裡,換行符是被省略的,在請求中加上pretty引數是強制Elasticsearch在響應中加上換行符,使之更可讀。下面給不帶引數的測試圖。
一個節點也是可以叫叢集的,現在弄2個節點的叢集。
現在看到的是一個節點,現在把 elasticsearch-1.7.1 這個目錄整個複製到其他任意個地方,然後,先修改下 配置檔案裡面的節點配置,我修改為 lxk_test2 ,然後再次啟動。啟動完之後,就有如下圖:貼出關鍵部分文字。看到。檢測到了之前執行的例項 lxk_test1 的節點,這2個節點就共同組成一個叢集。
[2016-12-07 18:03:08,867][INFO ][discovery ] [lxk_test2] lixuekai
/89cMZWiCQ32UrETZ33pflQ
[2016-12-07 18:03:11,968][INFO ][cluster.service ] [lxk_test2] detected
_master [lxk_test1][GMizXVJ9QKiYDXsdRg-_UQ][King-PC][inet[/192.168.1.134:9300]],
added {[lxk_test1][GMizXVJ9QKiYDXsdRg-_UQ][King-PC][inet[/192.168.1.134:9300]],
}, reason: zen-disco-receive(from master [[lxk_test1][GMizXVJ9QKiYDXsdRg-_UQ][Ki
ng-PC][inet[/192.168.1.134:9300]]])
[2016-12-07 18:03:12,159][INFO ][http ] [lxk_test2] bound_ad
dress {inet[/0:0:0:0:0:0:0:0:9201]}, publish_address {inet[/192.168.1.134:9201]}
[2016-12-07 18:03:12,160][INFO ][node ] [lxk_test2] started
然後,再看 http://localhost:9200/_plugin/head/index.html 這個head的外掛的顯示如下,可以看到確實節點就變成2個了,還是在同一個叢集裡面。
關閉ES
1。上面介紹的ctrl+c是簡單的關閉單個節點的方法。
2。殺掉伺服器程序也是可以的,(參考Linux上的kill命令和Windows上的工作管理員)
3。下面看如何關閉整個叢集。
可以執行以下命令來關掉整個叢集:
curl -XPOST http://localhost:9200/_cluster/nodes/_shutdown
上面這個命令,我看到別人在mac上測試,可以關閉叢集。
以下命令來關掉單個節點:假設:節點識別符號是BlrmMvBdSKiCeYGsiHijdg,說的不是節點的name
curl –XPOST http://localhost:9200/_cluster/nodes/BlrmMvBdSKiCeYGsiHijdg/_shutdown
上面的這個是在mac的命令列操作的吧。但是我測試的時候,一直是失敗。
獲得nodes的資訊的get請求如下:
http://localhost:9200/_cluster/state/nodes?pretty
head外掛上,可以在頁面直接操作,關閉節點。但是叢集的關閉是沒有直接提供快捷操作按鈕的。
Elasticsearch 作為系統服務執行
在Windows上執行系統服務
轉到Elasticsearch的安裝目錄,到bin子目錄下,執行:
service.bat install
如果你想看看所有被service.bat指令碼檔案暴露出來的命令,在相同目錄下執行:
service.bat
例如,為了啟動Elasticsearch,可執行如下命令:
service.bat start
然後啟動工作管理員,看到出現了elasticsearch的服務已經出現了。因為剛剛已經啟動了。所以,在head外掛的頁面看到這個節點變成了2個。
注意,因為我上面演示建多個節點的叢集,把原來的安裝的,又複製到其他地方了,這個操作,在哪個bin目錄下都是可以的。沒有試過,能不能把2個都給整成系統服務。目測也是可以的。