前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安装Elasticsearch

安装Elasticsearch

原创
作者头像
HLee
修改2021-10-20 17:51:28
6640
修改2021-10-20 17:51:28
举报
文章被收录于专栏:房东的猫房东的猫

Linux安装

下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch

步骤一:上传Linux、解压

代码语言:javascript
复制
上传Linux服务器:
rz Elasticsearch 6.7.2

解压Es:
sudo tar xvf  Elasticsearch 6.7.2

步骤二:修改配置文件

步骤三:启动Es

代码语言:javascript
复制
[dev@lihuan1.net elasticsearch-6.7.2]$ ./bin/elasticsearch

备注:后台启动
./elasticsearch -d
sh elasticsearch.sh  &
nohup sh elasticsearch &
nohup sh elasticsearch.sh &  

注意:1.切换目录的权限 2.注意观察logs/my-es6-prod.log日志

问题1

代码语言:javascript
复制
java.nio.file.AccessDeniedException:Exception in thread "main" java.nio.file.AccessDeniedException: /home/elasticsearch/elasticsearch-6.7.2/config/jvm.options

原因:当前用户没有执行权限 

权限不足:[dev@lihuan1-dev.bj1.haodf.net elasticsearch-6.7.2]$ chown -R dev:dev elasticsearch-6.7.2

问题2

代码语言:javascript
复制
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 

原因:用户拥有的内存权限太小,至少需要262144。

代码语言:javascript
复制
解决方案:方案一
切换到root用户
执行命令:sysctl -w vm.max_map_count=262144
查看结果:sysctl -a|grep vm.max_map_count
显示:vm.max_map_count = 262144

解决方案:方案二
[dev@lihuan1.net elasticsearch-6.7.2]$ sudo vim /etc/sysctl.conf

  vm.max_map_count=655360

[dev@lihuan1.net elasticsearch-6.7.2]$ sudo sysctl -p

kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
vm.max_map_count = 655360

问题3

代码语言:javascript
复制
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

原因: 这是在因为Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。

解决方案: 在elasticsearch.yml中配置bootstrap.system_call_filter为false,

代码语言:javascript
复制
注意要在Memory下面:
bootstrap.memory_lock: false 
bootstrap.system_call_filter: false 

问题4

代码语言:javascript
复制
max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

解决方案:修改/etc/security/limits.conf文件

代码语言:javascript
复制
# End of file
* soft nofile 65536
* hard nofile 65536
* soft nproc 6552
"/etc/security/limits.conf" [converted] 53L, 1883C   

使用 ulimit -Hn 查看当前值 

代码语言:javascript
复制
[dev@lihuan1-dev.bj1.haodf.net bin]$ sudo vim /etc/profile
[dev@lihuan1-dev.bj1.haodf.net bin]$ ulimit -Hn
65535

注意:修改完后要退出用户重启,再ulimit -Hn 查看当前值,已发生变化。 

问题5

代码语言:javascript
复制
memory locking requested for elasticsearch process but memory is not locked

原因:elasticsearch.yml配置文件中为true(bootstrap.memory_lock: true)

官方地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/_memory_lock_check.html

解决方案:

代码语言:txt
复制
第一步:root权限编辑/etc/security/limits.conf
$ sudo vim /etc/security/limits.conf

第二步:添加如下内容,保存退出
* soft memlock unlimited
* hard memlock unlimited
这里的*代表的是所有用户名称,可以更换为指定用户名
另:这里有个坑就是如果/etc/security/limits.d文件夹下的有配置文件,那么会覆盖刚才修改的文件,所以请确保该目录没有其它文件,如有请联系运维人员确认删除

第三步:修改/etc/sysctl.conf
sudo echo"vm.swappiness=0" >> /etc/sysctl.conf
这个参数的作用是告诉Linux内核尽少的使用swap分区,不等于禁用swap,通过少使用swap来提高性能。
如果想立即生效而不是重启之后让sysctl.conf生效,请使用sysctl -p

第四步:重新登录或重启服务器方可生效

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Linux安装
    • 问题1
      • 问题2
        • 问题3
          • 问题4
            • 问题5
            相关产品与服务
            Elasticsearch Service
            腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档