安装Elasticsearch

2021-10-20 17:51:28 浏览数 (2)

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

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

0 人点赞