elasticsearch单机版安装
下载安装包
目标服务器 172.16.119.100
上传目录:/home/hadoop/apps/,
解压:
tar -zxf elasticsearch-6.8.0.tar.gz
重命名:
mv elasticsearch-6.8.0/ elasticsearch
创建elk用户,并将elasticsearch授权给elk
注意:由于elasticsearch启动的时候不能直接用root用户启动,所以需要创建普通用户
[root@hadoop1 apps]# useradd elk [root@hadoop1 apps]# chown -R elk:elk elasticsearch
修改配置
修改配置文件config/elasticsearch.yml
network.host: 172.16.119.100
启动ES,发现报错
启动:bin/elasticsearch
报错(一)
Error: Could not find or load main class org.elasticsearch.tools.java_version_checker.JavaVersionChecker
解决:由于我的安装文件是放在hadoop用户的目录下的,切换hadoop用户给权限再启动
报错(二)
ERROR: [4] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max number of threads [1024] for user [hadoop] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[4]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
原因:es对启动内存是有要求的现在修改虚拟内存大小
修改操作系统的内核配置文件sysctl.conf
# vim /etc/sysctl.conf #在配置文件最后面添加如下内容 vm.max_map_count=262144
解释:max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量。虚拟内存区域是一个连续的虚拟地址空间区域。
在进程的生命周期中,每当程序尝试在内存中映射文件,链接到共享内存段,或者分配堆空间的时候,这些区域将被创建。
当进程达到了VMA上线但又只能释放少量的内存给其他的内核进程使用时,操作系统会抛出内存不足的错误。
#使修改之后的配置文件生效
[root@hadoop1 ~]# sysctl -p
修改limits.conf文件
#limits.conf:用来保护系统的资源访问,和sysctl.conf很像,但是limits.conf是针对于用户,而sysctl.conf是针对于操作系统. [root@hadoop1 ~]# vim /etc/security/limits.conf #在文件末尾添加如下内容: elk soft nofile 65536 elk hard nofile 131072 elk soft nproc 4096 elk hard nproc 4096
修改elasticsearch-node1节点的配置文件jvm.options
[root@hadoop1 ~]# cd /home/hadoop/apps/elasticsearch/config/ [root@hadoop1 config]# vim jvm.options
修改如下两个选项:
- -Xms512m #elasticsearch启动时jvm所分配的初始堆内存大小
- -Xmx512m #elasticsearch启动之后允许jvm分配的最大堆内存大小,生产环境中可能需要调大
注意:如果内存足够大,可以不用修改,默认为1G
修改90-nproc.conf解决用户的最大线程数太低
解决问题2
vi /etc/security/limits.d/90-nproc.conf
修改elasticsearch.yml解决问题4
原因:
这是在因为Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
vim elasticsearch.yml bootstrap.memory_lock: false bootstrap.system_call_filter: false
重启linux
shutdown -r now
重启服务
前台启动:
[hadoop@hadoop1 bin]$ ./elasticsearch
后台启动:
[hadoop@hadoop1 bin]$ ./elasticsearch -d