Elasticsearch,这个家伙我就不用过多介绍了吧,简称ES,这可不是js里面的es语法也不是阿里云里面的es云服务器,Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
干什么用的呢?
(1)比如我们开发了一个电商平台,我们商品过多,用户搜索起来很慢,ES就派上用场了,他能大大提升你的搜索效率,摆脱Mysql的瓶颈(like)
(2)日志分析,比如你想统计你网站的一些用户行为日志,那么他可以帮你从海量数据里面返回你想要的数据
下面我将介绍Linux是怎么安装的,windows下的可以自行想办法,相较linux的安装windows就比较简单了
1、es(7.x)是依赖java的jdk的,所以我们需要下载java的jdk然后并且安装
(1)下载jdk一般都是tar(es里面也自带了java的jdk可以直接拿来使用,或者自行下载安装)
解压tar -zxvf jdk.tar
(2)vim /etc/profile.d/java.sh
(3)将一下内容粘贴到java.sh文件里面
export JAVA_HOME=jdk的地址 export PATH=PATH:JAVA_HOME/bin
(4)重启source /etc/profile
(5)设置java的环境变量(系统级别)
一定要注意的是要使用ES_JAVA_HOME,不然话会报一个waring的错误
2、在es的安装目录下面创建一个data数据目录已经logs目录
解压,然后给权限,不能使用root启动
命令:chown -R xx 目录
3、直接在安装服务器访问,将会看到如下的json,说明已经安装成功了
4、看到以下信息基本就可以了
5、设置外网访问
安装的步骤基本就已经讲完了,下面是我帮大家踩的坑,小伙伴们要注意了
错误总结
1)安装es报错java版本过低
解决方案,安装大于11版本的,由于es7.x版本需要高版本jdk,大家自行安装就行了,或者使用es里面自带的jdk也是可以的
2)报错找不到java
把默认的修改
3)提示内存不足的时候我们配置
es/config/jvm.options,设置成为你想要的虚拟内存大小
4)ps -ef | grep elasticsearch
然后kill -9 杀死进程
5)通过ip访问设置
(1)问题1 [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]的解决方式:
(请切换到root用户 然后强制修改文件)修改/etc/security/limits.conf文件,添加或修改如下行:
* hard nofile 65536
* soft nofile 65536
(2)问题2 [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]的解决方式:
第二种方式:
#切换到root用户,
su root
#编辑 /etc/sysctl.conf
vi /etc/sysctl.conf
#添加如下参数
vm.max_map_count=2621441
执行 sudo sysctl -p /etc/sysctl.conf 命令,设置 永久改变
6)VMware 虚拟机下Centos7无法访问指定端口(针对防火墙问题,测试使用的是虚拟机,依据你测试服务器为准)
关闭防火墙:systemctl stop firewalld.service