佛山网站建设费用,服装品牌网站建设,亿度网络 网站建设,工作总结及工作计划本文已收录至Github#xff0c;推荐阅读 #x1f449; Java随想录 文章目录 节点角色master#xff1a;候选节点data#xff1a;数据节点Ingest#xff1a;预处理节点ml#xff1a;机器学习节点remote_ cluster_ client#xff1a;候选客户端节点transform#xff1a;…本文已收录至Github推荐阅读 Java随想录 文章目录 节点角色master候选节点data数据节点Ingest预处理节点ml机器学习节点remote_ cluster_ client候选客户端节点transform转换节点voting_ only仅投票节点Coordinating only node协调节点 分片Shards主分片Replicas副本分片 集群集群状态健康值检查返回参数说明 索引和文档 公司使用Elasticsearch的场景还是挺多的打算开个新的坑写一个关于Elasticsearch的系列这是第一章。 这章主要是对Elasticsearch中的基本概念以及涉及到的一些名词做下讲解能够对Elasticsearch有一个初步的认识。 节点
每个Elasticsearch节点实际上就是一个Java进程就是一个Elasticsearch的实例。一个节点 ≠一台服务器也就是说我可以在一台服务器上启动多个Elasticsearch实例。
角色
集群节点角色可以在配置文件elasticsearch.yml中通过node.roles配置如果配置了节点角色那么该节点将只会执行配置的角色功能。
master候选节点
所谓master节点就是在主节点down机的时候可以参与选举取而代之的节点。举个例子主节点好比班长在班长不在的时候主节点down机了要选举出一个临时班长master中选举。master节点不仅有选举权还有被选举权。每个master节点主要负责索引创建、索引删除、追踪节点信息和决定分片分配节点等。
配置节点下面节点配置方法同
node.roles: [ master ]data数据节点
数据节点顾名思义就是存放数据的节点数据节点负责存储文档数据和数据的CRUD操作。因此该节点是CPU和IO密集型需要实时监控该节点资源信息以免过载。数据节点又分为data_contentdata_hotdata_warmdata_code。
data_content数据内容节点目录节点负责存储常量数据且不随着时间的推移改变数据的温层hot、warm、cold。且该节点的查询优先级是高于其它IO操作所以该节点search和aggregations都会较快一些。data_hot热节点保存热数据经常会被访问用于存储最近频繁搜索和修改的时序数据。data_code冷节点保存冷数据很少会被访问当数据不再更新那么可以将该数据移动到冷数据节点冷数据节点用于存储只读且访问频率较低的数据。该节点机器性能可以低一点。data_warm温节点介于热节点和冷节点之间温节点是我自己翻译的当数据访问频率下降可以将其移动到温节点温节点用于存储修改较少但仍然有查询的数据。查询的频率肯定比热点节点要少。
Ingest预处理节点
作用类似于Logstash中的FilterIngest其实就是管道的入口节点比如说我们在做日志分析的时候可以把日志输出的数据交给预处理节点做预处理。
ml机器学习节点
机器学习节点负责处理机器学习相关请求。
remote_ cluster_ client候选客户端节点
远程候选节点可以作为远程集群的客户端主要负责搜索远程集群数据和同步两个集群间数据。
transform转换节点
转换节点会进行一种特殊操作通过特定聚集语句计算然后将结果写到新的索引中。
voting_ only仅投票节点
在master选举过程中仅投票节点顾名思义就是仅仅投票不会被选举为master。
Coordinating only node协调节点
协调节点主要负责根据集群状态路由分发搜索路由分发bulk操作。此外每个节点都是自带协调节点功能。
分片
分片的思想在很多分布式应用和海量数据处理的场所非常常见通常来说面对海量数据的存储单个节点显得力不从心。通俗解释分片就是将数据拆分多份放到不同的服务器节点。
Elasticsearch里的分片为为2种主分片和副本分片。
Shards主分片
es可以把一个完整的索引分成多个分片这样的好处是可以把一个大的索引拆分成多个分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定并且索引创建后不能更改。这里和索引分片的算法有关因为是通过取模算法去判断分到哪如果改变了就无法正常查询之前的索引。
当客户端发起创建document的时候es需要确定这个document放在该index哪个shard上。这个过程就是数据路由。路由算法shard hash(routing) % number_of_primary_shards。这里的routing指的就是document的id如果number_of_primary_shards在查询的时候取余发生的变化无法获取到该数据。
Replicas副本分片
代表索引副本es可以设置多个索引的副本副本的作用一是提高系统的容错性当某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率es会自动对搜索请求进行负载均衡。
一个索引包含一个或多个分片在7.0之前默认五个主分片每个主分片一个副本在7.0之后默认一个主分片。副本可以在索引创建之后修改数量但是主分片的数量一旦确定不可修改只能创建索引。每个分片都是一个Lucene实例有完整的创建索引和处理请求的能力。ES会自动在nodes上做分片均衡。一个doc不可能同时存在于多个主分片中但是当每个主分片的副本数量不为一时可以同时存在于多个副本中。每个主分片和其副本分片不能同时存在于同一个节点上所以最低的可用配置是两个节点互为主备。副本分片是不能直接写入数据的只能通过主分片做数据同步。增减节点时shard会自动在nodes中负载均衡。
集群
上面所说的节点角色构成了整个集群。
集群状态
Green主/副分片都已经分配好且可用集群处于最健康的状态100%可用。Yellow主分片可用但是至少有一个副本是未分配的。这种情况下数据也是完整的但是集群的高可用性会被弱化。Red至少有一个不可用的主分片。此时只是部分数据可以查询已经影响到了整体的读写需要重点关注。
健康值检查
//查看集群健康状况
_cat/health
_cluster/health返回参数说明
示例
{cluster_name : elastic-log-xxx,status : green,timed_out : false,number_of_nodes : 24,number_of_data_nodes : 21,active_primary_shards : 27777,active_shards : 27804,relocating_shards : 0,initializing_shards : 0,unassigned_shards : 0,delayed_unassigned_shards : 0,number_of_pending_tasks : 0,number_of_in_flight_fetch : 0,task_max_waiting_in_queue_millis : 0,active_shards_percent_as_number : 100.0
}索引和文档
es中索引类比为关系型数据库中的Table在7.0版本之前index由若干个type组成type实际上是文档的逻辑分类而文档是es存储的最小单元。7.0及之后弱化了type的概念7.x版本index只有一个type_doc。文档doc可以类比为关系型数据库中的行每个文档都有一个文档id。 本篇文章就到这里感谢阅读如果本篇博客有任何错误和建议欢迎给我留言指正。文章持续更新。