Elasticsearch技术解析与实战(一)基础概念及环境搭建
序言

ES数据架构的主要概念(与关系数据库Mysql对比)

集群(cluster)
集群,一个ES集群由一个或多个节点(Node)组成,每个集群都有一个cluster name作为标识。一下是我们的4节点集群。

节点(node)
节点,一个ES实例就是一个node,一个机器可以有多个实例,所以并不能说一台机器就是一个node,大多数情况下每个node运行在一个独立的环境或虚拟机上。
索引(index)
索引,即一系列documents的集合。
类型(type)
分片(shard)
一个拥有两个主分片一份副本的索引可以在四个节点中横向扩展。

分片是什么?
简单来讲就是咱们在ES中所有数据的文件块,也是数据的最小单元块,整个ES集群的核心就是对所有分片的分布、索引、负载、路由等达到惊人的速度。
实列场景:
假设 IndexA 有2个分片,我们向 IndexA 中插入10条数据 (10个文档),那么这10条数据会尽可能平均的分为5条存储在第一个分片,剩下的5条会存储在另一个分片中。
和主流关系型数据库的表分区的概念有点类似,如果你比较熟悉关系型数据库的话。
创建 IndexName 索引时候,在 Mapping 中可以如下设置分片 (curl)
PUT indexName
{
"settings": {
"number_of_shards": 5
}
}
Elastic 官方文档建议:一个 Node 最好不要多于三个 shards。注意 索引建立后,分片个数是不可以更改的。
在进行历史数据入库的时候,建议先在settings中将备份设为0,refresh关闭来提升索引效率,数据入库完毕可恢复需要值。
"settings": {
"number_of_shards": 5,
"number_of_replicas": 0,
"refresh_interval": -1
}
分片好处
1.分片,ES是分布式搜索引擎,每个索引有一个或多个分片,索引的数据被分配到各个分片上,相当于一桶水用了N个杯子装
2.分片有助于横向扩展,N个分片会被尽可能平均地(rebalance)分配在不同的节点上(例如你有2个节点,4个主分片(不考虑备份),那么每个节点会分到2个分片,后来你增加了2个节点,那么你这4个节点上都会有1个分片,这个过程叫relocation,ES感知后自动完成)
3.分片是独立的,对于一个Search Request的行为,每个分片都会执行这个Request.
4.每个分片都是一个Lucene Index,所以一个分片只能存放 Integer.MAX_VALUE - 128 = 2,147,483,519 个docs。
分片个数
建议:(仅参考)
1、每一个分片数据文件小于30GB
2、每一个索引中的一个分片对应一个节点
3、节点数大于等于分片数
副本(replica)
1.复制,可以理解为备份分片,相应地有primary shard(主分片)
2.主分片和备分片不会出现在同一个节点上(防止单点故障),默认情况下一个索引创建5个分片一个备份(即5primary+5replica=10个分片)
3.如果你只有一个节点,那么5个replica都无法分配(unassigned),此时cluster status会变成Yellow。
通过调整副本数来均衡节点负载
事实上节点 3 持有两个副本分片,然而没有主分片并不重要。副本分片与主分片做着相同的工作;它们只是扮演着略微不同的角色。没有必要确保主分片均匀地分布在所有节点中。

从这个图我发现两个Node节点 ,5个shard分片,1个replica备份,没毛病啊,每个节点就是有完整的信息:

ok,这里是3个node,3个shard,1份replica,发现了吗,这边的话每个节点并没有完整的数据,但是任意两个节点有完整的数据即使一台机器宕机,剩下两个节点依然可以提供完整的数据,依然满足高可用。
结论
发现规律了吗?其实很简单 如果每个机器上要有完整的数据 ,需要满足 分片数*节点数的总分片数量,当然,这里的总分片数量包含了 主分片和副本分片。因此,我们得出一个公式:副本数replica =(shardNum*nodeNum-shardNum)/shardNum。当replica大于此值时,满足要求。
资料
https://www.elastic.co/guide/cn/elasticsearch/guide/current/_analytics.html
https://www.cnblogs.com/52fhy/p/9826356.html
https://blog.csdn.net/yzhujue/article/details/53128813?utm_source=blogxgwz0
http://www.lanrenkaifa.com/post/57
IK分词
https://github.com/medcl/elasticsearch-analysis-ik/releases
ELK下载地址
https://www.elastic.co/cn/downloads/past-releases
https://www.yiibai.com/elasticsearch/elasticsearch-getting-start.html
Elasticsearch技术解析与实战(一)基础概念及环境搭建的更多相关文章
- Elasticsearch技术解析与实战 PDF (内含目录)
Elasticsearch技术解析与实战 介绍: Elasticsearch是一个强[0大0]的搜索引擎,提供了近实时的索引.搜索.分 ...
- elasticsearch技术解析与实战ES
elasticsearch技术解析与实战ES 下载地址: https://pan.baidu.com/s/1NpPX05C0xKx_w9gBYaMJ5w 扫码下面二维码关注公众号回复100008 获取 ...
- Java基础学习之基础概念与环境搭建(1)
1.Java基础概念 1.1.Java语言的特点 Java语言是简单易学的 Java语言是面向对象(封装.继承和多态) Java语言是平台无关的(一次编译,到处运行) Java语言是可靠的.安全的(异 ...
- Elasticsearch技术解析与实战(二)文档的CRUD操作
启动Elasticsearch和kibana 访问Elasticsearch:http://localhost:9200/?pretty 访问kibana:http://localhost:5601 ...
- Elasticsearch技术解析与实战(六)Elasticsearch并发
乐观锁与悲观锁 图示的冲突过程,其实就是es的并发冲突问题,会导致数据不准确 当并发操作es的线程越多,或者读取一份数据,供用户查询和操作的时间越长,在这段时间里,如果数据被其他用户修改,那么我们拿到 ...
- elasticsearch技术解析与实战(一) 入门和索引
GET _cat/nodes GET _cat/health GET _cat/shards GET http://10.37.84.124:9200/secisland?pretty { " ...
- Elasticsearch技术解析与实战(五)Document解析
1.手动指定document id 一般来说,是从某些其他的系统中,导入一些数据到es时,会采取这种方式,就是使用系统中已有数据的唯一标识,作为es中document的id. PUT /index/t ...
- Elasticsearch技术解析与实战(四)shard&replica机制
序言 shard&replica机制 1.index包含多个shard 2.每个shard都是一个最小工作单元,承载部分数据,lucene实例,完整的建立索引和处理请求的能力 3.增减节点时, ...
- Elasticsearch技术解析与实战(三)文档的聚合
1.计算每个tag下的商品数量 PUT /database/_mapping/product { "properties": { "tags": { " ...
随机推荐
- JTS
在这个系列的 第 1 部分,我们讨论了事务并研究了它们的基本属性 ― 原子性(atomicity).一致性(consistency).孤立性(isolation)和持久性(durability).事务 ...
- [BUAA2017软工]个人作业week-1
一.快速看完整部教材,列出你仍然不懂的5到10个问题,发布在你的个人博客上. 1.在第二章个人技术和流程,邹欣老师提到了一张表格,主要解释了效能分析的一些名词,其中有这么几个概念: 调用者:函数Foo ...
- MSTSC 修改端口的简单方法 3389
1. 3389端口太过危险 最简单的办法是 修改默认端口方法非常简单. 2. win+r 打开运行, 输入 regedit 打开 注册表 3. 在地址栏输入 远程的服务的路径 输入的内容为: 计算机 ...
- E-commerce 中促销系统的设计
在电商平台中,促销是必不可少的营销手段,尤其在国内 各种玩法层出不穷,最开始的满减/秒杀 到优惠卷 再到 拼团/砍价等等 一个良好的促销系统应该具备易于扩展,易于统计促销效果等特点,在遇到秒杀类促销时 ...
- es6 字符串String的扩展
新特性:模板字符串 传统字符串 let name = "Jacky"; let occupation = "doctor"; //传统字符串拼接 let str ...
- SQL有三个类型的索引,唯一索引 不能有重复,但聚集索引,非聚集索引可以有重复
重要: (1) SQL如果创建时候,不指定类型那么默认是非聚集索引 (2) 聚集索引和非聚集索引都可以有重复记录,唯一索引不能有重复记录. (3) 主键 默认是加了唯一约束的聚集索引,但是也可以在主键 ...
- linux下安装java jdk
第一步:查看java对应版本 yum search java 我自己装的是1.8版本的java包 第二步:装java包 yum install java-1.8.0-ope ...
- BZOJ 2337 XOR和路径 | 高斯消元 期望 位运算
BZOJ 2337 XOR和路径 题解 这道题和游走那道题很像,但又不是完全相同. 因为异或,所以我们考虑拆位,分别考虑每一位: 设x[u]是从点u出发.到达点n时这一位异或和是1的概率. 对于所有这 ...
- 【ARC069F】Flags
Description 数轴上有 \(n\)个旗子,第\(i\)个可以插在坐标\(x_i\)或者\(y_i\). 请最大化两两旗子之间的最小距离. \(2 \le n \le 10^4\),\ ...
- CSU1911 Card Game 【FWT】
题目链接 CSU1911 题解 FWT模板题 #include<algorithm> #include<iostream> #include<cstdlib> #i ...