Elasticsearch 7.x 最详细安装及配置

一、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 配置文件,默认配置如下:

-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 根目录下面,执行启动脚本文件:

cd elasticsearch-7.2.1
bin/elasticsearch

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

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/ 地址,然后可以得到下面的信息:

{
"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 地址,可以看到当前节点信息,如下:

127.0.0.1 30 100 22 2.87   mdi * BYSocketdeMacBook-Pro-2.local

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

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

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 实例,可以使用简单的命令实现:

ps | grep elasticsearch
kill -9 pid

三、Elasticsearch 7.x 插件概述

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

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

sudo bin/elasticsearch-plugin install analysis-icu

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

bin/elasticsearch-plugin list

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

sudo bin/elasticsearch-plugin remove analysis-icu

四、小结

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

(完)原创不易,帮转 ~

资料:

Elasticsearch 7.x 最详细安装及配置的更多相关文章

  1. 图解MySQL5.5详细安装与配置过程

    MySQL是一个开源的关系型数据库管理系统,原由瑞典MySQL AB公司开发,目前属于Oracle公司旗下.MySQL是目前世界上开源数据库中最受欢迎的产品之一,是应用最为广泛的开源数据库.MySQL ...

  2. elasticsearch(一):安装与配置

    一.elastic search的安装与配置 1.安装Java 并且配置JAVA_HOME环境变量. 2.下载elasticsearch,下载地址:https://www.elastic.co/dow ...

  3. (3)ElasticSearch在linux环境中安装与配置head插件

    1.简介 ElasticSearch-Head跟Kibana一样也是一个针对ElasticSearch集群操作的API的可视化管理工具,它提供了集群管理.数据可视化.增删改查.查询语句等功能,最重要还 ...

  4. Cacti-0.8.8b详细安装及配置步骤

    1.  Cacti环境安装 1.1         安装LAMP环境 安装LAMP环境,当然,如果你有兴趣可以采用编译,我线上Mysql是编译的,其余是yum安装的.在这次实验采用yum安装. 关闭i ...

  5. 演示PostgreSQL的详细安装及配置图解

    右击文件选择以管理员身份运行 2 开始执行程序的安装 3 设置安装目录 4 设置数据的保存目录 5 设置数据库管理员密码,请牢记此密码. 6 设置端口号,选择默认的端口号即可 7 根据自己选择设置地区 ...

  6. Elasticsearch 在 windows 和 ubuntu 下详细安装过程

    1. 前言 作为一名 .NET 平台开发者,选择开发框架时总会面临更多的局限性,不过对于搜索这种刚需服务来说,开源框架可供选择的余地还是比较大的.笔者之前用的是 Lucene.net ,现在深感其使用 ...

  7. [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.

    为了更好的排版, 所以将IK分词器的安装重启了一篇博文,  大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://ww ...

  8. Sphinx中文分词详细安装配置及API调用实战

    这几天项目中需要重新做一个关于商品的全文搜索功能,于是想到了用Sphinx,因为需要中文分词,所以选择了Sphinx for chinese,当然你也可以选择coreseek,建议这两个中选择一个,暂 ...

  9. 安装与配置 Elasticsearch

    环境:centos6.7 #查询已经安装的JDK rpm -qa | grep jdk #卸载 yum -y remove  java-1.8.0-openjdk-headless-1.8.0.91- ...

随机推荐

  1. CAD2014学习笔记-图纸布局和打印输出

    基于 虎课网huke88.com CAD教程 图纸设计规范:施工图 封面设计:地点.名称.设计人 目录设计:施工图编号.名称.意义.对应页数.注释.图号序号:包括平面.立面.大样图.施工图 设计说明/ ...

  2. 5G VS WiFi6,实力大比拼!

    移动通信与WiFi,就像移动设备上的两大高手.彼此势均力敌:一个主室内,一个主室外.WiFi是移动网络的室内覆盖补充,也承担着大量的数据流量卸载,二者既想各自占山为王,但也时不时地相互成全对方. 然而 ...

  3. TensorFlow笔记-组件

    张量 TensorFlow用张量这种数据结构来表示所有的数据.你可以把一个张量想象成一个n维的数组或列表.一个张量有一个静态类型和动态类型的维数.张量可以在图中的节点之间流通.其实张量更代表的就是一种 ...

  4. [leetcode] 542. 01 Matrix (Medium)

    给予一个矩阵,矩阵有1有0,计算每一个1到0需要走几步,只能走上下左右. 解法一: 利用dp,从左上角遍历一遍,再从右下角遍历一遍,dp存储当前位置到0的最短距离. 十分粗心的搞错了col和row,改 ...

  5. c#六大设计原则(以仪器代码为例)

    [有格式的原文请到https://www.cnc6.cn/c六大设计原则/文末下载] 软件设计原则常见的有6大原则,分别为: ①单一职责原则: ②开闭原则: ③依赖倒置原则: ④里氏替换原则: ⑤接口 ...

  6. Cobbler-自动化部署神器

    Cobbler-自动化部署神器 前言: 网络安装服务器套件 Cobbler(补鞋匠)从前,我们一直在做装机民工这份很有前途的职业.自打若干年前 Red Hat 推出了 Kickstart,此后我们顿觉 ...

  7. <<Modern CMake>> 翻译 2.2 CMake 编程

    <<Modern CMake>> 翻译 2.2 CMake 编程 流程控制 CMake有一个 if 语句, 经年累月之后,现在它已经相当复杂. 您可以在 if 语句中使用全大写 ...

  8. Waiting for 1 instance(s) to be deallocated

    看是不是马虎,自己的xampp,也就是mysql有没有打开

  9. Android native进程间通信实例-binder结合共享内存

    在android源码的驱动目录下,一般会有共享内存的相关实现源码,目录是:kernel\drivers\staging\android\ashmem.c.但是本篇文章不是讲解android共享内存的功 ...

  10. Python基础总结之第十一天开始【再深入一下函数,重新认识一下】(新手可相互督促)

    感谢最近大家的关注,希望我的学习笔记对大家有帮助!也感谢各位的评论和推荐,请多多指教. 在重新认识函数之前,我们先看两个函数.一个是我们在前面笔记经常用到的print()  :另一个是input() ...