基本概念

 Apache Eagle 是一个高度可扩展的监控警报平台,采用了设计灵活的应用框架和经过实践考验的大数据技术,如 KafkaSpark 和 Storm。它提供了丰富的大数据平台监控程序,例如 HDFS / HBase / YARN 服务运行状况检查JMX 指标守护进程日志审核日志Yarn 应用程序。外部 Eagle 开发人员可以自定义应用来监视其 NoSQL 数据库或 Web 服务器,可以自己决定是否共享到 Eagle 应用程序存储库。它还提供最先进的警报引擎来报告安全漏洞服务故障应用程序异常,由警报策略定义高度可定制

Site

 管理一组应用程序实例,用来区别某些被多次安装的应用程序

Application

 应用程序(或监控应用程序)是 Apache Eagle 中的一级公民,它代表端到端监控 / 警报解决方案,通常包含监控源入站,源的 schema规范,警报策略仪表板定义

Stream

 Stream 是 Alert Engine 的输入,每个应用程序应该有自己的由开发人员定义的流。通常,流定义里面包含了一个类似 POJO 的结构。一旦定义完成,应用程序就有了将数据写入Kafka 的逻辑

阅读全文 »

基本概念

概述

 Apache Druid™ 是目前非常流行的高性能的,分布式列存储的 OLAP 框架(准确来说是 MOLAP)。它是一款可以快速(实时)访问大量的、很少变化的数据的系统。并被设计为,在面对代码部署、机器故障和生产系统的其他可能性问题时,依旧能 100% 地正常提供服务

Druid Pumpkin

(图片来源:Vadim Ogievetsky 在万圣节的个人作品,已获得授权)

特性

分析事件流

 Druid 支持对 event-driven 数据进行快速地高并发查询。还可以实时地摄入流式数据,并提供亚秒级查询能力,以支持强大的 UI 交互

创新的架构设计

 Druid 是一种新型数据库,它结合了 OLAP 分析数据库、时间序列数据库 和 全文检索 的思想,以支持流式体系架构下的大部分应用场景

构建事件驱动的数据栈

 Druid 天然集成了消息队列(Kafka、AWS Kinesis 等)和数据湖(HDFS、AWS S3 等),使得其非常适用于流式总线和流处理器的查询层

解锁新的工作流

 Druid 旨在对实时数据和历史数据进行快速地即时分析。使用可快速更替的查询,进行趋势解释,数据探索,以响应各种分析诉求

多环境部署

 Druid 可以部署在任何的 *NIX 商用硬件上,无论是在云端还是内部部署。Druid 是 cloud-native 的,这意味着集群扩容和缩容,就像添加和删除进程一样简单

多数据源摄入

 Druid 支持将多种外部数据系统作为数据源,进行数据摄入,包括 HadoopSparkStormKafka

多版本控制

 多版本控制(MVCC,Multi-Version Concurrent Control),主要是为了解决多用户操作同一行记录时的并发问题。MVCC 设计思路是,在多租户同时访问数据库时,不使用粗暴的行锁,而是在事务型操作更新数据时,生成一个新版本的数据。如此,可以保证读写分离,避免了读写操作互相阻塞,以提高并发性能。另外约束,某一时刻只有最新版本的记录是有效的,同时也保证了数据的一致性

 而 Druid 中是使用数据更新时间来区分版本,历史节点只加载最新版本的数据。同时,实时数据索引离线数据批量覆盖同时进行的 Lambda 架构设计,既满足了实时响应的需求,又确保了数据的准确性

易于运维

  Druid 集群可以做到 Self-healing 和 Self-balancing。如果 Druid 服务器发生故障,系统将会自动绕过损坏的路由,直到这些机器被替换掉。在扩缩容集群的时候,只需要增加或下线服务器,集群本身会在后台自动 re-balance。Druid 在设计上保证了可以全天候工作,不会因为任何原因而停机,包括配置更改和集群升级

阅读全文 »

介绍 Antlr 基本概念、特性、工作机制、内部运作流程,以及踩到的一些坑。

阅读全文 »