前言
學(xué)習(xí)Elasticsearch時,發(fā)現(xiàn)網(wǎng)上的新手教程太亂扑馁,所以精簡出了這篇適合新手的教程涯呻,不喜勿噴!
JDK環(huán)境
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
- 配置環(huán)境變量
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的話腻要,會報錯复罐,故需要創(chuàng)建普通用戶
useradd elsearch
chown -R elsearch elasticsearch
su - elsearch
cd /usr/local/elasticsearch/bin/
./elasticsearch
- 切換普通用戶啟動
su - elsearch
cd /usr/local/elasticsearch/bin/
./elasticsearch
- elasticsearch只能通過本機(jī)http://localhost:9200/訪問,如果在局域網(wǎng)中無法訪問雄家,需要修改 elasticsearch/config/elasticsearch.yml配置文件效诅,添加如下:
network.host: 0.0.0.0
注意:這樣配置存在風(fēng)險,在實際項目中需要配置固定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系統(tǒng)
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默認(rèn)bootstrap.system_call_filter為true進(jìn)行檢測戚炫,所以導(dǎo)致檢測失敗,失敗后直接導(dǎo)致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
并執(zhí)行命令:
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 默認(rèn)就是client版本双肤,把第二行的-server KNOWN 放到第一行,如下面所示:
-server KNOWN
-client KNOWN
-hotspot ALIASED_TO -client
最后
如果這篇文章解決了你的問題层宫,請不要吝嗇你的紅心杨伙!