前言
学习Elasticsearch时,发现网上的新手教程太乱,所以精简出了这篇适合新手的教程,不喜勿喷!
JDK环境
jdk1.8安装
- 下载 jdk-8u91-linux-x64.tar.gz 到/usr/local/
- 解压 tar -zxvf jdk-8u91-linux-x64.tar.gz
- 重命名 mv -f jdk1.8.0_91 ./jdk1.8
- 配置环境变量
vi /etc/profile
JAVA_HOME=/usr/local/jdk1.8
PATH=$JAVA_HOME/bin:$PATH
- java -version 检查版本
elasticsearch下载安装
- 下载 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.tar.gz
- 解压 tar -zxvf elasticsearch-6.2.3.tar.gz
- 重命名 mv -f elasticsearch-6.2.3 ./elasticsearch
- 如果用root用户启动elasticsearch的话,会报错,故需要创建普通用户
useradd elsearch
chown -R elsearch elasticsearch
su - elsearch
cd /usr/local/elasticsearch/bin/
./elasticsearch
- 切换普通用户启动
su - elsearch
cd /usr/local/elasticsearch/bin/
./elasticsearch
- elasticsearch只能通过本机http://localhost:9200/访问,如果在局域网中无法访问,需要修改 elasticsearch/config/elasticsearch.yml配置文件,添加如下:
network.host: 0.0.0.0
注意:这样配置存在风险,在实际项目中需要配置固定ip。
- 重新启动
cd /usr/local/elasticsearch/bin/
./elasticsearch
elasticsearch 问题
- 问题一
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.警告不影响使用,可以忽略
- 问题二
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
- 问题三
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
最后
如果这篇文章解决了你的问题,请不要吝啬你的红心!