Elasticseach初识及其Single-Node Mode快速部署
Elasticsearch同Lucene、Solr都是目前市场上主流的基于倒排索引机制完成快速全文搜索的全文搜索方案。
Lucene是Apache基金会维护的一套完全使用Java编写的信息搜索工具包(Jar包),它包含了索引结构、读写索引工具、相关性工具、排序等功能,因此在使用Lucene时仍需要我们自己进一步开发搜索引擎系统,例如数据获取、解析、分词等方面的东西。同时需要注意的是:Lucene只是一个框架,需要在Java程序中集成它再使用;甚至需要很多的学习才能明白它是如何运行的,熟练运用Lucene非常复杂。
Solr是一个有HTTP接口的基于Lucene的查询服务器,是一个搜索引擎系统,封装了很多Lucene细节,Solr可以直接利用HTTP GET/POST请求去查询,维护修改索引。
Elasticsearch也是一个建立在全文搜索引擎 Apache Lucene基础上的搜索引擎。采用的策略是分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
Solr和Elasticsearch都是基于Lucene实现的。但Solr和Elasticsearch之间也是有区别的:
1)Solr利用Zookpper进行分布式管理,而Elasticsearch自身带有分布式协调管理功能;
2)Solr比Elasticsearch实现更加全面,Solr官方提供的功能更多,而Elasticsearch本身更注重于核心功能, 高级功能多由第三方插件提供;
3)Solr在传统的搜索应用中表现好于Elasticsearch,而Elasticsearch在实时搜索应用方面比Solr表现好。
Elasticsearch支持单节点模式(Single-Node Mode)和集群模式(ClusterMode)部署,一般来说,小公司的业务场景往往使用Single-Node Mode部署即可。本文即实践搭建Single-Node Mode部署实例。
一、环境准备
1、操作系统:CentOS 8.x 64 bit
2、关闭虚拟机的防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state # 查看防火墙
二、Elasticsearch Single-Node Mode部署
1、下载Linux版的ES,参考Install Elasticsearch with RPM | Elasticsearch Guide [8.1] | Elastic使用yum进行安装
2、配置Elasticsearch,参考Configuring Elasticsearch | Elasticsearch Guide [8.1] | Elastic中配置相关说明
1)编辑vim /etc/elasticsearch/elasticsearch.yml,注意冒号后面有个空格:单机安装请取消注释:node.name: node-1,否则无法正常启动;修改网络和端口,取消注释master节点,单机只保留一个node。
修改前后对比,如下:
2)按需修改vim /etc/elasticsearch/jvm.options内存设置:
3)添加es用户,es默认root用户无法启动,需要改为其他用户:
改变es目录拥有者账号:
设置环境变量:
4)启动ES
su esroot
5)配置完成,浏览器访问测试: ip:9200
访问失败!!!还有什么没做么?是的,如果外网访问还需要修改相关系统文件,在其中加上如下内容:
6)修改/etc/sysctl.conf
末尾添加:vm.max_map_count=655360,并执行执行sysctl -p 让其生效
7)修改/etc/security/limits.conf
末尾添加:* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
还是不好使
8)从上图看现象是可以访问,但是服务器无返回。还是elasticsearch.yml设置问题,其开启了xpack.security.transport.ssl验证,改为不验证即可。如下:
重启并成功返回。如下:
但是没有成功,因为缺少身份认证!!!
9)es默认提供elastic用户,使用elasticsearch-reset-password重置密码,输入用户和密码。访问成功,如下:
将xpack.security.enabled设置为false也可以不进行用户/密码的安全验证,直接访问成功。