ElasticSearch实战-ElasticSearch集群环境搭建

Posted 张志翔ۤ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch实战-ElasticSearch集群环境搭建相关的知识,希望对你有一定的参考价值。

        ElasticSearch,这个熟悉又陌生的名词是从三年前开始听到的,刚接触的时候是用ElasticSearch 与 Logstash、Kibana 做了一个服务器日志收集和可视化界面,对于其他用途并不是非常了解,直到再有一次面试一家做支付行业的公司的时候,据说他们公司日订单量达到了千万级别,他们的订单就是存储在ElasticSearch集群中的,这一次面试让我重新认识到了ElasticSearch的用途远远不只是作为一个服务器日志存储工具的,从那一次开始,我就渴望能够对ElasticSearch能够有更多的深入了解。

        随着知识的日益丰富,我对ElasticSearch也达到了一个新的高度,我想通过写这个专栏文章,把我对 ElasticSearch 的所有知识都存放到这里,也希望通过这个专栏文章,能够帮助到更多需要入门或者深入使用ElasticSearch的人。ElasticSearch 的用处很多,在监控领域(服务器监控,设备监控,APM监控,中间件监控等)具有非常全面的功能,几乎涵盖了多有监控细分领域的存储地位,比如平时我们需要使用Prometheus和ClickHouse来作为Metric指标监控数据收集和存储工具,其实ElasticSearch是可以取代ClickHouse的,因为他们底层算法类似,都是基于倒排索引进行的日志检索。在大数据领域,ElasticSearch表现的异常优秀,例如在日数据量在20TB,周数据量在140TB的某车联网企业(某越速运),他们存储如此大数据量的方式就是选择的 HBase 与 ElasticSearch 的组合方式,ElasticSearch 通常是和三方存储系统一起配合使用可以达到最大威力,因为他的定位并不是取代其他存储系统的地位,而是配合他们发挥更大的查询与聚合优势。

        目前最好的大数据存储与查询组合方式是 Cassandra 与 ElasticSearch,Cassandra也是被视为比 HBase 性能优秀的数据存储系统,目前它的查询速度在排行榜第一位。ElasticSearch的语法异常丰富,它的理念是基于自由模式(Free Schema)的用户角度出发,让用户能够在使用ElasticSearch过程中可以得心应手应对各种大数据场景,相比较于 Flink 的反人性语法,它目前才是大数据查询和聚合场景的终极解决方案。

        本专栏将带领大家对 ElasticSearch 从底层原理到应用的全方位深入实战,目的是解决大家在实际工作场景中遇到的各种疑难杂症,希望我在写完这个专栏的时候,我们能够一起在 ElasticSearch 领域有更加透彻的领悟和技术方面的提升。

        注:本文作为专栏的第一篇文章,首先将带领大家搭建起来 ElasticSearch 集群实战环境,我们后面所有的操作都将会在这个集群上进行展开。

一、ElasticSearch简介

        ElasticSearch是什么?

        Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。人们通常将 Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向 Elasticsearch 发送数据。

        Elasticsearch 的用途是什么?

        Elasticsearch 在速度和可扩展性方面都表现出色,而且还能够索引多种类型的内容,这意味着其可用于多种用例:应用程序搜索、网站搜索、企业搜索、日志处理和分析、基础设施指标和容器监测、应用程序性能监测、地理空间数据分析和可视化、安全分析、业务分析等。

        为何使用 Elasticsearch?

        Elasticsearch 很快。由于 Elasticsearch 是在 Lucene 基础上构建而成的,所以在全文本搜索方面表现十分出色。Elasticsearch 同时还是一个近实时的搜索平台,这意味着从文档索引操作到文档变为可搜索状态之间的延时很短,一般只有一秒。因此,Elasticsearch 非常适用于对时间有严苛要求的用例,例如安全分析和基础设施监测。

        Elasticsearch 具有分布式的本质特征。Elasticsearch 中存储的文档分布在不同的容器中,这些容器称为分片,可以进行复制以提供数据冗余副本,以防发生硬件故障。Elasticsearch 的分布式特性使得它可以扩展至数百台(甚至数千台)服务器,并处理 PB 量级的数据。

        Elasticsearch 包含一系列广泛的功能。除了速度、可扩展性和弹性等优势以外,Elasticsearch 还有大量强大的内置功能(例如数据汇总和索引生命周期管理),可以方便用户更加高效地存储和搜索数据。

        Elastic Stack 简化了数据采集、可视化和报告过程。通过与 Beats 和 Logstash 进行集成,用户能够在向 Elasticsearch 中索引数据之前轻松地处理数据。同时,Kibana 不仅可针对 Elasticsearch 数据提供实时可视化,同时还提供 UI 以便用户快速访问应用程序性能监测 (APM)、日志和基础设施指标等数据。

        因此,ElasticSearch是一个成熟的大数据分布式存储解决方案,并且可以作为完备的分布式系统开发和支撑平台的存储系统。

二、准备工作

        本专栏是基于Centos7环境的基础上搭建的,Centos 也是官方推荐的操作系统,我这边由于资金问题所以三台服务器以虚拟机的方式进行创建,三台服务器配置信息,如下所示:

主机名称IP地址硬盘容量内存容量
es-01

192.168.3.1

100GB8GB
es-02192.168.3.2100GB8GB
es-03192.168.3.3100GB8GB

        然后我们需要修改三台服务器相关配置文件,以满足 ElasticSearch 集群运行前置条件。

        

以上是关于ElasticSearch实战-ElasticSearch集群环境搭建的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSearch 一文读懂

Docker 安装 Elasticsearch

docker安装elasticsearch

ElasticSearch(站内搜索)

elasticsearch的安装部署

elasticsearch配置文件详解