一、elasticsearch基础

一、下载安装

1.1、下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.0-x86_64.rpm

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.0-x86_64.rpm

在这里插入图片描述
1.2、安装
rpm --install elasticsearch-7.0.0-x86_64.rpm

rpm --install elasticsearch-7.0.0-x86_64.rpm

1.3、新增配置
chkconfig --add elasticsearch

chkconfig --add elasticsearch

1.4、启动&本地检查
service elasticsearch start

service elasticsearch start

在这里插入图片描述

二、常见问题

2.1、内存不够
在这里插入图片描述
方案:
修改jvm.options配置文件,修改其默认值的1G,改小一点
在这里插入图片描述
2.2、外网访问不了
修改elasticsearch.yml,新增一行
http.host: 0.0.0.0
在这里插入图片描述

三、概述

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
3.1、Node和Cluster
es本质上是一个分布式搜索引擎,允许多台服务器的协同工作,每台服务器可以允许运行多个es实例。单个es实例称之为节点node。一组节点构成一个集群cluster
3.2、Index
es会索引所有的字段,经过处理后写入一个反向索引,查找数据的时候,直接查找改索引。即,es数据管理的顶层就是Index(索引),和数据库同义词。
3.3、Document
Index里面单条记录称之为Document(文档),许多条Document构成了一个Index。
3.4、Type
Document 可以分组,比如weather这个 Index 里面,可以按城市分组(北京和上海),也可以按气候分组(晴天和雨天)。这种分组就叫做 Type,它是虚拟的逻辑分组,用来过滤 Document。

四、实战

4.1 新建和删除Index
新建 Index,可以直接向 Elastic 服务器发出 PUT 请求。下面的例子是新建一个名叫index_test的 Index。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
4.2、mapping映射
在这里插入图片描述
在这里插入图片描述
4.3、和MySQL对比
在这里插入图片描述
(1)关系型数据库中的数据库(DataBase),等价于ES中的索引(Index)
(2)一个数据库下面有N张表(Table),等价于1个索引Index下面有N多类型(Type),
(3)一个数据库表(Table)下的数据由多行(ROW)多列(column,属性)组成,等价于1个Type由多个文档(Document)和多Field组成。
(4)在一个关系型数据库里面,schema定义了表、每个表的字段,还有表和字段之间的关系。 与之对应的,在ES中:Mapping定义索引下的Type的字段处理规则,即索引如何建立、索引类型、是否保存原始索引JSON文档、是否压缩原始JSON文档、是否需要分词处理、如何进行分词处理等。
(5)在数据库中的增insert、删delete、改update、查search操作等价于ES中的增PUT/POST、删Delete、改_update、查GET.

五、集群

集群高可用:
Elasticsearch 作为一个搜索引擎,我们对它的基本要求就是存储海量数据并且可以在非常短的时间内查询到我们想要的信息。所以第一步我们需要保证的就是 Elasticsearch 的高可用性,什么是高可用性呢?它通常是指,通过设计减少系统不能提供服务的时间。假设系统一直能够提供服务,我们说系统的可用性是 100%。如果系统在某个时刻宕掉了,比如某个网站在某个时间挂掉了,那么就可以它临时是不可用的。所以,为了保证 Elasticsearch 的高可用性,我们就应该尽量减少 Elasticsearch 的不可用时间。多台集群高可以用的情况下,Elasticsearch的信息存储机制采用了分片机制。

分片:
英文叫做 Shard,顾名思义,分片就是对数据切分成了多个部分。我们知道 Elasticsearch 中一个索引(Index)相当于是一个数据库,如存某网站的用户信息,我们就建一个名为 user 的索引。但索引存储的时候并不是整个存一起的,它是被分片存储的,Elasticsearch 默认会把一个索引分成五个分片,当然这个数字是可以自定义的。分片是数据的容器,数据保存在分片内,分片又被分配到集群内的各个节点里。当你的集群规模扩大或者缩小时, Elasticsearch 会自动的在各节点中迁移分片,使得数据仍然均匀分布在集群里,所以相当于一份数据被分成了多份并保存在不同的主机上。

副本:
英文叫做 Replica,同样顾名思义,副本就是对原分片的复制,和原分片的内容是一样的,Elasticsearch 默认会生成一份副本,所以相当于是五个原分片和五个分片副本,相当于一份数据存了两份,并分了十个分片,当然副本的数量也是可以自定义的。这时我们只需要将某个分片的副本存在另外一台主机上,这样当某台主机宕机了,我们依然还可以从另外一台主机的副本中找到对应的数据。所以从外部来看,数据结果是没有任何区别的。

健康状态
针对一个索引,Elasticsearch 中其实有专门的衡量索引健康状况的标志,分为三个等级:
green,绿色。这代表所有的主分片和副本分片都已分配。你的集群是 100% 可用的。
yellow,黄色。所有的主分片已经分片了,但至少还有一个副本是缺失的。不会有数据丢失,所以搜索结果依然是完整的。不过,你的高可用性在某种程度上被弱化。如果更多的分片消失,你就会丢数据了。所以可把 yellow 想象成一个需要及时调查的警告。
red,红色。至少一个主分片以及它的全部副本都在缺失中。这意味着你在缺少数据:搜索只能返回部分数据,而分配到这个分片上的写入请求会返回一个异常。
如果你只有一台主机的话,其实索引的健康状况也是 yellow,因为一台主机,集群没有其他的主机可以防止副本,所以说,这就是一个不健康的状态,因此集群也是十分有必要的。
在这里插入图片描述

配置两个节点以后,集群
在这里插入图片描述

*说明:es的默认rpm安装方式下,一些默认路径如下
1、安装目录
/usr/share/elasticsearch
2、执行目录
/usr/share/elasticsearch/bin
3、配置文件elasticsearch.yml
/etc/elasticsearch
4、data
/var/lib/elasticsearch
5、logs
/var/log/elasticsearch
*

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章