ES(elasticsearch) 是一个高可扩展的、开源的全文检索和分析引擎,它允许你存储、检索、分析海量数据,以一种快到近乎实时的速度。

ES用例场景:

  使用ES存储商品目录、清单,提供检索、输入提示的服务。

  使用ES收集日志或交易数据,且你想分析和挖掘这些数据来查看趋势、统计、总览和异常。可以使用Logstash来收集、聚合并且解析你的数据,然后将数据喂给ES,然后你就可以在ES中运行检索和聚合来挖掘任何你感兴趣的信息。

  使用ES用于分析和商业智能的需求,可以快速调研、分析、可视化以及基于大数据即时提问。使用Kibana构建自定义的面板可以可视化你的数据切面,以不同的角度。

基本概念

  NRT:几乎实时,指:从你索引一个文档的时间到它可以检索到的时间的延时(通常一秒)。

  Cluster:集群,是一个或者多个节点(服务器)的集合。它们持有所有的数据,并且提供跨所有节点来联合索引和检索能力,一个集群默认有一个唯一的名字为“elasticsearch”,这个名字很重要,因为一个节点只能是集群的一部分,如果该节点通过它的名字设置加入集群。

  Node:节点,是一个服务器,一个集群的一部分,存储数据,参与集群的索引和搜索能力。节点也有名字,默认是随机的UUID,可以自定义。一个节点可以配置加入一个指定的集群名,默认地,每隔节点被设置加入一个名为“elasticsearch”的集群,意味着,如果你在网络中启动多个节点(假设这些节点网络互通),它们会自动地形成一个集群(elasticsearch)。在单个节点,你可以想要多少就有多个节点,此外,如果没有其他elasticsearch节点在网络中,启动单个节点会自动形成一个集群(elasticsearch),该集群有一个节点。

  Index:索引,是有某种程度相似特征的文档的集合。你可以有客户数据的索引,产品目录的索引,甚至其他数据的索引。一个索引有一个名字(全小写)。当执行索引、检索、更新、删除操作时,这个名字被用来引用索引。在单个集群中,你可以定义多个索引。

  Document:文档,是可以被索引的信息的基本单元。文档被描述为JSON结构,这是一种普遍使用的互联网数据交换格式。虽然文档是物理驻留在索引中,一个文档实际上必须被索引/分配到索引中的一个类型中。

  分片和复制:单个索引可能存储大量的数据,以至于超过单机的存储能力。例如十亿文档占据1TB的磁盘空间可能不太适合单机节点,或者也可能太慢以至于不能从单节点服务请求。为了解决这个问题,elasticsearch提供了分解索引为多个分片,当你创建一个索引你可以简单的定义分片的数量,每个碎片本身都是一个完全有效的、独立的“索引”,可以托管在集群中的任何节点。

  分片是很重要的,有俩个主要原因:它允许你水平分割/扩展你的内容卷积;它允许你跨分片(可能在多个节点上)分发和并行化操作,以此提高性能和吞吐量。

一个分片是如何分发,以及它的文档是如何被聚合到检索请求的机制是完全由Elasticsearch管理,并对用户透明的。

  在一个网络或云环境中,失败是随时可能发生的,高度推荐有一个故障转移机制以免单个分片或者节点下线或者消失(因某种原因),因此Elasticsearch允许你制作你的索引的一个或者多个拷贝,它被称之为“复制分片”,或者简单称之为“复制”。

  复制是很重要的,有俩个主要原因:它提供了高可用性,以免分片或者节点失败,因此,需要注意一个复制分片不会和主分片分配到同一个节点,复制分片从主分片复制数据。它允许你扩展搜索卷和吞吐量,因为检索可以在所有复制分片上并发的执行。

  总而言之,每个索引可以被分割成多个分片,每个索引也可以复制0次或多次。一旦复制,每个索引会有主分片(被复制的原始分片)和复制分片(主分片的拷贝)。分片和复制的数量在索引创建的时候定义,在创建之后你可以任意时刻动态修改,使用_shrink和_split apis改变已存在索引的分片数量。这个任务很重,预先规划好分片数量才是最佳办法。默认地,Elasticsearch中每个索引都分配了5个主分片和一个复制,意味着,如果你至少有俩个节点在集群中,你的索引会有五个主分片,以及另外五个复制分片(1个完全复制),总共每个索引十个分片。

注意:每个 Elasticsearch shard 是一个 Lucene index. 单个Lucene索引有最大文档数量。依据 LUCENE-5843, 文档数量限制为 2,147,483,519 (= Integer.MAX_VALUE - 128) documents. You can monitor shard sizes using the _cat/shards API.

【ELK学习】初识ElasticSearch的更多相关文章

  1. ELK 学习笔记之 elasticsearch环境搭建

    ELK概述: ElasticSearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等 Logstash是一 ...

  2. ELK系列(1) - Elasticsearch + Logstash + Kibana + Log4j2快速入门与搭建用例

    前言 最近公司分了个ELK相关的任务给我,在一边学习一边工作之余,总结下这些天来的学习历程和踩坑记录. 首先介绍下使用ELK的项目背景:在项目的数据库里有个表用来存储消息队列的消费日志,这些日志用于开 ...

  3. Elasticsearch系列---初识Elasticsearch

    Elasticsearch是什么? Elasticsearch简称ES,是一个基于Lucene构建的开源.分布式.Restful接口的全文搜索引擎,还是一个分布式文档数据库.天生就是分布式.高可用.可 ...

  4. ELK初学搭建(elasticsearch)

    ELK初学搭建(elasticsearch) elasticsearch logstash kibana ELK初学搭建 elasticsearch 1.环境准备 centos6.8_64 mini ...

  5. ELK 架构之 Elasticsearch、Kibana、Logstash 和 Filebeat 安装配置汇总(6.2.4 版本)

    相关文章: ELK 架构之 Elasticsearch 和 Kibana 安装配置 ELK 架构之 Logstash 和 Filebeat 安装配置 ELK 架构之 Logstash 和 Filebe ...

  6. ELK学习笔记(一)安装Elasticsearch、Kibana、Logstash和X-Pack

    最近在学习ELK的时候踩了不少的坑,特此写个笔记记录下学习过程. 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因 ...

  7. ELK学习记录二 :elasticsearch、logstash及kibana的安装与配置

    注意事项: 1.ELK版本要求5.X以上,本人使用版本:elasticsearch-6.0.0.kibana-6.0.0-linux-x86_64.logstash-6.0.0.tar 2.Elast ...

  8. ELK学习记录一 :初识ELK

    ELK是elastic公司提供的一套完整的收集日志并分析展示的产品,分别表示Elasticsearch.Logstash和kibana. (官网截个图) 先来一段个人粗浅的认识: Elasticsea ...

  9. ELK学习实验002:Elasticsearch介绍及单机安装

    一 简介 ElasticSearch是一个基于Luncene的搜索服务器.它提供了一个分布式多用户能力全文搜索引擎,基于RESTful web接口,ElsticSearch使用Java开发的,并作为A ...

随机推荐

  1. 小记---------网页采集之selenium

    1.元素定位 ID定位元素:  findElement(By.id(“”));  通过元素的名称定位元素:  findElement(By.name(“”));   通过元素的html中的位置定位元素 ...

  2. CMDB 理论

    TIL即IT基础架构库(Information Technology Infrastructure Library, ITIL,信息技术基础架构库)由英国政府部门CCTA(Central Comput ...

  3. 简单而粗暴的方法画任意阶数Bezier曲线

    简单而粗暴的方法画任意阶数Bezier曲线 虽然说是任意阶数,但是嘞,算法原理是可以到任意阶数,计算机大概到100多阶就会溢出了 Bezier曲线介绍] [本文代码] 背景 在windows的Open ...

  4. C++中函数异常规格的说明

    1,本文介绍一个新的概念,它是一个重要的概念,并且是 C++ 中的一个高级主题: 2,问题: 1,如何判断一个函数(不是自己写的,有可能是第三方库中的函数)是否会抛出异常,以及抛出那些异常? 1,学习 ...

  5. numpy-查找操作大全

    本文记录日常工作中遇到的查找操作,持续更新. 注意:输入必须是 数组,不能是 list 极值 min,max 返回极值 argmin(a, axis=None, out=None), 返回极值所在的位 ...

  6. day 01 常量 注释 int(整型) 用户交互input 流程控制语句if

    python的编程语言分类(重点) if 3 > 2: 编译型: 将代码一次性全部编译成二进制,然后再执行. 优点:执行效率高. 缺点:开发效率低,不能跨平台. 代表语言:C 解释型: 逐行解释 ...

  7. VeryNginx中文文档

    VeryNginx VeryNginx 是一个功能强大而对人类友好的 Nginx 扩展程序. 提示 v0.2` 版本之后,控制台入口被移动到了 `/verynginx/index.html 中文控制台 ...

  8. synchronize和lock的区别 & synchionzie与volatile的区别

    synchronized与Lock的区别 https://www.cnblogs.com/iyyy/p/7993788.html Lock和synchronized和volatile的区别和使用 ht ...

  9. 吴恩达深度学习:2.15python中的广播

    1.Broadcasting example (1)下面矩阵描述了来自四种不同的100克碳水化合物,蛋白质和脂肪的卡路里数量 比如说100g苹果所含的热量有56克来自碳水化合物,相比之下来自蛋白质和脂 ...

  10. 使用vue-cli脚手架快速构建项目

    1.创建一个文件夹,vscode打开 2.ctr + shift+` 打开指令窗口 3.npm i vue-cli -g   安装vue-cli 4.vue -V 测试安装版本 检查是否安装成功 5. ...