ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题以及可能出现的更多其它问题。
高版本的elasticsearch需要更高版本的jdk支持,这里我们采用jdk8、elasticsearch-5.5.2进行学习;
1、必须要有jre支持
elasticsearch是用Java实现的,跑elasticsearch必须要有jre支持,所以必须先安装jre
可以参考:http://47.100.191.44/blog/articles/18
2、下载elasticsearch
进入官方下载 https://www.elastic.co/downloads/elasticsearch
因为是centos中运行 所以我们选 tar.gz压缩包;
下载后 用ftp上传到centos里 我们把这个文件上传到 /javaxl/下
3、安装和配置elasticsearch
解压tar.zip:
cd /javaxl/
tar -zxvf elasticsearch-5.5.2.tar.gz
将解压后的文件夹放入es中:
mkdir es
mv elasticsearch-5.5.2 es
启动es服务:
sh es/elasticsearch-5.5.2/bin/elasticsearch
意思是不能用root用户来启动
useradd elastic (新建elastic用户)
chown -R elastic:elastic es/elasticsearch-5.5.2/ (把目录权限赋予给elastic)
切换成elastic用户,然后执行
su elastic
sh es/elasticsearch-5.5.2/bin/elasticsearch
出来一大串info 说明成功了,但是这种方式是前台运行,不方便我们操作其他的 我们加下 -d 后台运行
先ctrl+c退出执行;
sh es/elasticsearch-5.5.2/bin/elasticsearch -d (相当于设置守护进程)
ps -ef | grep elasticsearch (查看elasticsearch进程)
通过下面命令测试elasticsearch服务是否正常启动
1、允许外网连接配置
Su root
vi es/elasticsearch-5.5.2/config/elasticsearch.yml
修改下列配置
把 network.host 和 http.port 前面的 备注去掉 然后Host改成你的局域网IP即可
然后我们把防火墙也关了
systemctl stop firewalld.service
systemctl disable firewalld.service 禁止防火墙开机启动
按照上面步骤配置完后,再次启动elasticsearch服务,会发现出现以下错误
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2019-10-11T19:59:24,374][INFO ][o.e.n.Node ] [nYC3OZp] stopping ...
[2019-10-11T19:59:24,415][INFO ][o.e.n.Node ] [nYC3OZp] stopped
[2019-10-11T19:59:24,415][INFO ][o.e.n.Node ] [nYC3OZp] closing ...
[2019-10-11T19:59:24,449][INFO ][o.e.n.Node ] [nYC3OZp] closed
解决方案如下
问题1 [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
修改/etc/security/limits.conf文件,添加或修改如下行: (请切换到root用户 然后强制修改文件)
执行命令:vi /etc/security/limits.conf
问题2 [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改 /etc/sysctl.conf 文件,添加 “vm.max_map_count”设置 永久改变(sudo sysctl -p /etc/sysctl.conf生效)。
/sbin/sysctl -p 执行下 让/etc/sysctl.conf 立即生效
设置后,可以使用
添加这个配置:vm.max_map_count=2621441
执行命令:vi /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf
通过上面方法解决掉错误后再重启elasticsearch服务
sh es/elasticsearch-5.5.2/bin/elasticsearch
启动无错误后,在改用
sh es/elasticsearch-5.5.2/bin/elasticsearch -d
然后浏览器输入http://192.168.195.128:9200/
外网访问成功
over......
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有