1. Windows ElasticSearch环境搭建
1.1. 下载安装
https://www.elastic.co/downloads/elasticsearch 官网下载zip或者tgz
1.2. 基本环境配置
在安装目录下分别创建用于存放数据和日志的目录。es目录已经有logs目录了,所以再创建一个data目录,用于存放数据1
2mkdir data
mkdir logs
编辑 config/elasticsearch.yml1
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和93001
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 | tar -zxvf elasticsearch-6.2.4.tar.gz -C /usr/local |
es目录已经有logs目录了,所以再创建一个data目录,用于存放数据1
mkdir /usr/local/elasticsearch/data
编辑 /usr/local/elasticsearch/config/elasticsearch.yml1
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:虚拟内存权限不足
切换用户,运行es1
2
3
4su - 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