目录
1、简介
2、安装
2.1、下载安装包
2.2、上传安装包并解压
3、es目录介绍
4、修改配置
4.1、编辑conf下的elasticsearch.yml
4.2、修改Jvm参数
4.3、修改limits.conf文件 增加配置
5、启动
5.1创建一个新用户
5.2、授权
5.3、启动
1、简介
Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:
分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
实时分析的分布式搜索引擎。
可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据
像天猫、京东这样的商城,用户访问商城的首页,一般都会直接搜索来寻找自己想要购买的商品。而商品的数量非常多,而且分类繁杂。
如果能正确的显示出用户想要的商品,并进行合理的过滤,尽快促成交易,是搜索系统要研究的核心。
面对这样复杂的搜索业务和数据量,使用传统数据库搜索就显得力不从心,一般我们都会使用全文检索技术,比如Solr,Elasticsearch。
Elastic官网:https://www.elastic.co/cn/
Elastic有一条完整的产品线及解决方案:Elasticsearch、Kibana、Logstash等,前面说的三个就是大家常说的ELK技术栈。
Elasticsearch(官网:https://www.elastic.co/cn/products/elasticsearch )是Elastic Stack 的核心技术。详细介绍参考官网
Elasticsearch具备以下特点:
分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心)
Restful风格,一切API都遵循Rest原则,容易上手近实时搜索,数据更新在Elasticsearch中几乎是完全同步的。
2、安装
2.1、下载安装包
官网下载,选择linux版本:
https://www.elastic.co/cn/products/elasticsearch(我使用的是7.14.2)
2.2、上传安装包并解压
先上传到 /mnt目录并解压 (tar zxf elasticsearch-7.14.2-linux-x86_64.tar.gz)
然后在 /usr/local 下创建es文件(mkdir es)
然后回到 /mnt 把解压的es文件夹剪切到 /usr/local/es 下面 (mv elasticsearch-7.14.2 /usr/local/es/)
3、es目录介绍
- bin:可执行文件在里面,运行es的命令就在这个里面,包含了一些脚本文件等
- config:配置文件目录
- JDK:java环境
- lib:依赖的jar,类库
- logs:日志文件
- modules:es相关的模块
- plugins:可以自己开发的插件
- data:这个目录没有,自己新建一下,后面要用 -> mkdir data,这个作为索引目录
4、修改配置
4.1、编辑conf下的elasticsearch.yml
#配置当前es节点名称(默认是被注释的,并且默认有一个节点名)
#默认是被注释的,并且默认有一个集群名
#数据目录位置
#日志目录位置
#绑定的ip:默认只允许本机访问,修改为0.0.0.0后则可以远程访问
#默认是被注释的 设置master节点列表 用逗号分隔
4.2、修改Jvm参数
Elasticsearch基于Lucene的,而Lucene底层是java实现,因此我们需要配置jvm参数。编辑conf下面的jvm.options
4.3、修改limits.conf文件 增加配置
需要切换到root用户修改配置
修改/etc/security/limits.conf 文件
增加下面内容
* soft nofile 65536
* hard nofile 65536
修改 /etc/sysctl.conf 增加 vm.max_map_count=262145
vm.max_map_count=262145
修改完后 sysctl -p 刷新一下
5、启动
5.1创建一个新用户
出于安全考虑,elasticsearch默认不允许以root账号运行
创建用户:useradd esuser
设置密码:passwd esuser
5.2、授权
授权指令:
chgrp -R esuser ./es
chown -R esuser ./es
chmod 777 es
5.3、启动
先切换到esuser用户启动
su esuser
./bin/elasticsearch
然后访问:42.192.145.185:9200 (注意要放行端口)