linux下elasticsearch 安裝、配置及示例

簡介
開始學es,我習慣邊學邊記,總結出現的問題和解決方法。本文是在兩臺Linux虛擬機下,安裝了三個節點。本次搭建es同時實踐了兩種模式——單機模式和分佈式模式。條件容許的話,能夠在多臺機器上配置es節點,若是你機器性能有限,那麼能夠在一臺虛擬機上完成多節點的配置。
如圖,是本次3個節點的分佈。html

虛擬機主機名 IP es節點
master 192.168.137.100 node一、node3
slave 192.168.137.101 node2

1、下載及配置

1.幾個基本名詞

index: es裏的index至關於一個數據庫
type: 至關於數據庫裏的一個表。
id: 惟一,至關於主鍵。
node:節點是es實例,一臺機器能夠運行多個實例,可是同一臺機器上的實例在配置文件中要確保http和tcp端口不一樣(下面有講)。
cluster:表明一個集羣,集羣中有多個節點,其中有一個會被選爲主節點,這個主節點是能夠經過選舉產生的,主從節點是對於集羣內部來講的。
shards:表明索引分片,es能夠把一個完整的索引分紅多個分片,這樣的好處是能夠把一個大的索引拆分紅多個,分佈到不一樣的節點上,構成分佈式搜索。分片的數量只能在索引建立前指定,而且索引建立後不能更改。
replicas:表明索引副本,es能夠設置多個索引的副本,副本的做用一是提升系統的容錯性,當個某個節點某個分片損壞或丟失時能夠從副本中恢復。二是提升es的查詢效率,es會自動對搜索請求進行負載均衡。node

2.下載

名稱 版本 下載地址
elasticsearch 1.7.3 elasticsearch-1.7.3.tar.gz

下載後,放到你的目錄下並解壓. 由於咱們要配置包含三個節點的集羣,能夠先將其重命名爲elasticsearch-node1。好比個人是 /home/zkpk/elasticsearch-node1。mysql

3.修改配置文件

(1) 初步修改
打開/home/zkpk/elasticsearch-node1/config目錄下的elasticsearch.yml 文件 ,修改如下屬性值並取消該行的註釋:linux

cluster.name:  elasticsearch
#這是集羣名字,咱們 起名爲 elasticsearch。es啓動後會將具備相同集羣名字的節點放到一個集羣下。

node.name: "es-node1"
#節點名字。

covery.zen.minimum_master_nodes: 2
#指定集羣中的節點中有幾個有master資格的節點。對於大集羣能夠寫3個以上。

discovery.zen.ping.timeout: 40s

#默認是3s,這是設置集羣中自動發現其它節點時ping鏈接超時時間,爲避免由於網絡差而致使啓動報錯,我設成了40s。

discovery.zen.ping.multicast.enabled: false
#設置是否打開多播發現節點,默認是true。

network.bind_host: 192.168.137.100
#設置綁定的ip地址,這是個人master虛擬機的IP。

network.publish_host: 192.168.137.100
#設置其它節點和該節點交互的ip地址。

network.host: 192.168.137.100
#同時設置bind_host和publish_host上面兩個參數。

discovery.zen.ping.unicast.hosts: ["192.168.137.100",  "192.168.137.101","192.168.137.100:9301"]
#discovery.zen.ping.unicast.hosts:["節點1的 ip","節點2 的ip","節點3的ip"]
指明集羣中其它可能爲master的節點ip,以防es啓動後發現不了集羣中的其餘節點。第一對引號裏是node1,默認端口是9300。第二個是 node2 ,在另一臺機器上。第三個引號裏是node3,由於它和node1在一臺機器上,因此指定了9301端口。

 

(2) 進一步修改
拷貝 elasticsearch-node1 整個文件夾,兩份,一份elasticsearch-node2,一份elasticsearch-node3.
將elasticsearch-node2 文件夾copy到另一臺IP爲192.168.137.101的機器上。而在 192.168.137.100 機器上有 node1和node3.sql

對於node3: node3和node1在一臺機器上,node1的配置文件裏端口默認分別是9300和9200,因此要改一下node3配置文件裏的端口,elasticsearch.yml 文件修改以下:數據庫

node.name: "es-node3"
transport.tcp.port: 9301
http.port: 9201

 

對於node2:elasticsearch.yml 修改以下瀏覽器

node.name: "es-node2"
network.bind_host: 192.168.137.101
network.publish_host: 192.168.137.101
network.host: 192.168.137.101

 

注意:
1.對於單機多節點的es集羣,必定要注意修改 transport.tcp.porthttp.port 的默認值保證節點間不衝突。
2. 出現找不到同一集羣中的其餘節點的狀況,檢查下 discovery.zen.ping.unicast.hosts 是否已設置。網絡

2、運行 & 關閉 elasticsearch

1.運行elasticsearch :

編輯 /home/zkpk/elasticsearch-1.7.3/bin/elasticsearch.in.sh, 設置 ES_MIN_MEM和ES_MAX_MEM,確保兩者數值一致,或者能夠在啓動es時指定,負載均衡

[zkpk@master ~]$ cd ~/elasticsearch-node1/bin
[zkpk@master bin]$ ./elasticsearch -Xms512m -Xmx512m

 

若想讓es後臺運行,則curl

[zkpk@master bin]$ ./elasticsearch -d -Xms512m -Xmx512m

 

2.關閉elasticsearch:

前臺運行:能夠經過」CTRL+C」組合鍵來中止運行
後臺運行,能夠經過」kill -9 進程號」中止.也能夠經過REST API接口:

curl -XPOST http://主機IP:9200/_cluster/nodes/_shutdown

 

來關閉整個集羣,經過:

curl -XPOST http://主機IP:9200/_cluster/nodes/節點標示符(如es-node1)/_shutdown

 

來關閉單個節點.

3、插件及其安裝

BigDesk Plugin : 對集羣中es狀態進行監控。
Elasticsearch Head Plugin: 對ES進行各類操做,如查詢、刪除、瀏覽索引等。

1.安裝head插件

進入到節點elasticsearch-node1/bin路徑,並安裝插件。

[zkpk@master bin]$ ./plugin -install mobz/elasticsearch-head

 

2. 安裝bigdesk

[zkpk@master bin]$ ./plugin -install lukas-vlcek/bigdesk

讓咱們看下es頁面吧~~

打開head瀏覽,瀏覽器輸入http://192.168.137.100:9200/_plugin/head/ ,如圖,

開始每一個節點下是空白的,沒有這些索引分片

每一個小方塊就是索引分片,能夠看到每一個索引被分紅幾個分片,每一個分片還有它的備份分片,而後存儲在三個節點上。粗框的是主分片,細框的是備份分片。

4、添加索引

如今咱們來添加一個索引記錄吧~

1.能夠在命令窗口經過命令來添加

curl -XPUT 'http://主機IP:9200/dept/employee/32' -d '{ "empname": "emp32"}'

 

http://www.oschina.net/translate/elasticsearch-getting-started?cmp

2.咱們能夠在頁面上經過JSON添加

(1)點擊 複合查詢[+] ,咱們能夠在 megacorp 索引 (至關於數據庫名)的 employee 類型(至關於表名)下新增一個id爲2的人的信息。

這裏寫圖片描述

點擊下方的 提交請求 按鈕,頁面右方有回饋信息,「created」表明是否爲新建。添加成功。

這裏寫圖片描述

點擊 瀏覽數據 ,在左側 索引 下選擇 megacorp,如圖,

這裏寫圖片描述

能夠看到,一條id爲2的記錄被添加了。

(2)下面咱們修改id爲2 的人的年齡爲15,把about 信息去掉,而且加一項興趣。

這裏寫圖片描述

提交後,右側有反饋信息,「created」爲 false,由於咱們此次不是新建而是修改。

這裏寫圖片描述

返回瀏覽數據,id爲2 的記錄,年齡、興趣等均已發生變化。

這裏寫圖片描述

參考:
http://www.cnblogs.com/huangfox/p/3543351.html
http://www.linuxidc.com/Linux/2015-02/114243.htm
http://my.oschina.net/u/579033/blog/394845?fromerr=Kt60ej6x

文檔總結不易,但願能幫到各位,和各位一塊兒進步,另,轉載請標明出處。

相關文章
相關標籤/搜索