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. 开启linux服务器防火墙

    启用ufwsudo ufw enablesudo ufw default deny运行以上两条命令后,开启了防火墙,并在系统启动时自动开启.关闭所有外部对本机的访问,但本机访问外部正常. 开启和禁用s ...

  2. RegexKitLite库的使用

    首先在官网:  http://regexkit.sourceforge.net/下载RegexKitLite.h和RegexKitLite.m两个文件 将其添加到工程目录下 取消自动引用计数ARC 手 ...

  3. HNUSTOJ-1621 Picking Cabbage(状态压缩DP)

    1621: Picking Cabbage 时间限制: 2 Sec  内存限制: 32 MB提交: 26  解决: 14[提交][状态][讨论版] 题目描述 Once, Doraemon and  N ...

  4. C#获取局域网主机

    C#获取局域网主机 最近在做一个使用MSRDPClient来实现远程桌面功能,需要先判断一下该局域网主机是否在线,所以就需要获取一遍局域网主机. 首先获取本地IP地址,这里需要注意的是,要排除掉虚拟机 ...

  5. js中过滤在输入框中过滤掉特殊表情

    在页面输入text 时,经常会出现某些特殊符号例如:❤

  6. css3之新增伪类

    css3新增了许多伪类,但是IE8以及更低版本的IE浏览器不支持css3伪类,所以在使用时要是涉及到布局等意象全局的样式,应该多考虑一下. 1.elem:nth-child(n) 这个伪类选中父元素下 ...

  7. Git忽略文件的三个办法

    方法一(并不好用) 在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件).这个文件每一行保存了一个匹配的规 ...

  8. Delphi 算术运算符与算术表达式

  9. TensorFlow——LSTM长短期记忆神经网络处理Mnist数据集

    1.RNN(Recurrent Neural Network)循环神经网络模型 详见RNN循环神经网络:https://www.cnblogs.com/pinard/p/6509630.html 2. ...

  10. tp5 apache 转 nginx 需要配置的伪静态

    location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$ last; break; } }