linux下elasticsearch 安装、配置及示例
簡介?
開始學(xué)es,我習(xí)慣邊學(xué)邊記,總結(jié)出現(xiàn)的問題和解決方法。本文是在兩臺linux虛擬機下,安裝了三個節(jié)點。本次搭建es同時實踐了兩種模式——單機模式和分布式模式。條件允許的話,可以在多臺機器上配置es節(jié)點,如果你機器性能有限,那么可以在一臺虛擬機上完成多節(jié)點的配置。?
如圖,是本次3個節(jié)點的分布。
| master | 192.168.137.100 | node1、node3 |
| slave | 192.168.137.101 | node2 |
?
| 注意:先去 /etc/hosts 文件里,將主機名修改為 master、slave,或者在本文用到hostname的地方改為你的主機名。 |
?
| 2017.8.28 博文更新 | es的主節(jié)點是選出來的,它不一定在master 機器上,也就是es主節(jié)點不一定非得是node1或node2,也可能是node3. |
?
一、下載及配置
1.幾個基本名詞
index:?es里的index相當于一個數(shù)據(jù)庫。?
type:?相當于數(shù)據(jù)庫里的一個表。?
id:?唯一,相當于主鍵。?
node:節(jié)點是es實例,一臺機器可以運行多個實例,但是同一臺機器上的實例在配置文件中要確保http和tcp端口不同(下面有講)。?
cluster:代表一個集群,集群中有多個節(jié)點,其中有一個會被選為主節(jié)點,這個主節(jié)點是可以通過選舉產(chǎn)生的,主從節(jié)點是對于集群內(nèi)部來說的。?
shards:代表索引分片,es可以把一個完整的索引分成多個分片,這樣的好處是可以把一個大的索引拆分成多個,分布到不同的節(jié)點上,構(gòu)成分布式搜索。分片的數(shù)量只能在索引創(chuàng)建前指定,并且索引創(chuàng)建后不能更改。?
replicas:代表索引副本,es可以設(shè)置多個索引的副本,副本的作用一是提高系統(tǒng)的容錯性,當個某個節(jié)點某個分片損壞或丟失時可以從副本中恢復(fù)。二是提高es的查詢效率,es會自動對搜索請求進行負載均衡。
2.下載
| elasticsearch | 1.7.3 | elasticsearch-1.7.3.tar.gz |
下載后,放到你的目錄下并解壓. 因為我們要配置包含三個節(jié)點的集群,可以先將其重命名為elasticsearch-node1。比如我的是 /home/zkpk/elasticsearch-node1。
3.修改配置文件
(1)?初步修改?
打開/home/zkpk/elasticsearch-node1/config目錄下的elasticsearch.yml?文件 ,修改以下屬性值并取消該行的注釋:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
(2)?進一步修改?
拷貝 elasticsearch-node1 整個文件夾,兩份,一份elasticsearch-node2,一份elasticsearch-node3.?
將elasticsearch-node2 文件夾copy到另外一臺IP為192.168.137.101的機器上。而在 192.168.137.100 機器上有 node1和node3.
對于node3:?node3和node1在一臺機器上,node1的配置文件里端口默認分別是9300和9200,所以要改一下node3配置文件里的端口,elasticsearch.yml?文件修改如下:
node.name: "es-node3" transport.tcp.port: 9301 http.port: 9201- 1
- 2
- 3
對于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
- 2
- 3
- 4
注意:?
1.對于單機多節(jié)點的es集群,一定要注意修改?transport.tcp.port?和http.port?的默認值保證節(jié)點間不沖突。?
2. 出現(xiàn)找不到同一集群中的其他節(jié)點的情況,檢查下?
discovery.zen.ping.unicast.hosts?是否已設(shè)置。
二、運行 & 關(guān)閉 elasticsearch
1.運行elasticsearch :
編輯 /home/zkpk/elasticsearch-1.7.3/bin/elasticsearch.in.sh, 設(shè)置 ES_MIN_MEM和ES_MAX_MEM,確保二者數(shù)值一致,或者可以在啟動es時指定,
[zkpk@master ~]$ cd ~/elasticsearch-node1/bin [zkpk@master bin]$ ./elasticsearch -Xms512m -Xmx512m- 1
- 2
若想讓es后臺運行,則
[zkpk@master bin]$ ./elasticsearch -d -Xms512m -Xmx512m- 1
2.關(guān)閉elasticsearch:
前臺運行:可以通過”CTRL+C”組合鍵來停止運行?
后臺運行,可以通過”kill -9 進程號”停止.也可以通過REST API接口:
- 1
來關(guān)閉整個集群,通過:
curl -XPOST http://主機IP:9200/_cluster/nodes/節(jié)點標示符(如es-node1)/_shutdown- 1
來關(guān)閉單個節(jié)點.
三、插件及其安裝
BigDesk Plugin :?對集群中es狀態(tài)進行監(jiān)控。?
Elasticsearch Head Plugin:?對ES進行各種操作,如查詢、刪除、瀏覽索引等。
1.安裝head插件
進入到節(jié)點elasticsearch-node1/bin路徑,并安裝插件。
[zkpk@master bin]$ ./plugin -install mobz/elasticsearch-head- 1
2. 安裝bigdesk
[zkpk@master bin]$ ./plugin -install lukas-vlcek/bigdesk
讓我們看下es頁面吧~~
打開head瀏覽,瀏覽器輸入http://192.168.137.100:9200/_plugin/head/?,如圖,?
?
圖1
?
每個小方塊就是索引分片,可以看到每個索引被分成幾個分片,每個分片還有它的備份分片,然后存儲在三個節(jié)點上。粗框的是主分片,細框的是備份分片。
四、添加索引
現(xiàn)在我們來添加一個索引記錄吧~
1.可以在命令窗口通過命令來添加
curl -XPUT 'http://主機IP:9200/dept/employee/32' -d '{ "empname": "emp32"}'- 1
見?http://www.oschina.net/translate/elasticsearch-getting-started?cmp
2.我們可以在頁面上通過JSON添加
(1)點擊 復(fù)合查詢[+] ,我們可以在 megacorp 索引 (相當于數(shù)據(jù)庫名)的 employee 類型(相當于表名)下新增一個id為2的人的信息。
?
圖2?
點擊下方的?提交請求?按鈕,頁面右方有回饋信息,“created”代表是否為新建。添加成功。
?
圖3
點擊?瀏覽數(shù)據(jù)?,在左側(cè)?索引?下選擇?megacorp,如圖,
?
圖4
可以看到,一條id為2的記錄被添加了。
?
(2)下面我們修改id為2 的人的年齡為15,把about 信息去掉,并且加一項興趣。
?
圖5
提交后,右側(cè)有反饋信息,“created”為?false,因為我們這次不是新建而是修改。
?
?
圖6
返回瀏覽數(shù)據(jù),id為2 的記錄,年齡、興趣等均已發(fā)生變化。
?
圖7
參考:?
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
?
文檔總結(jié)不易,希望能幫到各位,和各位一起進步,另,轉(zhuǎn)載請標明出處。
總結(jié)
以上是生活随笔為你收集整理的linux下elasticsearch 安装、配置及示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql连接出现java.sql.sq
- 下一篇: Linux 通过docker安装ngin