5.大数据架构详解:从数据获取到深度学习 --- 流处理

我们将大数据处理按照时间的跨度要求分为下面几类,从短到长分别是:
	1.基于实时数据流的数据处理,通常的时间跨度在数百毫秒到数秒之间
	2.基于历史数据的交互式查询,时间跨度在数十秒到数分钟之间
	3.复杂的批量数据处理,时间跨度在几分钟到数小时之间


5.1 算子
	算在在数学上可以解释为一个函数监空间到函数空间上的映射O:X->X。对大数据处理框架来说,可以理解为一个基本处理单元,即通常映射到框架的一个函数。使用算子需要指定
输入和输出,算符负责完成对应的数据转换。常见的算子有 Group, Sort,Orderby,Window等。

5.2 流的概念
	Streaming(流)是一种数据传送技术,它把客户机收到的数据变成一个稳定连续的流,源源不断的送出。正是由于数据的传输呈持续不停的形态,所以流引擎需要持续不断的处理数据。
相反,Batch 是处理完一批数据再导入下一批数据。
	
	实际上,在实现过程中,根据实时性的要求不同,流也有两种处理方式:一种是以IBM的IBM InfoSphere Streams为代表,一个消息传递过来,立即处理;另一种是 Spark Streaming,
因为Spark 本身把数据放在内存中处理,速度较快,所以处理流的时候以较小的批(Mini-Batch)来模拟流处理,可以轻松应对对实时性要求不是很高的场景。

5.3 流的应用场景
	5.3.1 金融领域
		流引擎实时计算股价。

	5.3.2 电信领域
		电信领域一个常见的样例是质差补偿。

5.4 业界两种典型的流引擎
	5.4.1 Storm
		Storm 是 Twitter 开源的一个分布式实时数据处理系统。Storm 对于实时计算的意义类似于 Hadoop 对于批处理的意义。我们都知道,根据 google MapReduce 来实现的Hadoop
	为我们提供了 Map,Reduce 原语,使批处理程序变得非常简单和优美。同样,Storm 也为实时计算提供了一些简单,优美的原语。

	5.4.2 Spark Streaming
		BDAS 是伯克利大数据处理协议栈,是以Spark为基础的一套软件栈。它利用基于内存的通用计算模型,同时支持Batch,Interactive,Streaming 的处理,且兼容支持HDFS和S3等
	分布式文件系统,可以部署在YARN和Mesos 等流行的集群资源管理器上。

		Spark 可以代替MapReduce进行批处理,利用其基于内存的特点,特别擅长迭代式和交互式数据处理;Shark 可以处理大规模数据的sql查询,兼容Hive的HQL。同时利用Spark在内存中
	的处理速度,以Mini-Batch 的形式模拟 Streaming 的处理,应对对实时性要求不是很高的一般型应用。

		计算流程:Spark Streaming 用于将流式计算分解成一系列短小的批处理作业。这里的批处理引擎是 Spark。

	5.4.3 融合框架 
		批处理和流处理,从业务上看对时间的要求不同,采用了不同的处理技术,所以通常是两套完全不一样的系统,但是往往又有一部分实时和批处理的数据是重叠的。另外,从全系统角度看,
	过多的系统带来的更太大的维护难度,所以业界一直在探索批处理系统和流处理系统的融合与统一。
		当前过渡阶段,流行的 Lambda 架构就是流处理和批处理结合的系统。Lambda 架构带来的问题主要是维护两套系统的困难,所以统一的流处理系统是否有可能?未来的流处理能力是否会
	提高到支持所有场景?Twitter 使用Samza 实现重复 reprocessing 来处理批数据,实现流和批处理的统一,它们将这种架构称作 Kappa Architecture。

		1.Flink
			相比Spark,其最主要的特点就是原生流系统,而不是 Spark Streaming 通过 Mini-Batch 模拟流处理。
		2.Google Cloud Dataflow
		3.Google Beam&Calcite
			Spark,Flink,Google Cloud Dataflow 都是在引擎层面统一批流处理,这在短期内很难适应所有场景。另外一个思路是,API层面先统一,统一的API再对接底层多个引擎。Google
		在Dataflow 的基础上开源了一个Beam 项目,Beam=(B)atch+(Str)eam。Beam处理API层面,而对于SQL,则可以采用Calcite,通过sql统一流式和批量处理。

5.5 CEP 
	5.5.1 CEP是什么 
		CEP 是流式处理的核心技术。
		不管是单独的应用系统,还是数据仓库,都是先将数据存储到数据库/数据仓库,然后再处理或查询。而CEP与常见的Message Queue 系统类似,都将数据看做数据流,在联系数据的快速移动
	过程中进行分析处理。这样的方式不需要很大的数据加载,完全可以在内存中进行,从而能够快速产生结果。
		业务事件可能很复杂,在各种不同的数据流中源源不断的产生各种类型的事件。不仅需要对这些业务事件进行复杂的计算,如过滤,关联,聚合等,同时还需要考虑这些业务事件出现的时间序列,
	最终才能产生有意义的事件,或者触发业务流程。注意,这些计算的规则可能还会经常变化。
		这类问题通常通过基于规则的推理机(规则引擎)来实现。

	5.5.2 CEP的架构 
		CEP 在逻辑上应该包含:
			1.事件发生器通过应用系统,文件系统,数据库,互联网,人工及传感器产生事件
			2.事件处理器模式的匹配,验证和改进,路由,转换及编排
			3.事件消费者与事件发生器类似,也可以是应用系统,文件系统,数据库,互联网,人工界面等。

		CEP 将数据看做是一种数据流,基于规则引擎对业务过程中持续产生的各种事件进行复杂的处理,能够实现对连续数据的快速分析处理。CEP 可以应用在多种业务场景,如风险分析,程序化交易等。
	如果说BI实现了商业智能,那么CEP则实现了"持续智能"。

	5.5.3 Esper 
		Esper 是一个开源的CEP实现。Esper 是纯Java开源复杂事件和事件流引擎,可以检测事件流,并在特定事件发生时触发某些动作。Esper 引起是为了满足时间进行分析并做出反应等应用需求而产生的。
	这些应用需求实时或者接近实时的处理事件(或消息)。这类应用具有高吞吐,低响应延迟和复杂的计算等特点。
		Esper 引擎的应用有:
			1.业务处理管理和自动化(处理监控,业务活动监控,异常报告,经营智能化等)
			2.财务(算法交易,欺诈检测,风险管理)
			3.网络及应用程序监控【入侵检测,SLA监控】
			4.传感器网络应用
			5.Esper  支持类 sql语句 EPL


5.6 实时结合机器学习 
	机器学习主要应用于离线批量数据的处理,现实中也有一些场景需要结合机器学。

	Eagle 是eBay 开源的一个分布式实时安全监控方案。通过离线训练模型和实时流引擎监控,能立即检测出对敏感数据的访问或者恶意操作。
	
	5.6.1 Eagle的特点 
	5.6.2 Eagle概览 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值