🎯前面
官方定位:搜索、分析和存储您的数据。
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题以及可能出现的更多其它问题。
🎯安装环境
Elasticsearch基于Java运行环境,安装之前确保服务器已经安装JRE或者JDK。
openjdk version "1.8.0_141"
CentOS 7.3
Elasticsearch 6.1.1
传送门:
官网下载地址:https://www.elastic.co/downloads/elasticsearch
(我下载的是zip包)
直接下载到本地在上传到服务器,或者wget方式到自己的服务器随你咯。
🎯安装步骤
- 在系统新建一个用户(因为ES不允许使用root用户启动),如
elasticsearch
,useradd elasticsearch
,然后passwd elasticsearch
设置一个密码,然后把密码保存在自己的小本本上。 - 切换到新建的用户:
su elasticsearch
。 - 上传下载的文件(或者在服务器上自行下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.zip
)。 - unzip解压下载的文件,
unzip elasticsearch-6.1.1.zip
。 -
cd elasticsearch-6.1.1
,然后执行bin/elasticsearch
。 -
curl http://localhost:9200/
,如果正常输出结果,表示服务成功启动。
此时,ES已经监听本地localhost:9200端口了,但是在其它机器通过服务器外网IP+端口
是访问不到的,如果想在其它机器访问,需要额外配置:
修改elasticsearch-6.1.1/config
目录下的elasticsearch.yml
文件中的network.host
值改为0.0.0.0
错误一
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [3889] for user [elasticsearch] is too low, increase to at least [4096]
ES再启动的时候会检查一些关键配置(Bootstrap Checks),如果系统关键配置不符合启动要求,检查不能通过,启动失败。
解决问题:
- 通过root用户登录服务器
vi /etc/security/limits.conf
- 在文件结尾添加如下内容,其中
elasticsearch
上面创建的用户,后面配置的数字就是上面报错信息对应的建议值。
elasticsearch soft nofile 65536
elasticsearch hard nofile 65536
elasticsearch soft nproc 4096
elasticsearch hard nproc 4096
- 重新使用
elasticsearch
用户登录,如果之前有窗口打开也请关闭,重新打开窗口登录。 - 再次启动服务,应该成功启动了。如果还是有报错,Google吧,青年!
错误二
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2018-04-26T09:09:49,533][INFO ][o.e.n.Node] [reyPF0X] stopping ...
[2018-04-26T09:09:49,571][INFO ][o.e.n.Node] [reyPF0X] stopped
[2018-04-26T09:09:49,571][INFO ][o.e.n.Node] [reyPF0X] closing ...
[2018-04-26T09:09:49,593][INFO ][o.e.n.Node] [reyPF0X] closed
解决:
1.使用root用户登录:
vi /etc/sysctl.conf
2.添加下面配置:
vm.max_map_count=655360
3.执行命令:
sysctl -p
重新启动elasticsearch
🎯吼吼
至此,通过浏览器访问服务器IP:9200
,应该会看到类似如下内容。
Tips:
-
bin/elasticsearch -d
可以实现后台启动