前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch 7.x 最详细安装及配置 | 原创不易

Elasticsearch 7.x 最详细安装及配置 | 原创不易

作者头像
二哥聊运营工具
发布2021-12-17 11:48:42
4.6K0
发布2021-12-17 11:48:42
举报
文章被收录于专栏:程序员泥瓦匠

一、Elasticsearch 7.x

小马哥说过,学习技术栈得看版本,那么 Elasticsearch 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

二、Elasticsearch 7.x 安装步骤

2.1 下载 Elasticsearch 7.2.1

下载地址:https://www.elastic.co/cn/downloads/elasticsearch

如图,下载对应需要的 ES 。我这边是 MacOS ,所以直接下载了 MacOS 的本。另外 ES 支持 Docker 方式启动。另外,ES 7.x 不需要本地 JDK 环境支持:

  • ES 5,安装需要 JDK 8 以上
  • ES 6.5,安装需要 JDK 11 以上
  • ES 7.2.1,内置了 JDK 12

下载完后,ES 文件目录结构如下图所示:

Elasticsearch 7.2.1 目录结构如下:

  • bin :脚本文件,包括 ES 启动 & 安装插件等等
  • config :elasticsearch.yml(ES 配置文件)、jvm.options(JVM 配置文件)、日志配置文件等等
  • JDK :内置的 JDK,JAVA_VERSION="12.0.1"
  • lib :类库
  • logs :日志文件
  • modules :ES 所有模块,包括 X-pack 等
  • plugins :ES 已经安装的插件。默认没有插件
  • data :ES 启动的时候,会有该目录,用来存储文档数据。该目录可以设置

具体看看关键的 jvm.options JVM 配置文件,默认配置如下:

代码语言:javascript
复制
-Xms1g
 
-Xmx1g
 

ES 默认安装后设置的堆内存是 1 GB,对于任何业务来说这个设置肯定是少了。那设置多少?

推荐:如果足够的内存,也尽量不要 超过 32 GB。即每个节点内存分配不超过 32 GB。因为它浪费了内存,降低了 CPU 的性能,还要让 GC 应对大内存。如果你想保证其安全可靠,设置堆内存为 31 GB 是一个安全的选择。

上述推荐,理由来自《堆内存:大小和交换编辑》:https://www.elastic.co/guide/cn/elasticsearch/guide/current/heap-sizing.html

2.2 启动 Elasticsearch 7.2.1

启动方式很简单,在 ES 根目录下面,执行启动脚本文件:

代码语言:javascript
复制
cd elasticsearch-7.2.1
 
bin/elasticsearch
 

运行完后,会出现下面的日志:

代码语言:javascript
复制
future versions of Elasticsearch will require Java 11; your Java version from [/Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home/jre] does not meet this requirement
 


 
... 省略
 


 
[2019-08-16T16:29:53,069][INFO ][o.e.n.Node ] [BYSocketdeMacBook-Pro-2.local] started
 
[2019-08-16T16:29:53,478][INFO ][o.e.l.LicenseService ] [BYSocketdeMacBook-Pro-2.local] license [ef60f54d-4964-4cb6-98ac-aafdc0f2a4c0] mode [basic] - valid
 
[2019-08-16T16:29:53,491][INFO ][o.e.g.GatewayService ] [BYSocketdeMacBook-Pro-2.local] recovered [0] indices into cluster_state
 
[2019-08-16T16:30:23,057][INFO ][o.e.c.r.a.DiskThresholdMonitor] [BYSocketdeMacBook-Pro-2.local] low disk watermark [85%] exceeded on [DRs4DZO0SzCaYz3n3vA3Fg][BYSocketdeMacBook-Pro-2.local][/javaee/es/elasticsearch-7.2.1/data/nodes/0] free: 49.2gb[10.6%], replicas will not be assigned to this node
 

日志中有两个信息需要注意:

  • 本机环境是 JDK 8 ,它会提醒后面版本需要 JDK 11 支持。但它是向下兼容的
  • 表示本机 ES 启动成功 [BYSocketdeMacBook-Pro-2.local] started

2.3 验证是否启动成功

打开浏览器,输入 http://localhost:9200/ 地址,然后可以得到下面的信息:

代码语言:javascript
复制
{
 
 "name": "BYSocketdeMacBook-Pro-2.local",
 
 "cluster_name": "elasticsearch",
 
 "cluster_uuid": "tc9h17oqSHKvGJb3qK2tPg",
 
 "version": {
 
 "number": "7.2.1",
 
 "build_flavor": "default",
 
 "build_type": "tar",
 
 "build_hash": "fe6cb20",
 
 "build_date": "2019-07-24T17:58:29.979462Z",
 
 "build_snapshot": false,
 
 "lucene_version": "8.0.0",
 
 "minimum_wire_compatibility_version": "6.8.0",
 
 "minimum_index_compatibility_version": "6.0.0-beta1"
 
 },
 
 "tagline": "You Know, for Search"
 
}
 

重点几个关注下即可:

  • name :默认启动的时候指定了 ES 实例名称,name 为 BYSocketdeMacBook-Pro-2.local
  • cluster_name :默认名为 elasticsearch
  • version :版本信息

同样通过 http://localhost:9200/_cat/nodes?v 地址,可以看到当前节点信息,如下:

代码语言:javascript
复制
127.0.0.1 30 100 22 2.87   mdi * BYSocketdeMacBook-Pro-2.local
 

2.4 单机集群多个 ES 实例安装

单机多个 ES 实例,形成一个 ES 单机伪集群,启动脚本如下:

代码语言:javascript
复制
bin/elasticsearch -E node.name=node01 -E cluster.name=bysocket_es_cluster -E path.data=node01_data -d
 


 
bin/elasticsearch -E node.name=node02 -E cluster.name=bysocket_es_cluster -E path.data=node02_data -d
 


 
bin/elasticsearch -E node.name=node03 -E cluster.name=bysocket_es_cluster -E path.data=node03_data -d
 


 
bin/elasticsearch -E node.name=node04 -E cluster.name=bysocket_es_cluster -E path.data=node04_data -d
 

命令简单解释如下:

  • node.name :ES 节点名称,即实例名
  • cluster.name :ES 集群名称
  • path.data :指定了存储文档数据目录

执行完脚本后,需要等一会 ES 启动,也可以查看 logs 看看执行情况。

打开浏览器,输入 http://localhost:9200/_cat/nodes?v 地址,可以看到启动情况:node01 为当前 master 节点

如何关闭集群中的 ES 实例,可以使用简单的命令实现:

代码语言:javascript
复制
ps | grep elasticsearch
 
kill -9 pid
 

三、Elasticsearch 7.x 插件概述

插件是用来增强 Elasticsearch 功能的方法,分为 核心插件(官方) & 社区插件。

安装 analysis-icu ICU 分析插件,命令如下:

代码语言:javascript
复制
sudo bin/elasticsearch-plugin install analysis-icu
 

查看已安装的插件,命令如下:

代码语言:javascript
复制
bin/elasticsearch-plugin list
 

删除已安装的插件,命令如下

代码语言:javascript
复制
sudo bin/elasticsearch-plugin remove analysis-icu
 

四、小结

本文介绍了两种安装以及插件安装,因为方便学习集群相关的知识点。另外注意 JVM 配置相关的优化即可。后续继续 Elasticsearch 7.x 操作学习 ~

资料:

  • 极客时间课程
  • 官网资料 https://www.elastic.co
  • bysocket.com
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员泥瓦匠 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Elasticsearch 7.x
  • 二、Elasticsearch 7.x 安装步骤
    • 2.1 下载 Elasticsearch 7.2.1
      • 2.2 启动 Elasticsearch 7.2.1
        • 2.3 验证是否启动成功
          • 2.4 单机集群多个 ES 实例安装
          • 三、Elasticsearch 7.x 插件概述
          • 四、小结
          相关产品与服务
          Elasticsearch Service
          腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档