Elasticsearch—概念、安装和配置

2020-05-27 00:00:00 索引 用户 节点 分片 副本

前言:

Elasticsearch是一款很火热的,很的,基于lucene的开源的分布式的搜索引擎,话不多说,本篇文章主要是Elasticsearch基本概念介绍、安装和配置。


Elasticsearch的基本概念

官方文档——Basic Concepts | Elasticsearch Reference [6.4] | Elastic

我们在学习关系型数据库和服务器的时候,接触到了一些概念如:database数据库、table表、行row、列column、集群cluster等。同样,在Elasticsearch(ES)中也有类似的概念,

在Elasticsearch中有一些常用的概念:

  • 集群Cluster
  • 节点Node
  • 索引Index
  • 类型Type
  • 文档Document
  • 分片和副本Shards & Replicas

下面,让我们逐一看一下这些概念。

1.集群Cluster

集群是一个或多个节点(服务器)的集合,它们共同保存用户的整个数据,并提供跨所有节点的联合索引和搜索功能。集群由名称标识,默认情况下为“elasticsearch”。

2.节点Node

节点是作为集群一部分的单个服务器,存储数据并参与群集的索引和搜索功能。

3.索引Index

索引是具有某些类似特征的文档Document的集合。索引由名称标识(必须全部小写),此名称用于在对其中的文档执行索引,搜索,更新和删除操作时引用索引。

4.类型Type

Type是在ES6.0.0版本以前存在的概念,一个索引下允许存在不同类型的的文档,可以用Type来作为索引的逻辑类别/分区。新版本的ES已经删除了Type这个概念,因为默认一个索引下只能存在相同类型(1种)的文档。

5.文档Document

文档是可以被索引的基本信息单元。文档以JSON格式来存储表示。一个索引下可以存储任意数量的文档。

6.分片Shards

索引可能存储大量可能超过单个节点的硬件限制的数据。例如,占用1TB磁盘空间的十亿个文档的单个索引可能不适合单个节点的磁盘,或者可能太慢而无法单独从单个节点提供搜索请求。为了解决这个问题,Elasticsearch提供了将索引细分为多个称为分片的功能。创建索引时,只需定义所需的分片数即可。每个分片本身都是一个功能齐全且独立的“索引”,可以托管在集群中的任何节点上。

分片的特点:

  • 分片的机制和实现对用户而言是透明的
  • 可以横向拆分/缩放索引的内容
  • 跨分片(多个节点)分布和并行化的操作,可以提高整体性能/吞吐量
分片的分布方式以及如何将其文档聚合回搜索请求的机制完全由Elasticsearch管理,对用户而言是透明的。

7.副本Replicas

副本,是一种备份和防止故障的机制,因为在可能发生故障的网络/云环境中,分片/节点以某种方式脱机或因任何原因消失时,需要其他节点上存储的副本来提供内容。Elasticsearch允许将索引复制为副本。由于索引可能存在多个分片,所以对应的,副本也同样会保存相应的副本分片,所有的副本分片整体构成了一个完整的索引的「副本」。

副本的特点:

  • 副本分片永远不会和主分片分配于相同的节点上(否则发生故障时,就起不到作用了)
  • 副本分片拓展了搜索量/吞吐量,因为可以在主分片和副本分片上并行搜索。
  • 可以在创建索引时为每个索引定义分片和副本的数量。创建索引后还可以随时动态更改副本数。

默认情况下,Elasticsearch中的每个索引都分配了5个主分片和1个副本,当集群中有2个节点时,则一个索引在一个节点中必然包5个主分片,而在另一台节点中存储着此索引的「副本」,即5个副本分片。则此集群中此索引总计有10个分片。

ES中的索引、文档、字段关系总结:

可以类比MySQL中的表Table,在ES中,索引Index就相当于Mysql中的表Table;索引中的文档Document就相当于表中的一行记录Row;

在Mysql中,我们可以创建用户表、产品表、订单表,用户表中的每一行Row记录了一条用户信息,然后每一行用户信息都有更详细的记录如用户姓名、性别、年龄、电话等.....这些称为列Column;

在ES中,索引Index就相当于Mysql中的表Table,我们可以创建用户索引、产品索引、订单索引,每个索引下包含若干条文档(Document),这些文档和Table中的row类似,文档中又存在不同的字段,这些字段则类似于数据库中的Column。


Elasticsearch的安装和配置

首先,官网下载,选择相应的版本,我是mac所以此次演示都是基于mac系统的,Linux下差不多,有少许区别。Windows下可能会有一些坑....下载地址:

Download Elasticsearch

下载完成后将包移到合适的位置,然后解压:

tar -xzf elasticsearch-6.4.2.tar.gz

相关文章