Elasticsearch安装详细步骤及问题解决方案

前言

学习Elasticsearch时,发现网上的新手教程太乱,所以精简出了这篇适合新手的教程,不喜勿喷!

JDK环境

jdk1.8安装

  1. 下载 jdk-8u91-linux-x64.tar.gz 到/usr/local/
  2. 解压 tar -zxvf jdk-8u91-linux-x64.tar.gz
  3. 重命名 mv -f jdk1.8.0_91 ./jdk1.8
  4. 配置环境变量
vi /etc/profile
JAVA_HOME=/usr/local/jdk1.8
PATH=$JAVA_HOME/bin:$PATH
  1. java -version 检查版本

elasticsearch下载安装

  1. 下载 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.tar.gz
  2. 解压 tar -zxvf elasticsearch-6.2.3.tar.gz
  3. 重命名 mv -f elasticsearch-6.2.3 ./elasticsearch
  4. 如果用root用户启动elasticsearch的话,会报错,故需要创建普通用户
useradd elsearch
chown -R elsearch elasticsearch
su - elsearch
cd /usr/local/elasticsearch/bin/
./elasticsearch
  1. 切换普通用户启动
su - elsearch
cd /usr/local/elasticsearch/bin/
./elasticsearch
  1. elasticsearch只能通过本机http://localhost:9200/访问,如果在局域网中无法访问,需要修改 elasticsearch/config/elasticsearch.yml配置文件,添加如下:
network.host: 0.0.0.0

注意:这样配置存在风险,在实际项目中需要配置固定ip。

  1. 重新启动
cd /usr/local/elasticsearch/bin/
./elasticsearch

elasticsearch 问题

  1. 问题一
Java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMPandCONFIG_SECCOMP_FILTERcompiledinatorg.elasticsearch.bootstrap.Seccomp.linuxImpl(Seccomp.java:349)

原因:Linux版本过低造成的。

解决方案:
1.重新安装新版本的Linux系统
2.警告不影响使用,可以忽略

  1. 问题二
ERROR: bootstrap checks failed
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.6.4默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
解决:
在elasticsearch.yml中配置如下:

bootstrap.memory_lock: false
bootstrap.system_call_filter: false
  1. 问题三
ERROR: bootstrap checks failed
max number of threads [1024] for user [elasticsearch] is too low, increase to at least [4096]

解决:
切换到root用户
vi /etc/security/limits.conf 添加

* soft nofile 65536
* hard nofile 65536
* soft nproc 1024
* hard nproc 2048

问题四:

max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

解决:切换到root用户修改配置sysctl.conf

vi /etc/sysctl.conf 

添加下面配置:

vm.max_map_count=262144

并执行命令:

sysctl -p

问题五:

JVM is using the client VM [Java Hot...

解决:修改配置文件jvm.cfg
32位的JDK %JAVA_HOME%/jre/lib/i386/jvm.cfg
64位的JDK %JAVA_HOME%/jre/lib/amd64/jvm.cfg

-client KNOWN  
-server KNOWN  
-hotspot ALIASED_TO -client  

里面第一行写的是 -client 默认就是client版本,把第二行的-server KNOWN 放到第一行,如下面所示:

-server KNOWN
-client KNOWN  
-hotspot ALIASED_TO -client  

最后

如果这篇文章解决了你的问题,请不要吝啬你的红心!

你可能感兴趣的:(Elasticsearch安装详细步骤及问题解决方案)