Elastic Static初识(01)
写在前面
Elastic Static 是指由Elasticsearch,Logstash,Kibana,Beats等组件结合起来而构成的一个数据收集,分析,可视化的一个架构.我们经常听说过的ELK就是指前面三个,它能够安全可靠地获取任何来源、任何格式的数据,并且能够实时地对数据进行搜索、分析和可视化。
简单介绍
这里我们从数据的流向来简单介绍下这几个组件.
1. 数据采集过程
可以采集人和来源,任何格式的数据
Beats
Beats 是轻量型采集器的平台,从边缘机器向 Logstash 和 Elasticsearch 发送数据。
Logstash
Logstash 是动态数据收集管道,拥有可扩展的插件生态系统,能够与 Elasticsearch 产生强大的协同作用。类似于 Hadoop 生态圈里的 Flume,整个采集的过程也是基于事务(event)的[这一点是通过codec的插件来做到]。通常在其.conf配置文件规定 logstash 如何处理各种类型的事务流,一般包含 input、filter、output 三个部分(域),在每一个域中,可供选择多个插件来处理我们的数据。
2. 数据搜索、分析和存储
Elasticsearch
Elasticsearch 是基于 JSON 的分布式搜索和分析引擎,专为实现水平扩展、高可用和管理便捷性而设计。ElasticSearch 也是基于 Lucene进行了封装,它能在一秒内返回你要查找的且已经在 Elasticsearch 做了索引的文档,提供了更为便利的访问和调用.它存储json格式的文档数据,有基于RESTful的操作接口。利用Elasticsearch可以方便的在任何Web应用中集成搜索应用。另外它更有出色的聚合功能(aggregation),能轻松的对数据进行统计分析 .这个组件也是整个stack的主角.
Elasticsearch 中的 Index 是一组具有相似特征的文档集合,类似于关系数据库模型中的数据库实例,Index 中可以指定 Type 区分不同的文档,类似于数据库实例中的关系表,Document 是存储的基本单位,都是 JSON 格式,类似于关系表中行级对象。我们处理后的 JSON 文档格式的日志都要在 Elasticsearch 中做索引,相应的 Logstash 有 Elasticsearch output 插件,对于用户是透明的。需要说明的是,ES6.0之后,好像规定一个Index下只能够定义一种Type,后面也会慢慢去掉Type这个概念,,最终,我们就姑且把Index当做数据表来理解,Document当做数据表的行理解吧.
3. 数据可视化
Kibana实现数据可视化。导览 Elastic Stack。
Kibana 能够以图表的形式呈现数据,并且具有可扩展的用户界面,供您全方位配置和管理 Elastic Stack。简单来说,Kibana 是在ElasticSearch 有了相当多的数据之后,进行分析,可视化数据用的工具。
ELK VS 大数据Hadoop/Spark
因为在日志处理等场景,难免会在技术选型上有所抉择?
简单来说,对于普通的小型的数据量,PB级别吧对于ES来说,没什么大的问题,而且,个人觉得,ES的简便搭建维护,也是不错的选择.
但是当数据量暴增,我们的集群数量也增加的情况下,就面临着,数据的分布式存储,就要考验H/S集群或者ES集群对于数据一致性的保证.
由于Elasticsearch集群中每个节点都是状态维护者,在集群中网络不稳定的情况下(主节点丢失)就有可能出现集群脑裂(不同的节点对master节点的选择出现了异常)
然而对于Haddop集群来说,就存在主从namenode节点的概念,只会有一个节点来管理datanode的信息(而且还是备份型的)
Elasticsearch拥有功能强大的聚合统计和全文搜索功能,可以轻松的用于网络问题分析,如404错误计数,页面浏览量,用户访问统计信息等。但它缺少类似标准SQL中的join(连接)或子查询的功能。Elasticsearch不支持查询结果的额外处理或分析的中间数据的输出,也不支持数据集的转换(即一个100万行的表,使用分析处理后,成为另一个100万行的表),故不太适合处理复杂的计算逻辑。
虽然Elasticsearch存在这些问题,但是它仍然是一个非常优秀的分布式计算框架,而且Elasticsearch可以非常方便的集成在hadoop中,我们也可以用它优秀的数据检索能力来构造自己的查询系统.
---------------------好的,先就简单介绍到这里.接下来,会减少如何搭建一个自己的ES----------------
Elastic Static初识(01)的更多相关文章
- 091 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 01 static关键字(上)
091 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学
001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学 welcome to Java World 欢迎来到Java世界 一起领略Java编程世界的奥秘与奥妙 ...
- node.js初识01
1.对于node.js的安装在这里就不做过多的介绍了,安装成功后,可以通过cmd 输入node -v查看node的版本号,如图所示 2.开始我们的hello world,通过cmd进入所属文件夹,输入 ...
- Vue框架初识01
摘要 vue简介 vue使用 一.Vue简介: 简介: Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 A ...
- linux初识-01简介
什么是linux: Linux是一个自由的,免费的,源码开发的操作系统Linux的特点: 开放性.多用户,多任务,具有丰富的网络功能 可靠的系统安全 良好的可移植性 良好的用户界面(命令界面和图形界面 ...
- vue的路由初识01
今天就做了一个vue-router的实例,(路由跳转,参数的传递[一个参数,多个参数])<!DOCTYPE html> <html> <head> <meta ...
- MySQL 初识01
最近开始学习MySQL 所以将这两天所学习到的知识简单小结一下 1.status 显示数据库信息 2.数据类型: a.字符串: char(m):固定长度的字符,最多255个字符: varchar(m) ...
- Redis初识01 (简介、安装、使用)
一.Reids介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(s ...
- Elastic Stack 笔记(一)CentOS7.5 搭建 Elasticsearch5.6 集群
博客地址:http://www.moonxy.com 一.前言 Elasticsearch 是一个基于 Lucene 的分布式搜索引擎服务,采用 Java 语言编写,使用 Lucene 构建索引.提供 ...
随机推荐
- Tesseract:简单的Java光学字符识别
1.1 介绍 开发具有一定价值的符号是人类特有的特征.对于人们来说识别这些符号和理解图片上的文字是非常正常的事情.与计算机那样去抓取文字不同,我们完全是基于视觉的本能去阅读它们. 另一方面,计算机的工 ...
- 如何比较装X地回答问题 | 面试系列.1
公众号后台比较多同学让我写面试相关的文章,在<从面试官的角度谈谈大数据面试>也聊了很多,但是有同学吐槽说我没有把答案写上去,当时我的心里是拒绝写的,这有啥好写的,又不难,Google一大堆 ...
- macbook 安装redis流程及问题总结
Mac安装redis流程和总结 一.redis安装流程: 1.进入redis官网-->点击download-->选择稳定版本(stable)-->点击Download即可. 2.将下 ...
- 基于wanAndroid-项目实战
# QzsWanAndroid - [基于 wanandroid.com 开发的 MVP + Retrofit2 + RxJava2 +okhttp3 开发的 Android APP](https:/ ...
- 问题.spring源码转换为eclipse遇到的问题
1.下载spring源码 2.下载安装gradle,配置环境变量 3.在spring子项目下执行命令:gradle cleanidea eclipse,会生成对应的.project及.classpat ...
- HDU4348To the moon主席树,区间修改
题意: 一个长度为n的数组,4种操作 : (1)C l r d:区间[l,r]中的数都加1,同时当前的时间戳加1 . (2)Q l r:查询当前时间戳区间[l,r]中所有数的和 . (3)H l r ...
- poj 2240 Arbitrage(Bellman_ford变形)
题目链接:http://poj.org/problem?id=2240 题目就是要通过还钱涨自己的本钱最后还能换回到自己原来的钱种. 就是判一下有没有负环那么就直接用bellman_ford来判断有没 ...
- 用PhpStrom线上连接修改linux服务器上代码配置
为了进一步提高自己的技能水平,不久前入手了一台服务器,不贵,一年也就不到两百,因为自己对于linux机器比较生疏,命令用的有点抠脚.老需要查阅处理. 于是我选择用PhpStrom直接连接线上服务器,通 ...
- Spring MVC 配置类 WebMvcConfigurerAdapter
WebMvcConfigurerAdapter配置类是spring提供的一种配置方式,采用JavaBean的方式替代传统的基于xml的配置来对spring框架进行自定义的配置.因此,在spring b ...
- 一起来读Netty In Action之传输(三)
当我们的应用程序需要接受比预期多很多的并发连接的时候,我们需要从阻塞传输切换到非阻塞传输上去,如果是我们的网络编程是基于jdk提供的API进行开发地的话,这种传输模式的切换几乎要我们重构整个网络传输相 ...