ElasticSearch - 安装与部署部署
1. ElasticSearch 安装
本文章采用Docker安装
docker镜像下载
docker pull elasticsearch:5.6.8

- 安装
es容器
docker run -id --name=c_es -p 9200:9200 -p 9300:9300 elasticsearch:5.6.8
9200 端口 - Web管理平台端口 / 9300 - 服务器默认端口
浏览器输入地址访问:http://192.168.2.190:9200/

- 开启远程连接
上面完成安装后,es并不能正常使用,elasticsearch从 5 版本以后默认不开启远程连接,程序直接运行会报错。
我们需要修改es配置,开启远程连接,代码如下:
- 登录容器
docker exec -it c_es /bin/bash
- 查看目录结构 输入:
dir
root@~:/usr/share/elasticsearch# dir
NOTICE.txt README.textfile bin config data lib logs modules plugins
- 进入
config目录
cd config
- 查看文件
root@~:/usr/share/elasticsearch/config# ls
elasticsearch.yml log4j2.properties scripts
- 修改
elasticsearch.yml文件
root@~:/usr/share/elasticsearch/config# vi elasticsearch.yml
bash: vi: command not found
vi命令无法识别,因为docker容器里面没有该命令,我们可以安装该编译器
设置apt下载源
docker cp ~/sources.list /etc/apt/sources.list
安装vim编辑器
apt-get update
apt-get install vim
安装结束,修改elasticsearch.yml配置,如图:
vim elasticsearch.yml
修改如下图:

- 重启
docker
docker restart c_es
- 系统参数配置
重启后发现重启启动失败了,这与我们刚才修改的配置有关,因为elasticsearch启动的时候会进行一些检查,比如最多打开的文件的个数以及虚拟内存区域数量等等,如果你放开了此配置,意味着需要打开更多的文件以及虚拟内存,所以我们还需要进行系统调优。
修改vi /etc/security/limits.conf,追加内容(nofile是单个进程允许打开的最大文件个数,soft nofile是软限制,hard nofile是硬限制)
* soft nofile 65536
* hard nofile 65536
修改vi /etc/sysctl.conf,追加内容(限制一个进程可以拥有的VMA(虚拟内存区域)的数量)
vm.max_map_count=655360
执行下面命令,修改内核参数马上生效
sysctl -p
重新启动虚拟机,再次启动容器,发现已经可以启动并远程访问
reboot
- 跨域配置
修改elasticsearch/config下的配置文件:elasticsearch.yml,增加以下三句命令,并重启:
http.cors.enabled: true
http.cors.allow-origin: "*"
network.host: 192.168.2.190
其中:
http.cors.enabled: true:此步为允许elasticsearch跨域访问,默认是falsehttp.cors.allow-origin:表示跨域访问允许的域名地址(表示任意)
重启
docker restart c_es
提示:如果想让容器重启后开启,可以执行如下命令
docker update --restart=always 容器名称或者容器ID

本文档详细介绍了如何使用Docker安装ElasticSearch,包括如何开启远程连接、解决5版本后的默认限制,以及进行系统调优。通过修改配置文件和调整系统参数,使得ElasticSearch能够成功启动并允许远程访问。此外,还讲述了如何进行跨域配置,确保跨域访问的正常进行。
250

被折叠的 条评论
为什么被折叠?



