《Storm实时数据处理》一2.6 统计与持久化日志统计信息
本节书摘来华章计算机《Storm实时数据处理》一书中的第2章 ,第2.6节,(澳)Quinton Anderson 著 卢誉声 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.6 统计与持久化日志统计信息我们其实可以收集很多日志流的统计信息,但由于本节只是为了展示一些基本概念,因此我们只准备收集和处理单时间序列(每分钟)日志量。虽说如此,但这应该已经足以展示有关的设计和方法了,这些技巧能够帮助你在未来实现其他分析工作。
2.6.1 实战Step01 下载storm-cassandra contrib项目并将其安装到Maven仓库中:
Step02 在storm.cookbook.log包中,创建一个继承自BaseRichBolt的类VolumeCountingBolt。为该Bolt声明以下三个字段:
Step03 然后实现一个静态工具方法,该方法的作用是获取日志的时间信息,按分钟形式表示出来:
Step04 实现execute方法(没错,函数体很短):
Step05 最后,参照第1章中的方法来创建LogTopology类,并按照如下方法创建Topology:
该实现方法看起来简单得让人感到不可思议,但事实确实如此。在实现过程中我们使用了storm-cassandra项目(该项目属于storm-contrib组件)来对所有持久化复杂性进行抽象。storm-cassandra项目通过一个通用且可配置的backtype.storm.Bolt实现来集成Storm和Cassandra,该Bolt的作用是将StormTuple对象写入Cassandra 列族。
Cassandra是一个面向列族的数据库系统(http://cassandra.apache.org/)。Cassandra的列族数据模型在提供二级索引便利的同时还具备日志式结构更新的存储性能,另外也提供了健壮的物化视图支持和强大的内置缓存。Cassandra最新的一个功能是计数器列。你可以在集群上的任何地方,通过持久化指定计数器列族中的计数器列来实现计数器的安全自增。
storm-cassandra项目支持两种持久化风格,第一种是标准的Cassandra列族风格,第二种是基于计数器列的风格。我们在这里只关注第二种类型的风格,因为它非常适用于当前这个例子。你可以阅读项目的README文件中有关其他风格的介绍,基本上都差不多。
CassandraCounterBatchingBolt类的实例就能帮我们搞定所有工作 。只需告诉它我们要使用哪个列族,哪个Tuple字段作为行键,哪个Tuple字段作为增量,而Tuple中剩下的那个字段则指明了需要更新的计数器列。
我们来看看下面的构造函数:
以及以下作为输入的元组数据:
这会把columnFamily列族中的SomeCounter计数器列加1L。
对于任何有关系型数据库背景的开发人员来说,最关键的观念转变在于了解面向列族数据库中的数据建模。作为数据库中大数据家族的一分子,面向列族的数据库促进了高度不规则数据模型的应用。这个方法移除了表之间的关系以及它们的锁,实现了对数据库的大规模、并行读写的处理。虽然这种方法会增加数据的冗余,但为了满足当今大规模数据处理的需求,在一些普通磁盘上面的开销其实算不了什么问题。观念的转变在于我们要根据在数据集上执行的查询来选择适当的数据模型,而不是简单地将现实世界模型转化成固有和统一的结构。对应当前查询的数据类型可以归纳为:查询给定时间点上所有日志文件的总数 。
这种方法能让我们通过简单地发送Tuple来生成统计数据,我们可以使用这种方法来得到各种问题的答案,下面给出几个例子:
列族不只可以包含统计数据,你可以设计任意的不规则结构,并通过发送一个Tuple来表示某一行中任意列的集合。如果该行已经存在,Cassandra会简单地添加或者更新数据。这其实可以实现非常强大的功能。
(3)sparkstreaming从kafka接入实时数据流最终实现数据可视化展示 1)我们通过kafka与各个业务系统的数据对接,将各系统中的数据实时接到kafka; 2)通过sparkstreaming接入kafka数据流,定义时间窗口和计算窗口大小,业务计算逻辑处理; 3)将结果数据写入到mysql; 4)通过可视化平台接入mysql数据库,这里使用的是NBI大数据可视化构建平台; 5)在平台上通过拖拽式构建各种数据应用,数据展示;
多模式日志数据流的实时加工与集散 日志处理是一个极其繁琐的过程,究其原因是日志的边界情况特别多,而且可能随时在变。阿里云 SLS 数据加工服务是专门针对日志规整、富化、集散等处理场景。本文主要介绍在多模式混杂的日志集散场景下,如何快速使用 SLS 数据加工服务完成需求。
基于实时ETL的日志存储与分析实践 我们正处于大数据、多样化数据(非结构化)的时代,实时的机器数据快速产生,做一家数据公司的核心之一是如何充分利用好大量日志数据。本文将为大家介绍在 SLS 上兼顾日志数据灵活性、经济性的存储策略与实践。
日志服务数据加工: 性能指南 本篇介绍日志服务数据加工的性能主要因素, 以及如何合理规划源logstore, 目标logstor和加工任务配置来满足数据加工的性能要求.
在互联网应用中,不管是哪一种处理方式,其基本的数据来源都是日志数据,例如对于web应用来说,则可能是用户的访问日志、用户的点击日志等。
相关文章
- 海量数据面试题----分而治之/hash映射 + hash统计 + 堆/快速/归并排序
- 统计目录的大小
- Unity版本使用情况统计(更新至2021年11月)
- Google Earth Engine(GEE)——以MODIS影像为例计算植被指数批量统计北京市各区逐年EVI/NDVI均值、标准差、方差统计分析和CSV下载
- proc/net/dev实时网速统计实例
- SPL 实现电力高频时序数据实时存储统计
- UVaLive 7270 Osu! Master (统计)
- 《社会调查数据管理——基于Stata 14管理CGSS数据》一3.2 和统计有关的术语
- 入行数据分析要知道什么是统计量&抽样分布
- Excel 数据透视表小技巧之 02 如何统计唯一值数量 (教程含数据和解决方案)
- 力扣解法汇总2409. 统计共同度过的日子数
- 力扣解法汇总2044- 统计按位或能得到最大值的子集数目
- 统计学习大作业-BERT模型
- MATLAB | 可视化 | 罗密欧与朱丽叶的数据统计
- Java利用正则表达式统计某个字符串出现的次数
- HTML Echarts图形统计实时显示DHT11温度(五)
- HTML Echarts图形统计实时显示DHT11温度(四)
- HTML Echarts图形统计实时显示DHT11温度(三)
- 描述性统计与性能结果分析——《LoadRunner 没有告诉你的》
- python数据统计量分析
- 大数据InternetLiveStat获A轮融资,实时发布全球互联网统计
- SQL SERVER的统计信息
- CAD如何统计图例总长度?CAD图例总长度统计教程
- Oracle-分组统计查询