安装前准备
centos7 +
java 8 +
elastic 7.6.0 +
创建目录
mkdir -p /data/es
mkdir -p /data/download
cd /data/download
下载包和解压
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.0-linux-x86_64.tar.gz
# 解压
tar -zxvf elasticsearch-7.6.0-linux-x86_64.tar.gz -C /data/es/
目录结构介绍:
bin:可执行文件,运行es的命令
config:配置文件目录
config/elasticsearch.yml:ES启动基础配置
config/jvm.options:ES启动时JVM配置
config/log4j2.properties:ES日志输出配置文件
lib:依赖的jar
logs:日志文件夹
modules:es模块
plugins:可以自己开发的插件
jdk:java 版本
创建用户
#创建用户组
groupadd es
#创建用户并设置密码
useradd es -g es -p 123456
#给esuser用户授权
chown -R es:es /data/es/elasticsearch-7.6.0
启动
cd /data/es/elasticsearct-7.6.0
#切换用户
su esuser
./bin/elasticsearch
ES的配置
vim config/jvm.options
## JVM configuration
################################################################
## IMPORTANT: JVM heap size
################################################################
##
## You should always set the min and max JVM heap
## size to the same value. For example, to set
## the heap to 4 GB, set:
##
## -Xms4g
## -Xmx4g
##
## See https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
## for more information
##
################################################################
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
#-Xms1g
#-Xmx1g
-Xms256m
-Xmx256m
我们改一下堆内存的大小,我这里使用的虚拟机,只分配了1g的内存,所以,我这里统一调整为256m内存,大家可以根据自己机器的内存情况进行调整。
修改elasticsearch.yml配置
vim config/elasticsearch.yml
# 配置集群名称(默认是被注释的,并且默认有一个集群名)
cluster.name: my-application
# 配置当前es节点名称(默认是被注释的,并且默认有一个节点名)
node.name: node-1
# 绑定地址为特定IP地址(设置其它节点和该节点交互的ip地址,如果不设置它会自动判断)默认为0.0.0.0,绑定这台机器的任何一个ip
network.host: 0.0.0.0
Discovery是集群配置
报错(java版本问题)
future versions of Elasticsearch will require Java 11; your Java version from [/data/java/jdk1.8.0_291/jre] does not meet this requirement
原因:说明这个版本对应的jdk应该是java11。我们环境中的jdk是java8。其实新版的es是自带了jdk的。但是和我们环境变量的冲突了。
解决方案:修改启动文件,添加如下修改
. 或者直接修改vim /etc/profile 环境变量
vi bin/elasticsearch
#配置自己的jdk
export JAVA_HOME=/data/es/elasticsearch-7.6.0/jdk
export PATH=$JAVA_HOME/bin:$PATH
#添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/data/es/elasticsearch-7.6.0/jdk/bin/java"
else
JAVA=`which java`
fi
报错 OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
解决:
修改 vim config/jvm.options
将 : -XX:+UseConcMarkSweepGC
改为:-XX:+UseG1GC 即可
# 安装es7.7
cd /opt
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.0-linux-x86_64.tar.gz
tar zxf elasticsearch-7.7.0-linux-x86_64.tar.gz
# es启动需要es用户
useradd es
chown es:es -R elasticsearch-7.7.0
su - es
# es7内置jdk,修改启动脚本
cd /opt/elasticsearch-7.7.0
vim ./bin/elasticsearch
# 配置自己的jdk11
export JAVA_HOME=/opt/elasticsearch-7.7.0/jdk
export PATH=$JAVA_HOME/bin:$PATH
# 添加jdk判断
if [ -x "$JAVA_HOME/bin" ]; then
JAVA="/opt/elasticsearch-7.7.0/jdk/bin/java"
else
JAVA=`which java`
fi
:wq
# 禁用swap
sed -i '/swap/s/^/#/' /etc/fstab
swapoff -a
vim /etc/sysctl.conf
# 优化文件描述符
vm.max_map_count = 655300
# 优化脏内存页,es写入削峰
vm.dirty_ratio=10
vm.dirty_background_ratio=5
vm.dirty_writeback_centisecs=200
# 优化系统回收inode cache权重
vm.vfs_cache_pressure=200
vm.dirty_expire_centisecs=6000
:wq
sysctl -p
# 检查或修改文件句柄数(需要重启账号,)
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
:wq
# 查看是否生效
ulimit -Hu
ulimit -Su
vim ./config/jvm.options #这里的4g不能超过最大内存的一半,需要给lucene留内存
-Xms1g
-Xmx1g
:wq
# 启动
./bin/elasticsearch -d
# 查看日志
vim ./logs/elasticsearch.log
# 验证是否成功启动
curl localhost:9200