zoukankan      html  css  js  c++  java
  • 【ELK学习】初识ElasticSearch

    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.

  • 相关阅读:
    第二十一章流 1流的操作 简单
    第二十章友元类与嵌套类 1友元类 简单
    第十九章 19 利用私有继承来实现代码重用 简单
    第二十章友元类与嵌套类 2嵌套类 简单
    第十九章 8链表类Node 简单
    第二十一章流 3用cin输入 简单
    第十九章 10 图书 药品管理系统 简单
    第十九章 11图书 药品管理系统 简单
    第二十一章流 4文件的输入和输出 简单
    第十九章 12 什么时候使用私有继承,什么时候使用包含 简单
  • 原文地址:https://www.cnblogs.com/pengyusong/p/9997548.html
Copyright © 2011-2022 走看看