ES的安装
1.Elastic search的安装
- ES的图形化界面是Kibana。
- 注意安装时,ES和Kibana的版本一定要匹配,最好安装相同的版本号。
- 注意安装时,ES和IK分词器的版本一定要匹配,最好安装相同的版本号。
- 安装IK分词器之后,需要重启ES
具体安装详情:
1 前言
Java中比较流行的搜索引擎是Elasticsearch,传统的数据库搜索,使用like’关键字%’,当内容过多时性能会大大降低,所以Elasticsearch就出现了。
下面,记录下Linux下Elasticsearch的安装过程。
2 Linux下安装Elasticsearch
2.1 下载和解压安装
包官网下载地址: https://www.elastic.co/cn/downloads/elasticsearch
选择合适的版本下载,然后上传到Linux中。
也可以在Linux命令行,直接执行以下命令进行下载(下载比较慢):
cd ~/software/es
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.2-linux-x86_64.tar.gz
执行解压缩命令:
tar -zxvf elasticsearch-7.13.2-linux-x86_64.tar.gz
2.3 解决内存不足问题
由于 elasticsearch 默认分配 jvm空间大小为2g,修改 jvm空间,如果Linux服务器本来配置就很高,可以不用修改。
error: OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c6a00000, 962592768, 0) failed; error='Not enough space' (errno=12) at org.elasticsearch.tools.launchers.JvmOption.flagsFinal(JvmOption.java:119) at org.elasticsearch.tools.launchers.JvmOption.findFinalOptions(JvmOption.java:81) at org.elasticsearch.tools.launchers.JvmErgonomics.choose(JvmErgonomics.java:38) at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:13
进入config文件夹开始配置,编辑jvm.options:vim ~/software/es/elasticsearch-7.13.2/config/jvm.options
默认配置如下: -Xms2g -Xmx2g 默认的配置占用内存太多了,调小一些: -Xms256m -Xmx256m
2.4 创建专用用户启动ES
root用户不能直接启动Elasticsearch,所以需要创建一个专用用户,来启动ES
创建用户
useradd user-es
创建所属组:
chown user-es:user-es -R /usr/local/elasticsearch-7.13.2
切换到user-es用户
su user-es
进入bin目录
cd ~/software/esl/elasticsearch-7.13.2/bin
启动elasticsearch
./elasticsearch
如果出现如下错误信息(最大文件数太小、线程太小、内存太低):
2.5 修改ES核心配置信息
执行命令修改elasticsearch.yml文件内容
vim ~/software/es/elasticsearch-7.13.2/config/elasticsearch.yml
修改数据和日志目录
这里可以不用修改,如果不修改,默认放在elasticsearch根目录下
修改绑定的ip允许远程访问:
初始化节点名称:
再加上: node.master: true
修改端口号(非必须): 如果不修改,默认端口就是9200
2.6 vm.max_map_count [65530] is too low问题
上面几个步骤依然没启动成功,继续解决问题:
ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch. bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
elasticsearch用户拥有的内存权限太小,至少需要262144,解决办法:
在 /etc/sysctl.conf 文件最后添加如下内容,即可永久修改:
切换到root用户 执行命令:su root 执行命令 vim /etc/sysctl.conf 添加如下内容 vm.max_map_count=262144 保存退出,刷新配置文件 sysctl -p 切换user-es用户,继续启动 su user-es 启动es服务 ~/software/es/elasticsearch-7.13.2/bin/elasticsearch
如果root用户修改sysctl.conf文件提示Operation not permitted的解决办法:
sudo -i #或者su root 切换成root账号 cd /etc sudo chattr -i sysctl.conf #。。。。然后再执行上面的系应该 sysctl.conf文件内容的命令 。。。 修改之后再加载sysctl.conf即可: sudo sysctl -p
启动成功后,可以通过http://127.0.0.1:19200/访问,如果出现以下内容,说明ES安装成功:
2.7 可能遇到的max file descriptors [4096]问题
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
切换到root用户,执行命令:
vi /etc/security/limits.conf
添加如下内容:
然后重启linux。
2.8 ES服务的启动与停止
前台运行,Ctrl + C 则程序终止
/usr/local/elasticsearch-7.13.2/bin/elasticsearch
后台运行
~/software/es/elasticsearch-7.13.2/bin/elasticsearch -d
出现started时启动完成!
关闭ES服务:kill pid
说明:
Elasticsearch端口9300、9200,其中:
9300是tcp通讯端口,集群ES节点之间通讯使用,9200是http协议的RESTful接口
Elasticsearch在linux下使用命令sh elasticsearch start,按键ctrl+c的时候程序就会stop掉,如何将程序在后台启动呢? 需要使用:./elasticsearch -d 这时执行的时候会出现没有权限./elasticsearch: Permission denied 需要授权执行命令:chmod +x bin/elasticsearch 再次执行./elasticsearch -d即可启动 使用ps aux|grep elasticsearch可以查看是否启动
参考博客:https://blog.csdn.net/smilehappiness/article/details/118466378
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤