簡介
開始學es,我習慣邊學邊記,總結出現的問題和解決方法。本文是在兩台linux虛拟機下,安裝了三個節點。本次搭建es同時實踐了兩種模式——單機模式和分布式模式。條件允許的話,可以在多台機器上配置es節點,如果你機器性能有限,那麼可以在一台虛拟機上完成多節點的配置。
如圖,是本次3個節點的分布。
虛拟機主機名
ip
es節點
master
192.168.137.100
node1、node3
slave
192.168.137.101
node2
index: es裡的index相當于一個資料庫。
type: 相當于資料庫裡的一個表。
id: 唯一,相當于主鍵。
node:節點是es執行個體,一台機器可以運作多個執行個體,但是同一台機器上的執行個體在配置檔案中要確定http和tcp端口不同(下面有講)。
cluster:代表一個叢集,叢集中有多個節點,其中有一個會被選為主節點,這個主節點是可以通過選舉産生的,主從節點是對于叢集内部來說的。
shards:代表索引分片,es可以把一個完整的索引分成多個分片,這樣的好處是可以把一個大的索引拆分成多個,分布到不同的節點上,構成分布式搜尋。分片的數量隻能在索引建立前指定,并且索引建立後不能更改。
replicas:代表索引副本,es可以設定多個索引的副本,副本的作用一是提高系統的容錯性,當個某個節點某個分片損壞或丢失時可以從副本中恢複。二是提高es的查詢效率,es會自動對搜尋請求進行負載均衡。
名稱
版本
下載下傳位址
elasticsearch
1.7.3
<a target="_blank" href="https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.3.tar.gz">elasticsearch-1.7.3.tar.gz</a>
下載下傳後,放到你的目錄下并解壓. 因為我們要配置包含三個節點的叢集,可以先将其重命名為elasticsearch-node1。比如我的是 /home/zkpk/elasticsearch-node1。
(1) 初步修改
打開/home/zkpk/elasticsearch-node1/config目錄下的elasticsearch.yml 檔案 ,修改以下屬性值并取消該行的注釋:
(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 檔案修改如下:
對于node2: 對 elasticsearch.yml 修改如下
注意:
1.對于單機多節點的es叢集,一定要注意修改 transport.tcp.port 和http.port 的預設值保證節點間不沖突。
2. 出現找不到同一叢集中的其他節點的情況,檢查下 discovery.zen.ping.unicast.hosts 是否已設定。
編輯 /home/zkpk/elasticsearch-1.7.3/bin/elasticsearch.in.sh, 設定 es_min_mem和es_max_mem,確定二者數值一緻,或者可以在啟動es時指定,
若想讓es背景運作,則
前台運作:可以通過”ctrl+c”組合鍵來停止運作
背景運作,可以通過”kill -9 程序号”停止.也可以通過rest api接口:
來關閉整個叢集,通過:
來關閉單個節點.
bigdesk plugin : 對叢集中es狀态進行監控。
elasticsearch head plugin: 對es進行各種操作,如查詢、删除、浏覽索引等。
進入到節點elasticsearch-node1/bin路徑,并安裝插件。
[zkpk@master bin]$ ./plugin -install lukas-vlcek/bigdesk

每個小方塊就是索引分片,可以看到每個索引被分成幾個分片,每個分片還有它的備份分片,然後存儲在三個節點上。粗框的是主分片,細框的是備份分片。
現在我們來添加一個索引記錄吧~
(1)點選 複合查詢[+] ,我們可以在 megacorp 索引 (相當于資料庫名)的 employee 類型(相當于表名)下新增一個id為2的人的資訊。
點選下方的 送出請求 按鈕,頁面右方有回饋資訊,“created”代表是否為建立。添加成功。
點選 浏覽資料 ,在左側 索引 下選擇 megacorp,如圖,
可以看到,一條id為2的記錄被添加了。
(2)下面我們修改id為2 的人的年齡為15,把about 資訊去掉,并且加一項興趣。
送出後,右側有回報資訊,“created”為 false,因為我們這次不是建立而是修改。
傳回浏覽資料,id為2 的記錄,年齡、興趣等均已發生變化。