搭建环境说明
- 官方支持的操作系统和 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:更改参数。<br/>
path.data:数据存放目录 <br/>
path.logs:日志存放目录 <br/>
$ 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。<br/>
cluster.name:集群名称。默认 elasticsearch。<br/>
node.name:节点名称。不配置自动生成,取 UUID 前 7 位。<br/>
network.host:绑定地址。默认绑定127.0.0.1
和[::1]
。<br/>
http.port:端口号。<br/>
discovery.zen.ping.unicast.hosts: 其他节点地址列表。<br/>
- 修改 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<br/>
Chef:cookbook-elasticsearch<br/>
Ansible:ansible-elasticsearch<br/>
Elasticsearch 配置
配置文件
-
elasticsearch.yml
:配置 Elasticsearch。 -
jvm.options
:配置 Elasticsearch JVM 参数。 -
log4j2.properties
:配置 Elasticsearch 日志。
更改目录位置 <br/>
四个位置:安装目录,配置目录,日志目录,数据目录。<br/>
更改配置目录位置
:修改环境变量
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}
:路径分隔符。