一、安装准备
- 什么是
ElasticSearch
?
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在 Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。
备注:
摘录自百度百科;elasticsearch官网下载地址;elasticsearch中文网下载地址
-
ElasticSearch
特点和优势?
分布式实时文件存储,可将每一个字段存入索引,使其可以被检索到。实时分析的分布式搜索引擎。分布式:索引分拆成多个分片,每个分片可有零个或多个副本。集群中的每个数据节点都可承载一个或多个分片,并且协调和处理各种操作;负载再平衡和路由在大多数情况下自动完成。可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。也可以运行在单台PC上(已测试)支持插件机制,分词插件、同步插件、Hadoop插件、可视化插件等。
二、安装
- 安装
ElasticSearch
# 下载对应的安装包
# 方法一:elasticsearch官网地址:https://www.elastic.co/cn/downloads/elasticsearch
# 方法二:获取链接可以直接使用wget方法直接下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-linux-x86_64.tar.gz
# 解压文件
tar -zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz
# 修改目录名称
mv elasticsearch-7.6.2 elasticsearch
# 修改目录权限
chown es:es elasticsearch/ -R
# 新增用户组elasticsearch默认为了安全状况不允许root用户进行安装:
# 新建组
groupadd es
# 新增用户
useradd es -g es
# 切换用户
su es
ElasticSearch
文件配置
# 修改虚拟机配置文件jvm.options(内存配置根据机器适配)
vim jvm.options
# 修改Elasticsearch.yml文件
vim elasticsearch.yml
# 根目录创建数据目录(切换es不用root创建,否则启动时报错)
mkdir data
# 修改数据和日志目录:
path.data: /usr/local/elasticsearch/data # 数据目录位置
path.logs: /usr/local/elasticsearch/logs # 日志目录位置
# 修改绑定的IP
network.host: 192.168.161.147 # 改成自己实际的地址
# 若是需要进行远程访问直接配置
network.host: 0.0.0.0
- 运行
ElasticSearch
# 切换用户
su es
# 进入根目录下bin目录
cd /usr/local/elasticsearch/bin
# 启动elasticsearch
./elasticsearch
恭喜你!!!🎉🎉🎉🎉 启动ES成功
注意:
是图中绑定了两个端口(9300和 9200):9300:集群节点间通讯接口 9200:客户端访问接口
三、安装问题
- 内存不足 如下图:
- 内核过低 如下图:
如果使用的centos6 那报这个错误是肯定的。他的内核版本为2.6。而Elasticsearch的插件要求至少3.5以上版本,解决方案:将插件禁用即可。修改elasticsearch.yml文件,在最下面添加如下配置:bootstrap.system_call_filter: false
- 文件权限不足
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
# 修改配置文件,追加下面两项(重新登录用户,才会生效)
vim /etc/security/limits.conf
备注:
这是由于我们没有使用root用户去操作所导致的
- 线程数不够
max number of threads [1024] for user [es] is too low, increase to at least [4096]
#解决方案:
vim /etc/security/limits.d/90-nproc.conf
#修改
soft nproc 1024 改为 * soft nproc 4096
- 进程虚拟内存
#限制一个进程可以拥有的VMA(虚拟内存区域)的数量
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144],vm.max_map_count:
#编辑系统配置文件
vim /etc/sysctl.conf
#添加配置
vm.max_map_count=655360 #在sysctl.conf 添加如下内容
#执行命令
sysctl -p
- 添加用户es失败
#切换用户会出现问题(注意:在切换用户时,如果出现bash-4.1$):先 exit 退出 bash-4.1$
useradd:warning :the home directory alway exists.
Not copying any file from skel directory into it.
#解决方案:
cp -a /etc/skel/. /home/es