本文对ElasticSearch简称ES。

一、 安装清单

(1) Centos6.5
(2) JDK8 + 解压版JDK11
(3) ElasticSearch7.3.2


二、 安装ES

2.0. 解压ES测试启动

(1)解压
直接解压elasticsearch-7.3.2-linux-x86_64.tar.gz至/usr/local/java目录(自定义目录)下,本文的安装路径为:/usr/local/java/es7

(2)启动
进入elasticsearch/bin目录,启动elasticsearch:

cd /usr/local/java/es7/bin
./elasticsearch

Linux(Centos6.5/Centos7)下安装ElasticSearch7.3.2教程_linux

错误描述:
(1) 未来版本的Elasticsearch将需要Java 11;您来自[/usr/local/ Java /jdk8/jre]的Java版本不满足这个要求。
(2) can not run elasticsearch as root(不能使用root用户登录)。


2.1. 安装jdk11

(1)安装JDK1.8(可选
教程略(解压版)……。

(2)安装JDK11解压版(必选
这里的安装路径为(解压版):/usr/local/java/jdk11

说明:
(1)由于我们日常的代码开发都是使用的JDK1.8,所以会把JAVA_HOME配置成JDK8。
(2)这里不会把JAVA_HOME配置成JDK11,我们只需更改Elasticsearch的启动文件,使它指向我们解压安装的JDK11(es7要求jdk11+)。


2.2. 配置ES加载jdk11,修改垃圾回收器GC

(1)配置启动加载jdk11

修改/usr/local/java/es7/bin/elasticsearch文件(即启动文件):

#配置自己的jdk11
export JAVA_HOME=/usr/local/java/jdk11
export PATH=$JAVA_HOME/bin:$PATH
......
......
省略原有配置(位置见下图)
......
......
#添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
        JAVA="/usr/local/java/jdk11/bin/java"
else
        JAVA=`which java`
fi

Linux(Centos6.5/Centos7)下安装ElasticSearch7.3.2教程_linux_02


(2)修改垃圾回收器GC

Java HotSpot™ 64位服务器VM警告: 选项UseConcMarkSweepGC在9.0版本中被弃用,可能在未来的版本中被删除。所以需修改/usr/local/java/es7/config/jvm.options文件:将 -XX:+UseConcMarkSweepGC 改为:-XX:+UseG1GC

执行命令:

# vim /usr/local/java/es7/config/jvm.options
提示:此配置文件中堆内存的大小(初始堆内存、最大堆内存)均为1G,建议暂时不要修改亲测修改-xms=512m,后续启动会报错)。

Linux(Centos6.5/Centos7)下安装ElasticSearch7.3.2教程_vim_03


2.3. 配置ES目录属主

原因: ES不支持root用户启动。

(1)添加用户es7,并修改密码

# adduser es7
# passwd es7

修改Centos7密码可能存在复杂度限制,可参考博文:Linux(Centos7)取消密码复杂度及长度限制

提示: 如果以root用户安装的es,请用root用户做如下(2)~(3)步的授权操作。

(2) 递归更改权限

# chmod -R 755 /usr/local/java/es7

提示: 为了站点安全,一般的权限:
1)目录权限:755
2)文件权限:644

(3) 递归修改属主

语法:chown -R 用户名:用户组名 es7安装目录

执行命令:

# chown -R es7:es7 /usr/local/java/es7

(4) 切换es7用户,测试初步启动es

su es7
cd /usr/local/java/es7/bin
./elasticsearch

2.4. 修改ES配置文件

(1)配置ES过滤器(启动报错)

# vim /usr/local/java/es7/config/elasticsearch.yml

在最后一行添加过滤器配置(添加内容如下):

bootstrap.system_call_filter: false

具体如下图:

Linux(Centos6.5/Centos7)下安装ElasticSearch7.3.2教程_java_04


(2)添加外网IP

# vim /usr/local/java/es7/config/elasticsearch.yml

添加内容如下:

network.host: 0.0.0.0

具体如下图:

Linux(Centos6.5/Centos7)下安装ElasticSearch7.3.2教程_linux_05


(3)开放node-1节点(取消原有注释)

# vim /usr/local/java/es7/config/elasticsearch.yml

具体如下图:

Linux(Centos6.5/Centos7)下安装ElasticSearch7.3.2教程_java_06


(4)配置初始化node-1节点

# vim /usr/local/java/es7/config/elasticsearch.yml

添加内容如下:

cluster.initial_master_nodes: [“node-1”]

具体如下图:

Linux(Centos6.5/Centos7)下安装ElasticSearch7.3.2教程_java_07


(5)设置允许外面浏览器访问(本人测试此步骤可跳过

# vim /usr/local/java/es7/config/elasticsearch.yml

在配置文件最后加上如下内容:

http.cors.enabled: true
http.cors.allow-origin: “*”



三、设置Centos7防火墙

第一种:只开放防火墙端口:9200

firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --reload
# 查看已开放端口列表
firewall-cmd --list-port

第二种:关闭防火墙

查看防火墙状态: systemctl status firewalld
启动: systemctl start firewalld
停止: systemctl stop firewalld
禁用(重启默认关闭防火墙): systemctl disable firewalld

可参考博文: Linux(Centos6.5、Centos7)下开放防火墙端口操作



四、修复其他启动问题

4.1、启动es报错

此时启动es,会报如下错:

Linux(Centos6.5/Centos7)下安装ElasticSearch7.3.2教程_vim_08

错误详情:
两个错误,引导检查失败:
[1]:elasticsearch过程的最大文件描述符[4096]太低,至少增加到[65535]。 [2]:用户[xiao]的最大线程数[1024]太低,至少增加到[4096]。

PS: 有时还会报:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]


4.2、解决报错

(1)修改/etc/security/limits.conf文件,在最后增加:

执行命令:

# vim /etc/security/limits.conf

添加内容:

# XIAO:deal with max file descriptors
*               soft    nofile            65536
*               hard    nofile            655360
# XIAO:deal with max number of threads
*               soft    nproc            4097
*               hard    nproc            40970

具体如下图:

Linux(Centos6.5/Centos7)下安装ElasticSearch7.3.2教程_linux_09


(2)修改/etc/security/limits.d/20-nproc.conf文件,将1024改为4097

提示: 具体针对centos版本修改不同的文件,具体自行查验。

执行命令:

# vim /etc/security/limits.d/20-nproc.conf

具体如下图:

Linux(Centos6.5/Centos7)下安装ElasticSearch7.3.2教程_vim_10


(3)修改/etc/sysctl.conf文件

执行命令:

# vim /etc/sysctl.conf

在文件末尾,添加内容如下:

# xiao add
vm.max_map_count=655360

具体如下图:

Linux(Centos6.5/Centos7)下安装ElasticSearch7.3.2教程_vim_11

保存退出后,执行以下命令,令配置生效:

# sysctl -p

(4)重启Linux(必须执行

# reboot

五、启动ES

提示:先切换es7用户,再启动es。

su es7

前台启动:

cd /usr/local/java/es7/bin
./elasticSerach


后台启动:

cd /usr/local/java/es7/bin
./elasticSerach -d

启动如下图:

Linux(Centos6.5/Centos7)下安装ElasticSearch7.3.2教程_java_12

提示: 9300:集群节点间通讯端口。 9200:客户端访问端口。


六、外部浏览器访问

Linux(Centos6.5/Centos7)下安装ElasticSearch7.3.2教程_linux_13


七、关闭ES(kill进程)

(1)查找elasticSearch进程:

ps -ef | grep elastic

(2)杀死elasticSearch进程:

kill -9 4009

操作如下图:

Linux(Centos6.5/Centos7)下安装ElasticSearch7.3.2教程_java_14


教程结束!!!