首页 > 技术文章 > elasticsearch单机版安装

h-kang 2019-06-14 16:40 原文

下载安装包

下载 elasticsearch-6.8.0.tar.gz 

目标服务器 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

  

 

  

 

推荐阅读