elasticsearch7.9.x linux 安装部署、启动

下载

下载 7.9.3 版本,no jdk(用我们自己的jdk)

https://www.elastic.co/cn/downloads/past-releases/elasticsearch-no-jdk-7-9-3

上传

登录 hadoop2

上传到 /program/ 目录

解压

tar -zxvf elasticsearch-7.9.3-no-jdk-linux-x86_64.tar.gz --no-same-owner

创建用户

因为安全问题,Elasticsearch 不允许 root 用户直接运行

在 root 用户下创建新用户

新增 es 用户:

useradd es

为 es 用户设置密码:

passwd es

输入:es (密码不要设置复杂,容易忘记)

如果创建用户错了,可以删除用户

userdel -r es

设置文件夹所有者

chown -R es:es /program/elasticsearch-7.9.3

修改配置文件

修改 elasticsearch.yml

修改 /program/elasticsearch-7.9.3/config/elasticsearch.yml 文件

该配置文件,有下面的配置,只是注释掉了

为了便于修改,在文件末尾加入下面配置:

# 集群名称
cluster.name: elasticsearch
# 节点名称
node.name: node-1
# ip
network.host: 0.0.0.0
# port
http.port: 9200
# 把当前节点作为 master 主节点
cluster.initial_master_nodes: ["node-1"]

设置内存

es 默认占用 1G ,开发时占用内存太大

vim /program/elasticsearch-7.9.3/config/jvm.options

找到下面配置:

-Xms1g
-Xmx1g

修改为:

-Xms512m
-Xmx512m

修改 linux 系统配置文件

es 创建的文件比较多,打开的文件也比较多,修改 linux 的限制

修改 limits.conf

修改 每个进程可以打开的文件数的限制

vim /etc/security/limits.conf

在文件末尾中增加下面内容:

es soft nofile 65536
es hard nofile 65536

解释:

  • es:表示 es用户
    提示: *表示所有用户
  • soft:软限制,当前系统生效的设置值,小于等于 hard 限制
  • hard:硬限制,系统中所能设定的最大值
    提示: - 表示同时设置了 softhard 的值
  • nofile:用户打开文件的最大数量

修改 20-nproc.conf

20-nproc.conf 文件是配置 nproc 限制的,会覆盖 limits.conf 文件,所以这里也要修改

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

在文件末尾中增加下面内容:

es soft nofile 65536
es hard nofile 65536
* hard nproc 4096

解释:

  • es:表示 es用户
  • *表示所有用户、所有用户组
  • soft:软限制,当前系统生效的设置值,小于等于 hard 限制
  • hard:硬限制,系统中所能设定的最大值
    提示: - 表示同时设置了 softhard 的值
  • nofile:用户打开文件的最大数量
  • nproc:用户创建进程的最大数量

立即生效

不需要重启系统,只需要重新登录 SSH 即可

切换用户:

su es

用 es 用户查看是否生效:

ulimit -a

显示如下:

open files                      (-n) 65536
max user processes              (-u) 4096

数字已经改变,说明生效了

修改 sysctl.conf

vim /etc/sysctl.conf

在文件中增加下面内容:

vm.max_map_count=655360

解释:一个进程可以拥有的 VMA(虚拟内存区域)的数量,默认值为 65536

立即生效

sysctl -p

启动

cd /program/elasticsearch-7.9.3/bin/

切换 es 用户

注意:不能用 root 用户启动es

su es

前台启动

./elasticsearch

警告

启动时显示下面警告:

future versions of Elasticsearch will require Java 11; your Java version from [/program/jdk1.8.0_202/jre] does not meet this requirement
future versions of Elasticsearch will require Java 11; your Java version from [/program/jdk1.8.0_202/jre] does not meet this requirement

es7jdk11,在本机中配置的 jdk8 ,所以提示警告信息,一般不影响使用

后台启动

./elasticsearch -d

退出 es 用户:

exit

停止

es 没有专门的停止命令

查看 elastic 进程 id

jps

执行结果:

2896 Elasticsearch

杀死进程:

kill -9 2896(上面的进程id)

测试

访问 http://hadoop2:9200/ ,看到下面内容,说明启动成功:

{
  "name" : "node-1",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "eUk9pWliR4y7miJChoYXoQ",
  "version" : {
    "number" : "7.9.3",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868",
    "build_date" : "2020-10-16T10:36:16.141335Z",
    "build_snapshot" : false,
    "lucene_version" : "8.6.2",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

解释:

  • name:节点名
  • cluster_name:集群名字(集群环境中)
  • cluster_uuid:节点唯一标识uuid(集群环境中)
  • number:版本号
  • build_type:部署方式
  • lucene_version:版本号

原文出处:https://www.malaoshi.top/show_1IX23twMNDFj.html