• 原创 | 手摸手带您学会 Elasticsearch 单机、集群、插件安装(图文教程)


    欢迎关注笔者的公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习、面试资源哟!!

    个人网站: https://www.exception.site/essay/elasticsearch-single-cluster-plugin-install

    目录

    • 一、什么是 Elasticsearch
    • 二、Elasticsearch 下载&安装
    • 三、Elasticsearch 安装&查看插件
    • 四、Elasticsearch 本地集群搭建

    一、什么是 Elasticsearch

    Elasticsearch 是开源的分布式全文搜索引擎,它底层基于 Apache Lucene,具备高伸缩、高可靠、易管理等特点。提供搜索、分析、数据存储三大功能。特点包括分布式、RESTFul 接口、索引自动分片、副本机制、多数据源以及搜索负载等等。

    根据 DB-Engines 的排名显示,Elasticsearch 是最受欢迎的企业搜索引擎,其次是Apache Solr,它也是基于Lucene。

    今天,小哈就手摸手带着大家学会 Elasticsearch 单机、集群、插件安装步骤,附有丰富的图文哦~

    二、Elasticsearch 下载&安装

    2.1 安装 Java

    在安装 Elasticsearch 之前,您需安装并配置好 JDK, 设置好环境变量 $JAVA_HOME

    众所周知,Elasticsearch 版本很多,不同的版本对 Java 的依赖也有所差别:

    • Elasticsearch 5 需要 Java 8 以上版本;
    • Elasticsearch 6.5 开始支持 Java 11;
    • Elasticsearch 7.0 开始,内置了 Java 环境,所以说,安装 7.0+ 版本会方便很多。

    2.2 下载 Elasticsearch

    访问 Elasticsearch 官网 https://www.elastic.co/cn/downloads/elasticsearch 下载安装包:

    笔者这里下载的是 MAC 系统 Elasticsearch V7.1.0 版本作为演示。

    2.3 解压

    下载成功后,解压到指定目录:

    tar -zxvf elasticsearch-7.1.0-darwin-x86_64.tar.gz
    

    进入解压后的目录,结构如下:

    2.4 Elasticsearch 目录、配置文件说明、注意点

    这里大概解答下各个目录、配置文件的作用:

    目录 配置文件 描述
    bin 放置脚本文件,如启动脚本 elasticsearch, 插件安装脚本等。
    config elasticserch.yml elasticsearch 配置文件,如集群配置、jvm 配置等。
    jdk java 运行环境
    data path.data 数据持久化文件
    lib 依赖的相关类库
    logs path.log 日志文件
    modules 包含的所有 ES 模块
    plugins 包含的所有已安装的插件

    注意点:

    • 有些童鞋的机器内存可能不够,就需要修改 JVM 参数,配置文件路径为 config/jvm.options,ES V7.1 版本默认为 1g, 老版本为 2g, 你可以自行修改。
    • Xmx Xms 数值请设置相同;
    • Xmx 不要超过机器内存的 50%
    • 内存总量不要超过 30GB, 参见官方文档 https://www.elastic.co/cn/blog/a-heap-of-trouble

    2.5 运行 Elasticsearch

    执行启动命令:

    bin/elasticsearch
    

    看到启动日志中有 started关键字,就表示启动成功了。

    另外,我们还可以通过访问 Elasticsearch 9200端口来实际验证一下:

    curl localhost:9200
    

    返回了 Elasticsearch 相关元数据,如版本信息 7.1.0,就明确表示大工告成,可以好好地玩耍了。

    之前,小哈还原创过一篇《Docker 快速安装&搭建 Elasticsearch 环境》,其中包含如何通过 Docker 来安装 Elasticsearch, 有兴趣的小伙伴可以看下。

    2.6 Elasticsearch 关闭

    通过如下命令,找出正在运行的 ES 进程 PID:

    ps -ef | grep elasticsearch
    

    执行 kill 命令,即可关闭 Elasticsearch 进程:

    kill pid
    

    三、Elasticsearch 安装&查看插件

    3.1 查看已安装的插件

    在 Elasticsearch 解压包的根目录下,通过如下命令,可以查看当前已安装的插件:

    bin/elasticsearch-plugin list
    

    这里由于是第一次安装 Elasticsearch,还没有安装任何插件,所以显示的列表为空。

    3.2 安装插件

    安装插件命令格式如下:

    bin/elasticsearch-plugin install {插件名称}
    

    我们选择国际化分词插件 analysis-icu, 尝试去安装它:

    bin/elasticsearch-plugin install analysis-icu
    

    可以看到插件安装成功了。

    细心的小伙伴可能看到,控制台日志中有警告⚠️信息,这个会有影响么?

    答案是: 不影响

    小哈特意去 Elasticsearch GitHub issues 看了一下:

    接下来,再通过 bin/elasticsearch-plugin list命令就可以看到 analysis-icu插件已经显示在列表中了:

    除了上面这种方式外,还可以通过如下接口来查看:

    GET /_cat/plugins
    

    如图所示:

    拓展:Elasticsearch 提供插件的机制,允许开发者对系统进行拓展。比如,通过插件的机制,来增加安全权限的管控,可参考开源的 ES 插件 Search Guard.

    四、Elasticsearch 本地集群搭建

    我们将演示,如何在本机上搭建一个多节点的 Elasticsearch 集群。

    这个集群中会有 4 个节点,分别是 node0node1node2node3

    启动命令如下:

    bin/elasticsearch -E node.name=node0 -E cluster.name=xiaoha-cluster -E path.data=node0_data -d
    bin/elasticsearch -E node.name=node1 -E cluster.name=xiaoha-cluster -E path.data=node1_data -d
    bin/elasticsearch -E node.name=node2 -E cluster.name=xiaoha-cluster -E path.data=node2_data -d
    bin/elasticsearch -E node.name=node3 -E cluster.name=xiaoha-cluster -E path.data=node3_data -d
    

    小伙伴们可能会说:启动命令后面的参数都是啥意思?

    看图:

    启动成功后,我们可以通过 /_cat/nodes API 来查看集群节点信息:

    GET /_cat/nodes
    

    注意: 执行命令后,不要立即验证节点是否启动成功,因为启动成功需要花费一些时长,稍等片刻,就能看到被成功启动的节点了。

    接下来,通过 CURL 命令来查看一下节点信息:

    curl localhost:9200/_cat/nodes
    

    可以看到,一共 4 个节点,是 OK 的,另外,我们也可以通过 HEAD 插件来查看:

    至此,一个 4 节点的 Elasticsearch 集群的本地环境搭建完毕。

    五、结语

    本文中,小哈手摸手带着大家学会了 Elasticsearch 单机、集群、插件的安装,希望小伙伴们看完后,有所收获,下期见哦~

    欢迎关注微信公众号: 小哈学Java

    关注笔者的微信公众号: 小哈学Java, 每日第一时间推送干货文章, 另外, 笔者个人吐血整理了 100G 的学习资料, 关注回复「666」即可免费无套路领取哟~

    关注微信公众号【小哈学Java】,回复【资源】,即可免费无套路领取资源链接哦

  • 相关阅读:
    洛谷P4206 [NOI2005]聪聪与可可(期望dp+最短路)
    bzoj2064: 分裂(状压dp)
    Centos7搭建ansible运维自动化工具
    Centos7自动式脚本搭建jumpserver
    TSP问题—Hopfield神经网络算法
    TSP问题—近似算法
    狭义相对论的数学推导
    线性规划实战—投资的收益和风险
    线性规划的算法分析
    一阶非齐次线性微分方程的算法
  • 原文地址:https://www.cnblogs.com/quanxiaoha/p/11533674.html
Copyright © 2020-2023  润新知