单机安装es
2023年8月25日大约 3 分钟
3.单机安装ES
Elasticsearch 7.x
ES 7.x介绍
ES 7.0 是 2019 年 4 月份发布的,底层是 Lucene 8.0。其他还有需要了解的是
- 废除单个索引下多 Type 的支持
- ES Security 免费使用
- ECK - ES Operator on K8s
- 新功能:New Cluster coordination
- 新功能:完整的 High Level REST Client
- 新功能:Script Score Query
- 性能:默认 Primary Shard 数从 5 到 1 ,避免 Over Sharding;性能优化更快的 Top K
ES安装说明
- ES 5,安装需要 JDK 8 以上
- ES 6.5,安装需要 JDK 11 以上
- ES 7.2.1,内置了 JDK 12
下载地址:https://www.elastic.co/cn/downloads/elasticsearch

下载安装
下载elasticsearch
[root@k8s-node2 opt]# mkdir /opt/software
[root@k8s-node2 opt]# cd /opt/software/
[root@k8s-node2 aaa]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-linux-x86_64.tar.gz
[root@k8s-node2 software]# tar -xvf elasticsearch-7.12.0-linux-x86_64.tar.gz
[root@k8s-node2 elasticsearch-7.12.0]# cd /opt/software/elasticsearch-7.12.0
bin # 脚本文件,包括 ES 启动 & 安装插件等等
config # elasticsearch.yml(ES 配置文件)、jvm.options(JVM 配置文件)、日志配置文件等等
jdk # 内置的 JDK,JAVA_VERSION="12.0.1"
lib # 类库
logs # 日志文件
modules # ES 所有模块,包括 X-pack 等
plugins # ES 已经安装的插件。默认没有插件
启动用户
[root@k8s-node2 elasticsearch-7.12.0]# groupadd elasticsearch
[root@k8s-node2 elasticsearch-7.12.0]# useradd -g elasticsearch elasticsearch
[root@k8s-node2 elasticsearch-7.12.0]# chown -R elasticsearch:elasticsearch ../elasticsearch-7.12.0
[root@k8s-node2 elasticsearch-7.12.0]# su elasticsearch
[elasticsearch@k8s-node2 elasticsearch-7.12.0]$ ./bin/elasticsearch
- 打开一个新终端测试访问
[root@k8s-node2 ~]# curl "127.0.0.1:9200"
{
"name" : "k8s-node2",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "956FguX1QkSc4vulArZm0w",
"version" : {
"number" : "7.12.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "78722783c38caa25a70982b5b042074cde5d3b3a",
"build_date" : "2021-03-18T06:17:15.410153305Z",
"build_snapshot" : false,
"lucene_version" : "8.8.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
elasticsearch.yml基本配置
- 常用配置文件
[root@k8s-node2 elasticsearch-7.12.0]# vim config/elasticsearch.yml
cluster.name: elasticsearch
# 配置的集群名称,默认是elasticsearch
node.name: "Franz Kafka"
# 当前配置所在机器的节点名,最好设置当前机器的ip地址
network.host: 192.168.0.1
# 监听地址,这个参数是用来同时设置bind_host和publish_host上面两个参数。
path.data: /path/to/data
# 设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开
path.logs: /path/to/logs
# 设置日志文件的存储路径,默认是es根目录下的logs文件夹
http.port: 9200
# 设置对外服务的http端口,默认为9200。
transport.tcp.port: 9300
# 设置节点之间交互的tcp端口,默认是9300
jvm.options配置优化
[root@k8s-node2 elasticsearch-7.12.0]# vim config/jvm.options
1) 环境配置
[root@k8s-node2]# sudo swapoff -a
# 禁用swapping,开启服务器虚拟内存交换功能会对es产生致命的打击
2)vm.options
- jvm.options主要是进行内存相关配置,官方建议分配给es的内存不要超出系统内存的50%,
- 预留一半给Lucene,因为Lucene会缓存segment数据提升检索性能;
- 内存配置不要超过32g,如果你的服务器内存没有远远超过64g,那么不建议将es的jvm内存设置为32g
- 因为超过32g后每个jvm对象指针的长度会翻倍,导致内存与cpu的开销增大
-Xms10g
-Xmx10g