linux下elasticsearch 安装、配置及示例
簡介?
開始學es,我習慣邊學邊記,總結出現的問題和解決方法。本文是在兩臺linux虛擬機下,安裝了三個節點。本次搭建es同時實踐了兩種模式——單機模式和分布式模式。條件允許的話,可以在多臺機器上配置es節點,如果你機器性能有限,那么可以在一臺虛擬機上完成多節點的配置。?
如圖,是本次3個節點的分布。
| master | 192.168.137.100 | node1、node3 |
| slave | 192.168.137.101 | node2 |
?
| 注意:先去 /etc/hosts 文件里,將主機名修改為 master、slave,或者在本文用到hostname的地方改為你的主機名。 |
?
| 2017.8.28 博文更新 | es的主節點是選出來的,它不一定在master 機器上,也就是es主節點不一定非得是node1或node2,也可能是node3. |
?
一、下載及配置
1.幾個基本名詞
index:?es里的index相當于一個數據庫。?
type:?相當于數據庫里的一個表。?
id:?唯一,相當于主鍵。?
node:節點是es實例,一臺機器可以運行多個實例,但是同一臺機器上的實例在配置文件中要確保http和tcp端口不同(下面有講)。?
cluster:代表一個集群,集群中有多個節點,其中有一個會被選為主節點,這個主節點是可以通過選舉產生的,主從節點是對于集群內部來說的。?
shards:代表索引分片,es可以把一個完整的索引分成多個分片,這樣的好處是可以把一個大的索引拆分成多個,分布到不同的節點上,構成分布式搜索。分片的數量只能在索引創建前指定,并且索引創建后不能更改。?
replicas:代表索引副本,es可以設置多個索引的副本,副本的作用一是提高系統的容錯性,當個某個節點某個分片損壞或丟失時可以從副本中恢復。二是提高es的查詢效率,es會自動對搜索請求進行負載均衡。
2.下載
| elasticsearch | 1.7.3 | elasticsearch-1.7.3.tar.gz |
下載后,放到你的目錄下并解壓. 因為我們要配置包含三個節點的集群,可以先將其重命名為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.對于單機多節點的es集群,一定要注意修改?transport.tcp.port?和http.port?的默認值保證節點間不沖突。?
2. 出現找不到同一集群中的其他節點的情況,檢查下?
discovery.zen.ping.unicast.hosts?是否已設置。
二、運行 & 關閉 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- 1
- 2
若想讓es后臺運行,則
[zkpk@master bin]$ ./elasticsearch -d -Xms512m -Xmx512m- 1
2.關閉elasticsearch:
前臺運行:可以通過”CTRL+C”組合鍵來停止運行?
后臺運行,可以通過”kill -9 進程號”停止.也可以通過REST API接口:
- 1
來關閉整個集群,通過:
curl -XPOST http://主機IP:9200/_cluster/nodes/節點標示符(如es-node1)/_shutdown- 1
來關閉單個節點.
三、插件及其安裝
BigDesk Plugin :?對集群中es狀態進行監控。?
Elasticsearch Head Plugin:?對ES進行各種操作,如查詢、刪除、瀏覽索引等。
1.安裝head插件
進入到節點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
?
每個小方塊就是索引分片,可以看到每個索引被分成幾個分片,每個分片還有它的備份分片,然后存儲在三個節點上。粗框的是主分片,細框的是備份分片。
四、添加索引
現在我們來添加一個索引記錄吧~
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)點擊 復合查詢[+] ,我們可以在 megacorp 索引 (相當于數據庫名)的 employee 類型(相當于表名)下新增一個id為2的人的信息。
?
圖2?
點擊下方的?提交請求?按鈕,頁面右方有回饋信息,“created”代表是否為新建。添加成功。
?
圖3
點擊?瀏覽數據?,在左側?索引?下選擇?megacorp,如圖,
?
圖4
可以看到,一條id為2的記錄被添加了。
?
(2)下面我們修改id為2 的人的年齡為15,把about 信息去掉,并且加一項興趣。
?
圖5
提交后,右側有反饋信息,“created”為?false,因為我們這次不是新建而是修改。
?
?
圖6
返回瀏覽數據,id為2 的記錄,年齡、興趣等均已發生變化。
?
圖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
?
文檔總結不易,希望能幫到各位,和各位一起進步,另,轉載請標明出處。
總結
以上是生活随笔為你收集整理的linux下elasticsearch 安装、配置及示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql连接出现java.sql.sq
- 下一篇: Linux 通过docker安装ngin