记录下Linux下Elasticsearch的安装过程。
1、只下载elasticSearch、Kibana即可
- elastic中文社区 下载地址
- 官网下载地址: Download Elasticsearch | Elastic
2、Linux下安装Elasticsearch
2.1 执行解压缩命令:
tar -zxvf elasticsearch-7.13.2-linux-x86_64.tar.gz -C /usr/local/es
2.2 解决es强依赖jdk问题
由于es和jdk是一个强依赖的关系,所以当我们在新版本的ElasticSearch压缩包中包含有自带的jdk,但是当我们的Linux中已经安装了jdk之后,就会发现启动es的时候优先去找的是Linux中已经装好的jdk,此时如果jdk的版本不一致,就会造成jdk不能正常运行。由于我在linux主机安装的java1.8版本,导致运行出错。
注:如果Linux服务本来没有配置jdk,则会直接使用es目录下默认的jdk,反而不会报错
#进入bin目录
cd /usr/local/elasticsearch-7.9.3/bin
#修改elasticsearch配置
vim ./elasticsearch
############## 添加配置解决jdk版本问题 ##############
# 将jdk修改为es中自带jdk的配置目录
export JAVA_HOME=/usr/local/elasticsearch-7.9.3/jdk
export PATH=$JAVA_HOME/bin:$PATH
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/usr/local/elasticsearch-7.9.3/jdk/bin/java"
else
JAVA=`which java`
fi
2.3修改配置文件
在elasticsearch的根目录创建data目录,并修改config/elasticsearch.yml配置文件:
path.logs: /usr/local/es/elasticsearch-7.9.3/logs #日志存储路径
network.host: 0.0.0.0 #允许任意主机访问
http.port: 9200 #web访问端口
#discovery.seed_hosts: ["es-1"] #发现的主机
#cluster.initial_master_nodes: ["es-1"] #初始化主节点
discovery.type: single-node
2.4 创建专用用户启动ES
#root用户不能直接启动Elasticsearch,所以需要创建一个专用用户,来启动ES
#创建用户
useradd es
#创建所属组:
chown es:es-R /usr/local/es/elasticsearch-7.9.3
#切换到elastic用户
su es
#进入bin目录
cd /usr/local/es/elasticsearch-7.9.3/bin
#启动elasticsearch -d 是指在后台运行
./elasticsearch -d
2.5 上面几个步骤依然没启动成功,继续解决问题:
报错
ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at
least [65536]
进程数过低:修改/etc/security/limits.conf
#vim /etc/security/limits.conf
添加
* soft nofile 65536
* hard nofile 65536
报错
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least
[262144]
用户的内存权限过低:修改/etc/sysctl.conf
vim /etc/sysctl.conf
#添加:
vm.max_map_count=262144
#保存后,执行:
sysctl -p
报错
Exception in thread "main" java.lang.RuntimeException: starting java failed with [1]
output:
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 7755268096 bytes for committing reserved memory.
# An error report file with more information is saved as:
# logs/hs_err_pid9258.log
error:
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005f1c00000, 7755268096, 0) failed; error='Not enough space' (errno=12)
at org.elasticsearch.tools.launchers.JvmOption.flagsFinal(JvmOption.java:119)
at org.elasticsearch.tools.launchers.JvmOption.findFinalOptions(JvmOption.java:81)
at org.elasticsearch.tools.launchers.JvmErgonomics.choose(JvmErgonomics.java:38)
at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:135)
at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:86)
原因:JVM所需内存不足
解决:修改/usr/local/es/elasticsearch-7.17.6/config/jvm.options
-Xms256m
-Xmx256m
3.elasticsearch-analysis-ik分词器安装
下载地址:Release v7.9.3 · medcl/elasticsearch-analysis-ik · GitHub
解压到es安装路径的plugins目录下