ElasticSearch 环境搭建

1. Windows ElasticSearch环境搭建

1.1. 下载安装

https://www.elastic.co/downloads/elasticsearch 官网下载zip或者tgz

1.2. 基本环境配置

在安装目录下分别创建用于存放数据和日志的目录。es目录已经有logs目录了,所以再创建一个data目录,用于存放数据

1
2
mkdir data
mkdir logs

编辑 config/elasticsearch.yml

1
2
3
4
5
6
7
8
9
10
11
12
# 修改数据存放目录path.data
path.data: C:\software\development environment\elasticsearch-6.2.4\data
# 修改日志存放目录path.logs
path.logs: C:\software\development environment\elasticsearch-6.2.4\logs

# --------- 设置CORS,便于第三方插件客户端访问
# 添加 开启CORS跨域访问。因为有的客户端是浏览器以AJAX的形式访问的,为了开发访问,开启跨域
http.cors.enabled: true
# 添加 允许所有IP跨域访问
http.cors.allow-origin: "*"
# 添加 允许的请求方式
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE

1.3. 运行ES

双击运行bin/elasticsearch.bat即可,会在前台运行。

也可以加上-d参数,在后台运行

1
elasticsearch.bat -d

浏览器访问9200端口

查看socket,可以看到在监听9200和9300

1
netstat -ano

jps查看进程

1
2
3
> jps
29072 Jps
26452 Elasticsearch

1.4. 关闭ES

关闭ES
若是es的前台运行,则用ctrl + c来停止。
若是es的后台运行,则用jps结合kill -9 pid来停止。

2. Linux ElasticSearch环境搭建

2.1. 安装及配置

1
2
tar -zxvf elasticsearch-6.2.4.tar.gz -C /usr/local
mv /usr/local/elasticsearch-6.2.4/ /usr/local/elasticsearch

es目录已经有logs目录了,所以再创建一个data目录,用于存放数据

1
mkdir /usr/local/elasticsearch/data

编辑 /usr/local/elasticsearch/config/elasticsearch.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 修改数据存放目录path.data
path.data: /usr/local/elasticsearch/data
# 修改日志存放目录path.logs
path.logs: /usr/local/elasticsearch/logs
# 修改监听的IP为0.0.0.0,以便其它主机的客户端访问
network.host: 0.0.0.0
# 修改HTTP端口,默认是9200,可以不设置
http.port: 9200

# --------- 设置CORS,便于第三方插件客户端访问
# 添加 开启CORS跨域访问。因为有的客户端是浏览器以AJAX的形式访问的,为了开发访问,开启跨域
http.cors.enabled: true
# 添加 允许所有IP跨域访问
http.cors.allow-origin: "*"
# 添加 允许的请求方式
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE

2.2. 运行ES

1
bin/elasticsearch

2.2.1. 错误1:禁止root运行

直接以root用户运行,出现错误:

1
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

出于安全考虑,ES默认不允许以root身份运行。将目录的所有人修改为其它普通用户,再以该用户运行。

1
2
3
4
5
6
# 添加用户,并修改目录所有者及所有组
useradd es -p 123456
chown es:es /usr/local/elasticsearch/ -R
# 再以es用户运行
su - es
/usr/local/elasticsearch/bin/elasticsearch

想要root直接运行,可以在运行时加上参数

1
bin/elasticsearch -Des.insecure.allow.root=true

如果不想输入参数,可以直接编辑bin/elasticsearch,其实就是一个shell脚本文件。添加以下一行

1
ES_JAVA_OPTS="-Des.insecure.allow.root=true $ES_JAVA_OPTS"

2.3. 错误2:虚拟内存权限不足

切换用户,运行es

1
2
3
4
su - es
/usr/local/elasticsearch/bin/elasticsearch
# 也可以加上-d参数,在后台运行。运行过程较长,需要耐心等待。
/usr/local/elasticsearch/bin/elasticsearch -d

提示错误

1
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

提示用户可申请的虚拟内存大小权限不够,root身份执行以下命令来提高虚拟内存权限。

1
sysctl -w vm.max_map_count=262144

以上的 sysctl -w 只能临时解决问题。编辑 /etc/sysctl.conf,添加以下内容

1
vm.max_map_count=655360

编辑完/etc/sysctl.conf之后,再执行以下命令,使配置立即生效

1
sysctl -p

panchaoxin wechat
关注我的公众号
支持一下