言于头:ElasticSearch是一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。ElasticSearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎----以上信息来自于某百。
es在企业中使用是比较广泛的,于是今天准备搭建个单机版的玩玩。
下载
下载地址:https://www.elastic.co/cn/downloads/elasticsearch
此处选择版本linux 7.5.1 如图所示。
网页下载如果太慢可复制链接通过迅雷下载-贼快。
安装
1.服务器解压
tar zxvf elasticsearch-7.5.1-linux-x86_64.tar.gz
2.进入目录
cd elasticsearch-7.5.1/bin/
3.启动
./elasticsearch
3.1.启动报错 java版本
解决:此处显示启动需要jdk8,配置linux环境变量为jdk8。
3.2.启动报错显示不能通过root用户
解决:创建新用户进行启动
root用户执行
1.创建用户设置密码
useradd elastic
passwd elastic
2.赋权文件目录
chown -R elastic:elastic /home/**/elasticsearch-7.5.1
3.切换用户
su elastic
4.最后于安装目录bin下面执行
./elasticsearch
4.验证
4.1 启动成功
如图所示即为启动成功,马赛克部分为本服务器ip和主机名。
4.2 验证
另外打开机器窗口执行
查看健康状态
curl -X GET "localhost:9200/_cat/health?v"
可以看到名为“status”处于绿色状态。
健康状态有红、黄、绿三个状态:
绿 – 一切正常
黄 – 所有数据可用,但有些副本尚未分配
红 – 有些数据不可用
查看节点信息
curl -X GET "localhost:9200/_cat/nodes?v"
马赛克 name处为机器主机名。
5.后台启动
上述启动方式为控制台窗口启动,若关闭窗口则程序服务停止。
后台启动 elastic用户 于bin目录下执行命令,等待半分钟左右启动完成,如果过程中有异常会直接抛出。
./elasticsearch -d
6.如何重启
通过执行 ./elasticsearch -help 命令发现es对外并没有设么restart命令,因此此处可以 先停止 再启动。
7.修改es对外ip和端口
上诉启动成功后,所有的rest接口只能在本机(linux服务器)通过curl命令测试访问并且都是localhost域名,如何修改ip或者防止默认的9200端口被占用引发问题呢?
cd /home/**/elasticsearch-7.5.1/config
vim elasticsearch.yml
修改配置项,此处将端口改为9211.
修改配置如上,再次执行步骤 5-后台启动。
启动后发生发生如下问题:
分析发现上述五个错误基本都是环境配置错误,【注意】以下步骤修改全部通过root用户操作。
7.1 max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
原因:需要修改环境分配给elasticsearch 进程的文件打开数量。
解决: 【root用户】打开文件修改配置
vim /etc/security/limits.conf
7.2 max number of threads [1024] for user [elastic] is too low, increase to at least [4096]
原因:需要修改环境分配给elastic用户的线程数量。
解决: 【root用户】打开文件修改配置
vim /etc/security/limits.d/90-nproc.conf
7.3 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
原因:需要修改环境进程的虚拟内存数量。
解决: 【root用户】打开文件修改配置
vim /etc/sysctl.conf
然后执行加载参数
sysctl -p
7.4 system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
原因:修改安装过滤配置-es自身配置。
解决: 【root用户】打开文件修改添加配置
cd /home/**/elasticsearch-7.5.1/config
vim elasticsearch.yml
7.5 the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
原因:discovery.seed_hosts等配置项需要配置。
解决: 【root用户】打开文件修改添加配置
cd /home/**/elasticsearch-7.5.1/config
vim elasticsearch.yml
此处马赛克部分为机器主机名。
此时,上述所有问题皆已基本修改完成,【elastic】用户再次执行步骤5-后台启动。
7.6 验证配置
postman接口访问测试如下
尽于尾:此次elasticsearch的单机安装初步完成,过程中的大部分问题因有前人采坑总体还算顺利,后续有时间了将进行es和其他组件集成使用,谢谢大家!