999 - Elasticsearch 環境搭建
阿新 • • 發佈:2019-12-31
搭建環境說明
- 官方支援的作業系統和JVM
- 支援Oracle JDK和Open JDK。
- JDK8以上,推薦1.8.0_131或以上。
- 這些檔案都是基於Elasticsearch v6.7.1。
Elasticsearch 單節點
解壓安裝
$ tar -zxvf ~/dev/doc/elasticsearch-6.7.1.tar.gz -C ~/dev/tools/
$ ln -s ~/dev/tools/elasticsearch-6.7.1/ ~/dev/tools/elasticsearch
$ vim .bash_profile
export ES_HOME=/Users/baozi/dev/tools/elasticsearch
export PATH=$PATH:$ES_HOME/bin
啟動測試
$ elasticsearch # 啟動
$ elasticsearch -d # 後臺啟動
warning: Falling back to java on path. This behavior is deprecated. Specify JAVA_HOME
GET / # 用Kibana傳送
{
"name" : "m9Y7FJV","cluster_name" : "elasticsearch","cluster_uuid" : "zkpO2cqsSIKCn-SVae0Ohg","version" : {
"number" : "6.7.1","build_flavor" : "default","build_type" : "zip","build_hash" : "2f32220","build_date" : "2019-04-02T15:59:27.961366Z","build_snapshot" : false,"lucene_version" : "7.7.0","minimum_wire_compatibility_version" : "5.6.0","minimum_index_compatibility_version" : "5.0.0"
},"tagline" : "You Know,for Search"
}
複製程式碼
Elasticsearch 叢集
引數方式:自己單機常用這種方式。
-E:更改引數。
path.data:資料存放目錄
path.logs:日誌存放目錄
$ elasticsearch -d -Ecluster.name=baozi -Enode.name=node1 -Ehttp.port=10001 -Epath.data=data_node1 -Epath.logs=logs_node1
$ elasticsearch -d -Ecluster.name=baozi -Enode.name=node2 -Ehttp.port=10002 -Epath.data=data_node2 -Epath.logs=logs_node2
$ elasticsearch -d -Ecluster.name=baozi -Enode.name=node3 -Ehttp.port=10003 -Epath.data=data_node3 -Epath.logs=logs_node3
複製程式碼
配置方式:正式的搭建叢集
node.master:是否可以為master。預設就是true。
cluster.name:叢集名稱。預設elasticsearch。
node.name:節點名稱。不配置自動生成,取UUID前7位。
network.host:繫結地址。預設繫結127.0.0.1
和[::1]
。
http.port:埠號。
discovery.zen.ping.unicast.hosts: 其他節點地址列表。
- 修改node1的elasticsearch.yml:
cluster.name: baozi
node.name: node1
network.host: 127.0.0.1
http.port: 10001
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
複製程式碼
- 修改node2的elasticsearch.yml:
cluster.name: baozi
node.name: node2
network.host: 127.0.0.1
http.port: 10002
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
複製程式碼
- 修改node3的elasticsearch.yml:
cluster.name: baozi
node.name: node3
network.host: 127.0.0.1
http.port: 10003
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
複製程式碼
- 啟動
$ ~/dev/tools/elasticsearch-node1/bin/elasticsearch -d
$ ~/dev/tools/elasticsearch-node2/bin/elasticsearch -d
$ ~/dev/tools/elasticsearch-node3/bin/elasticsearch -d
複製程式碼
Elasticsearch 批量關閉
$ jps | grep "Elasticsearch" | cut -f 1 -d " " | xargs kill -9
複製程式碼
大型環境部署
Puppet:puppet-elasticsearch
Chef:cookbook-elasticsearch
Ansible:ansible-elasticsearch
Elasticsearch 配置
配置檔案
-
elasticsearch.yml
: 配置Elasticsearch。 -
jvm.options
: 配置Elasticsearch JVM引數。 -
log4j2.properties
: 配置Elasticsearch 日誌。
更改目錄位置
四個位置:安裝目錄,配置目錄,日誌目錄,資料目錄。
更改配置目錄位置
:修改環境變數
export ES_PATH_CONF=/新的config目錄位置
複製程式碼
更改日誌目錄位置
:修改elasticsearch.yml
path.logs: /新的logs目錄位置
複製程式碼
更改資料目錄位置
:修改elasticsearch.yml
path.data: /新的data目錄位置
複製程式碼
jvm.options 配置規則
- 空行會被忽略。
-
#
開頭,註釋。
# 這是註釋
複製程式碼
-
-
開頭,JVM選項,獨立於JVM版本。
-Xmx2g
複製程式碼
-
數字:-
開頭,JVM選項,只有當JVM版本與數字版本匹配的時候才會應用。
8:-Xmx2g
複製程式碼
-
數字-:-
開頭,JVM選項,只有當JVM版本大於等於時才應用。
8-:-Xmx2g
複製程式碼
-
數字-數字:-
開頭,JVM選項,只有當JVM版本位於兩個數字範圍內才會應用。
8-9:-Xmx2g
複製程式碼
- 除此之外,其餘的配置都會被拒絕。
另外,除了使用jvm.options之外,還可以通過變數ES_JAVA_OPTS
來修改
export ES_JAVA_OPTS="$ES_JAVA_OPTS -Djava.io.tmpdir=/path/to/temp/dir"
複製程式碼
log4j2.properties
-
${sys:es.logs.base_path}
:日誌目錄。 -
${sys:es.logs.cluster_name}
:叢集名稱。 -
${sys:es.logs.node_name}
:節點名稱。 -
${sys:file.separator}
:路徑分隔符。