文章目錄
-
- 簡介
- 安裝
-
- 部署java環境
- 安裝并運作es
- 測試
- 配置參數
- 本地啟動叢集
簡介
Elasticsearch是一個基于Apache Lucene的開源搜尋引擎。Elasticsearch也使用Java開發并使用Lucene作為其核心來實作所有索引和搜尋的功能,但是它的目的是通過簡單的RESTful API來隐藏Lucene的複雜性,進而讓全文搜尋變得簡單。
安裝
安裝 Elasticsearch 之前,你需要先安裝一個較新的版本的 Java,最好的選擇是,你可以從 www.java.com 獲得官方提供的最新版本的 Java。之後,你可以從 elastic 的官網 elastic.co/downloads/elasticsearch 擷取最新版本的 Elasticsearch。
部署java環境
# tar zxvf jdk-8u181-linux-x64.tar.gz
# mv jdk-8u181-linux-x64 java
//添加如下内容到profile檔案中,注意修改自己的java路徑
# vim /etc/profile
JAVA_HOME=/public/work/java
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH
# source /etc/profile
安裝并運作es
# tar zxvf elasticsearch-6.4.0.tar.gz
//es預設為了安全起見,禁止root使用者啟動es,是以我們需要建立普通使用者并授權來啟動es
# useradd elastic
# chown -R elastic elasticsearch-6.4.0
# su elastic
$ cd elasticsearch-6.4.0
//背景運作es
$ bin/elastic -d
測試
//輸出如下資訊表示運作成功
# curl localhost:9200/?pretty
{
"name" : "eBF3tt5",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "P7Orc-GcQR--Mx0iEFSjMA",
"version" : {
"number" : "6.4.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "595516e",
"build_date" : "2018-08-17T23:18:47.308994Z",
"build_snapshot" : false,
"lucene_version" : "7.4.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
配置參數
- cluster.name 叢集名,預設elasticsearch,建議修改
- node.name 節點名,同一叢集下節點名不能重複
- node.master 是否為主節點,選項為true或false,當為true時在叢集啟動時該節點為主節點,在當機或任務挂掉後會選舉新的主節點,恢複後該節點依然為主節點
- node.data 是否處理資料,選項為true或false。負責資料的相關操作
- path.data 預設資料路徑,可用逗号分隔多個路徑
- path.logs 預設日志路徑
- network.host 對外暴露的host,設定為0.0.0.0時外網主機即可通路本地es
- transport.tcp.port 叢集間通信的端口号,預設為9300
- discovery.zen.ping.unicast.hosts 叢集ip集合,可指定端口,預設為9300,如[“192.168.1.101”,“192.168.1.102”]
- discovery.zen.minimum_master_nodes 最少的主節點個數,為了防止腦裂,最好設定為(總節點數/2 + 1)個
- discovery.zen.ping_timeout 主節點選舉逾時時間設定
- gateway.recover_agter_nodes 值為n,網關控制在n個節點啟動之後才恢複整個叢集
- node.max_local_storage_nodes 值為n,一個系統中最多啟用節點個數為n
本地啟動叢集
//這樣就啟動了3個es執行個體
# bin/elasticsearch
# bin/elasticsearch -Ehttp.port=8200 -Epath.data=node2
# bin/elasticsearch -Ehttp.port=7200 -Epath.data=node3