【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.
【ELK学习】初识ElasticSearch的更多相关文章
- ELK 学习笔记之 elasticsearch环境搭建
ELK概述: ElasticSearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等 Logstash是一 ...
- ELK系列(1) - Elasticsearch + Logstash + Kibana + Log4j2快速入门与搭建用例
前言 最近公司分了个ELK相关的任务给我,在一边学习一边工作之余,总结下这些天来的学习历程和踩坑记录. 首先介绍下使用ELK的项目背景:在项目的数据库里有个表用来存储消息队列的消费日志,这些日志用于开 ...
- Elasticsearch系列---初识Elasticsearch
Elasticsearch是什么? Elasticsearch简称ES,是一个基于Lucene构建的开源.分布式.Restful接口的全文搜索引擎,还是一个分布式文档数据库.天生就是分布式.高可用.可 ...
- ELK初学搭建(elasticsearch)
ELK初学搭建(elasticsearch) elasticsearch logstash kibana ELK初学搭建 elasticsearch 1.环境准备 centos6.8_64 mini ...
- ELK 架构之 Elasticsearch、Kibana、Logstash 和 Filebeat 安装配置汇总(6.2.4 版本)
相关文章: ELK 架构之 Elasticsearch 和 Kibana 安装配置 ELK 架构之 Logstash 和 Filebeat 安装配置 ELK 架构之 Logstash 和 Filebe ...
- ELK学习笔记(一)安装Elasticsearch、Kibana、Logstash和X-Pack
最近在学习ELK的时候踩了不少的坑,特此写个笔记记录下学习过程. 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因 ...
- 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 ...
- ELK学习记录一 :初识ELK
ELK是elastic公司提供的一套完整的收集日志并分析展示的产品,分别表示Elasticsearch.Logstash和kibana. (官网截个图) 先来一段个人粗浅的认识: Elasticsea ...
- ELK学习实验002:Elasticsearch介绍及单机安装
一 简介 ElasticSearch是一个基于Luncene的搜索服务器.它提供了一个分布式多用户能力全文搜索引擎,基于RESTful web接口,ElsticSearch使用Java开发的,并作为A ...
随机推荐
- 【一个蒟蒻的挣扎】LCA (倍增)
#include<cstdio> #include<iostream> #include<cstring> using namespace std; struct ...
- 【洛谷p1051】谁拿了最多奖学金
谁拿了最多奖学金[题目链接] 这道题早就想做它啦. 咱也不知道为啥,咱就是看这道题特别顺眼呢qwq: MY SOLUTION: 其实这道题很简单,开一个结构体记录各项信息,然后根据条件计算出这个人获得 ...
- 为什么只有ip地址和端口号需要主机字节序到网络字节序的转换?
答复是:因为内容是二进制流,不是整数. 整数(int.uint16.uint32)的表达,是需要多字节的,在不同cpu上,字节次序是不同的.因此,从A主机到B主机,如果是异构的,就需要做字节调整.同构 ...
- Linux学习大纲(高人整理)
1.Linux初级 1.1 OS操作系统的原理 1.2 了解常用命令 开机关机 时间管理:date cal clock 1.3 目的结构.目的管理 树形结构 tree cd 1.4 文件管理.文件查找 ...
- python中的元类介绍
类也是对象 在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段,在python中也是成立的. class ObjectCreator: pass my_object = ObjectCre ...
- Java Web开发技术教程入门-JSP基本语法和九大内置对象
这两天气温逐渐升高,好想把自己泡在冰块里······ 恩嗯摁蒽恩嗯摁蒽恩嗯摁蒽恩嗯摁蒽.......今天阅读到了这本书的第四章-JSP基本语法.经过第一天的阅读,我们明白JSP技术是Java Web开 ...
- python实现建造者模式
python实现建造者模式 前言 无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮.方向盘.发送机等各种部件.而对于大多数用户而言,无须知道这些部件的 ...
- Delphi 标识符
- Spring注解配置、Spring aop、整合Junit——Spring学习 day2
注解配置: 1.为主配置文件引入新的命名空间(约束) preference中引入文件 2.开启使用注解代理配置文件 <?xml version="1.0" encoding= ...
- Codeforces1203F2. Complete the Projects (hard version) (贪心+贪心+01背包)
题目链接:传送门 思路: 对于对rating有提升的项目,肯定做越多越好,所以把$b_{i} >= 0$的项目按rating要求从小到大贪心地都做掉,得到最高的rating记为r. 对于剩余的$ ...