事件编排处理引擎(事件编排处理引擎的作用)

来源网友投稿 1090 2022-12-27

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。
本篇文章给大家谈谈事件编排处理引擎,以及事件编排处理引擎的作用对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享事件编排处理引擎的知识,其中也会对事件编排处理引擎的作用进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Apache Flink是什么?

Flink其实就是Apache Flink事件编排处理引擎,是一款业内非常火事件编排处理引擎的大数据产品,由Apache软件基金会开发,核心是用Java和Scala编写的分布式流数据流引擎。Apache Flink是个旨在提供‘一站式’ 的分布式开源数据处理框架。
Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。
此外,Flink的运行时本身也支持迭代算法的执行。
虽然,spark和storm的计算框架非常成熟,但是Flink仍然占据了一席之地。
主要在于flink在设计event time处理模型上比较优秀:watermark的计算实时性高,输出延迟低,而且接受迟到数据没有spark那么受限。
另外,Flink提供的window programming模型非常的灵活,不但支持spark、storm没有的session window,而且只要实现其提供的WindowAssigner、Trigger、Evictor就能创造出符合自身业务逻辑的window,flink可谓功能非常强大。

五种大数据处理架构

五种大数据处理架构
大数据是收集、整理、处理大容量数据集,并从中获得见解所需的非传统战略和技术的总称。虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限,但这种计算类型的普遍性、规模,以及价值在最近几年才经历了大规模扩展。
本文将介绍大数据系统一个最基本的组件:处理框架。处理框架负责对系统中的数据进行计算,例如处理从非易失存储中读取的数据,或处理刚刚摄入到系统中的数据。数据的计算则是指从大量单一数据点中提取信息和见解的过程。
下文将介绍这些框架:
· 仅批处理框架:
Apache Hadoop
· 仅流处理框架:
Apache Storm
Apache Samza
· 混合框架:
Apache Spark
Apache Flink
大数据处理框架是什么?
处理框架和处理引擎负责对数据系统中的数据进行计算。虽然“引擎”和“框架”之间的区别没有什么权威的定义,但大部分时候可以将前者定义为实际负责处理数据操作的组件,后者则可定义为承担类似作用的一系列组件。
例如Apache Hadoop可以看作一种以MapReduce作为默认处理引擎的处理框架。引擎和框架通常可以相互替换或同时使用。例如另一个框架Apache Spark可以纳入Hadoop并取代MapReduce。组件之间的这种互操作性是大数据系统灵活性如此之高的原因之一。
虽然负责处理生命周期内这一阶段数据的系统通常都很复杂,但从广义层面来看它们的目标是非常一致的:通过对数据执行操作提高理解能力,揭示出数据蕴含的模式,并针对复杂互动获得见解。
为了简化这些组件的讨论,我们会通过不同处理框架的设计意图,按照所处理的数据状态对其进行分类。一些系统可以用批处理方式处理数据,一些系统可以用流方式处理连续不断流入系统的数据。此外还有一些系统可以同时处理这两类数据。
在深入介绍不同实现的指标和结论之前,首先需要对不同处理类型的概念进行一个简单的介绍。
批处理系统
批处理在大数据世界有着悠久的历史。批处理主要操作大容量静态数据集,并在计算过程完成后返回结果。
批处理模式中使用的数据集通常符合下列特征…
· 有界:批处理数据集代表数据的有限集合
· 持久:数据通常始终存储在某种类型的持久存储位置中
· 大量:批处理操作通常是处理极为海量数据集的唯一方法
批处理非常适合需要访问全套记录才能完成的计算工作。例如在计算总数和平均数时,必须将数据集作为一个整体加以处理,而不能将其视作多条记录的集合。这些操作要求在计算进行过程中数据维持自己的状态。
需要处理大量数据的任务通常最适合用批处理操作进行处理。无论直接从持久存储设备处理数据集,或首先将数据集载入内存,批处理系统在设计过程中就充分考虑了数据的量,可提供充足的处理资源。由于批处理在应对大量持久数据方面的表现极为出色,因此经常被用于对历史数据进行分析。
大量数据的处理需要付出大量时间,因此批处理不适合对处理时间要求较高的场合。
Apache Hadoop
Apache Hadoop是一种专用于批处理的处理框架。Hadoop是首个在开源社区获得极大关注的大数据框架。基于谷歌有关海量数据处理所发表的多篇论文与经验的Hadoop重新实现了相关算法和组件堆栈,让大规模批处理技术变得更易用。
新版Hadoop包含多个组件,即多个层,通过配合使用可处理批数据:
· HDFS:HDFS是一种分布式文件系统层,可对集群节点间的存储和复制进行协调。HDFS确保了无法避免的节点故障发生后数据依然可用,可将其用作数据来源,可用于存储中间态的处理结果,并可存储计算的最终结果。
· YARN:YARN是Yet Another Resource Negotiator(另一个资源管理器)的缩写,可充当Hadoop堆栈的集群协调组件。该组件负责协调并管理底层资源和调度作业的运行。通过充当集群资源的接口,YARN使得用户能在Hadoop集群中使用比以往的迭代方式运行更多类型的工作负载。
· MapReduce:MapReduce是Hadoop的原生批处理引擎。
批处理模式
Hadoop的处理功能来自MapReduce引擎。MapReduce的处理技术符合使用键值对的map、shuffle、reduce算法要求。基本处理过程包括:
· 从HDFS文件系统读取数据集
· 将数据集拆分成小块并分配给所有可用节点
· 针对每个节点上的数据子集进行计算(计算的中间态结果会重新写入HDFS)
· 重新分配中间态结果并按照键进行分组
· 通过对每个节点计算的结果进行汇总和组合对每个键的值进行“Reducing”
· 将计算而来的最终结果重新写入 HDFS
优势和局限
由于这种方法严重依赖持久存储,每个任务需要多次执行读取和写入操作,因此速度相对较慢。但另一方面由于磁盘空间通常是服务器上最丰富的资源,这意味着MapReduce可以处理非常海量的数据集。同时也意味着相比其他类似技术,Hadoop的MapReduce通常可以在廉价硬件上运行,因为该技术并不需要将一切都存储在内存中。MapReduce具备极高的缩放潜力,生产环境中曾经出现过包含数万个节点的应用。
MapReduce的学习曲线较为陡峭,虽然Hadoop生态系统的其他周边技术可以大幅降低这一问题的影响,但通过Hadoop集群快速实现某些应用时依然需要注意这个问题。
围绕Hadoop已经形成了辽阔的生态系统,Hadoop集群本身也经常被用作其他软件的组成部件。很多其他处理框架和引擎通过与Hadoop集成也可以使用HDFS和YARN资源管理器。
总结
Apache Hadoop及其MapReduce处理引擎提供了一套久经考验的批处理模型,最适合处理对时间要求不高的非常大规模数据集。通过非常低成本的组件即可搭建完整功能的Hadoop集群,使得这一廉价且高效的处理技术可以灵活应用在很多案例中。与其他框架和引擎的兼容与集成能力使得Hadoop可以成为使用不同技术的多种工作负载处理平台的底层基础。
流处理系统
流处理系统会对随时进入系统的数据进行计算。相比批处理模式,这是一种截然不同的处理方式。流处理方式无需针对整个数据集执行操作,而是对通过系统传输的每个数据项执行操作。
· 流处理中的数据集是“无边界”的,这就产生了几个重要的影响:
· 完整数据集只能代表截至目前已经进入到系统中的数据总量。
· 工作数据集也许更相关,在特定时间只能代表某个单一数据项。
处理工作是基于事件的,除非明确停止否则没有“尽头”。处理结果立刻可用,并会随着新数据的抵达继续更新。
流处理系统可以处理几乎无限量的数据,但同一时间只能处理一条(真正的流处理)或很少量(微批处理,Micro-batch Processing)数据,不同记录间只维持最少量的状态。虽然大部分系统提供了用于维持某些状态的方法,但流处理主要针对副作用更少,更加功能性的处理(Functional processing)进行优化。
功能性操作主要侧重于状态或副作用有限的离散步骤。针对同一个数据执行同一个操作会或略其他因素产生相同的结果,此类处理非常适合流处理,因为不同项的状态通常是某些困难、限制,以及某些情况下不需要的结果的结合体。因此虽然某些类型的状态管理通常是可行的,但这些框架通常在不具备状态管理机制时更简单也更高效。
此类处理非常适合某些类型的工作负载。有近实时处理需求的任务很适合使用流处理模式。分析、服务器或应用程序错误日志,以及其他基于时间的衡量指标是最适合的类型,因为对这些领域的数据变化做出响应对于业务职能来说是极为关键的。流处理很适合用来处理必须对变动或峰值做出响应,并且关注一段时间内变化趋势的数据。
Apache Storm
Apache Storm是一种侧重于极低延迟的流处理框架,也许是要求近实时处理的工作负载的最佳选择。该技术可处理非常大量的数据,通过比其他解决方案更低的延迟提供结果。
流处理模式
Storm的流处理可对框架中名为Topology(拓扑)的DAG(Directed Acyclic Graph,有向无环图)进行编排。这些拓扑描述了当数据片段进入系统后,需要对每个传入的片段执行的不同转换或步骤。
拓扑包含:
· Stream:普通的数据流,这是一种会持续抵达系统的无边界数据。
· Spout:位于拓扑边缘的数据流来源,例如可以是API或查询等,从这里可以产生待处理的数据。
· Bolt:Bolt代表需要消耗流数据,对其应用操作,并将结果以流的形式进行输出的处理步骤。Bolt需要与每个Spout建立连接,随后相互连接以组成所有必要的处理。在拓扑的尾部,可以使用最终的Bolt输出作为相互连接的其他系统的输入。
Storm背后的想法是使用上述组件定义大量小型的离散操作,随后将多个组件组成所需拓扑。默认情况下Storm提供了“至少一次”的处理保证,这意味着可以确保每条消息至少可以被处理一次,但某些情况下如果遇到失败可能会处理多次。Storm无法确保可以按照特定顺序处理消息。
为了实现严格的一次处理,即有状态处理,可以使用一种名为Trident的抽象。严格来说不使用Trident的Storm通常可称之为Core Storm。Trident会对Storm的处理能力产生极大影响,会增加延迟,为处理提供状态,使用微批模式代替逐项处理的纯粹流处理模式。
为避免这些问题,通常建议Storm用户尽可能使用Core Storm。然而也要注意,Trident对内容严格的一次处理保证在某些情况下也比较有用,例如系统无法智能地处理重复消息时。如果需要在项之间维持状态,例如想要计算一个小时内有多少用户点击了某个链接,此时Trident将是你唯一的选择。尽管不能充分发挥框架与生俱来的优势,但Trident提高了Storm的灵活性。
Trident拓扑包含:
· 流批(Stream batch):这是指流数据的微批,可通过分块提供批处理语义。
· 操作(Operation):是指可以对数据执行的批处理过程。
优势和局限
目前来说Storm可能是近实时处理领域的最佳解决方案。该技术可以用极低延迟处理数据,可用于希望获得最低延迟的工作负载。如果处理速度直接影响用户体验,例如需要将处理结果直接提供给访客打开的网站页面,此时Storm将会是一个很好的选择。
Storm与Trident配合使得用户可以用微批代替纯粹的流处理。虽然借此用户可以获得更大灵活性打造更符合要求的工具,但同时这种做法会削弱该技术相比其他解决方案最大的优势。话虽如此,但多一种流处理方式总是好的。
Core Storm无法保证消息的处理顺序。Core Storm为消息提供了“至少一次”的处理保证,这意味着可以保证每条消息都能被处理,但也可能发生重复。Trident提供了严格的一次处理保证,可以在不同批之间提供顺序处理,但无法在一个批内部实现顺序处理。
在互操作性方面,Storm可与Hadoop的YARN资源管理器进行集成,因此可以很方便地融入现有Hadoop部署。除了支持大部分处理框架,Storm还可支持多种语言,为用户的拓扑定义提供了更多选择。
总结
对于延迟需求很高的纯粹的流处理工作负载,Storm可能是最适合的技术。该技术可以保证每条消息都被处理,可配合多种编程语言使用。由于Storm无法进行批处理,如果需要这些能力可能还需要使用其他软件。如果对严格的一次处理保证有比较高的要求,此时可考虑使用Trident。不过这种情况下其他流处理框架也许更适合。
Apache Samza
Apache Samza是一种与Apache Kafka消息系统紧密绑定的流处理框架。虽然Kafka可用于很多流处理系统,但按照设计,Samza可以更好地发挥Kafka独特的架构优势和保障。该技术可通过Kafka提供容错、缓冲,以及状态存储。
Samza可使用YARN作为资源管理器。这意味着默认情况下需要具备Hadoop集群(至少具备HDFS和YARN),但同时也意味着Samza可以直接使用YARN丰富的内建功能。
流处理模式
Samza依赖Kafka的语义定义流的处理方式。Kafka在处理数据时涉及下列概念:
· Topic(话题):进入Kafka系统的每个数据流可称之为一个话题。话题基本上是一种可供消耗方订阅的,由相关信息组成的数据流。
· Partition(分区):为了将一个话题分散至多个节点,Kafka会将传入的消息划分为多个分区。分区的划分将基于键(Key)进行,这样可以保证包含同一个键的每条消息可以划分至同一个分区。分区的顺序可获得保证。
· Broker(代理):组成Kafka集群的每个节点也叫做代理。
· Producer(生成方):任何向Kafka话题写入数据的组件可以叫做生成方。生成方可提供将话题划分为分区所需的键。
· Consumer(消耗方):任何从Kafka读取话题的组件可叫做消耗方。消耗方需要负责维持有关自己分支的信息,这样即可在失败后知道哪些记录已经被处理过了。
由于Kafka相当于永恒不变的日志,Samza也需要处理永恒不变的数据流。这意味着任何转换创建的新数据流都可被其他组件所使用,而不会对最初的数据流产生影响。
优势和局限
乍看之下,Samza对Kafka类查询系统的依赖似乎是一种限制,然而这也可以为系统提供一些独特的保证和功能,这些内容也是其他流处理系统不具备的。
例如Kafka已经提供了可以通过低延迟方式访问的数据存储副本,此外还可以为每个数据分区提供非常易用且低成本的多订阅者模型。所有输出内容,包括中间态的结果都可写入到Kafka,并可被下游步骤独立使用。
这种对Kafka的紧密依赖在很多方面类似于MapReduce引擎对HDFS的依赖。虽然在批处理的每个计算之间对HDFS的依赖导致了一些严重的性能问题,但也避免了流处理遇到的很多其他问题。
Samza与Kafka之间紧密的关系使得处理步骤本身可以非常松散地耦合在一起。无需事先协调,即可在输出的任何步骤中增加任意数量的订阅者,对于有多个团队需要访问类似数据的组织,这一特性非常有用。多个团队可以全部订阅进入系统的数据话题,或任意订阅其他团队对数据进行过某些处理后创建的话题。这一切并不会对数据库等负载密集型基础架构造成额外的压力。
直接写入Kafka还可避免回压(Backpressure)问题。回压是指当负载峰值导致数据流入速度超过组件实时处理能力的情况,这种情况可能导致处理工作停顿并可能丢失数据。按照设计,Kafka可以将数据保存很长时间,这意味着组件可以在方便的时候继续进行处理,并可直接重启动而无需担心造成任何后果。
Samza可以使用以本地键值存储方式实现的容错检查点系统存储数据。这样Samza即可获得“至少一次”的交付保障,但面对由于数据可能多次交付造成的失败,该技术无法对汇总后状态(例如计数)提供精确恢复。
Samza提供的高级抽象使其在很多方面比Storm等系统提供的基元(Primitive)更易于配合使用。目前Samza只支持JVM语言,这意味着它在语言支持方面不如Storm灵活。
总结
对于已经具备或易于实现Hadoop和Kafka的环境,Apache Samza是流处理工作负载一个很好的选择。Samza本身很适合有多个团队需要使用(但相互之间并不一定紧密协调)不同处理阶段的多个数据流的组织。Samza可大幅简化很多流处理工作,可实现低延迟的性能。如果部署需求与当前系统不兼容,也许并不适合使用,但如果需要极低延迟的处理,或对严格的一次处理语义有较高需求,此时依然适合考虑。
混合处理系统:批处理和流处理
一些处理框架可同时处理批处理和流处理工作负载。这些框架可以用相同或相关的组件和API处理两种类型的数据,借此让不同的处理需求得以简化。
如你所见,这一特性主要是由Spark和Flink实现的,下文将介绍这两种框架。实现这样的功能重点在于两种不同处理模式如何进行统一,以及要对固定和不固定数据集之间的关系进行何种假设。
虽然侧重于某一种处理类型的项目会更好地满足具体用例的要求,但混合框架意在提供一种数据处理的通用解决方案。这种框架不仅可以提供处理数据所需的方法,而且提供了自己的集成项、库、工具,可胜任图形分析、机器学习、交互式查询等多种任务。
Apache Spark
Apache Spark是一种包含流处理能力的下一代批处理框架。与Hadoop的MapReduce引擎基于各种相同原则开发而来的Spark主要侧重于通过完善的内存计算和处理优化机制加快批处理工作负载的运行速度。
Spark可作为独立集群部署(需要相应存储层的配合),或可与Hadoop集成并取代MapReduce引擎。
批处理模式
与MapReduce不同,Spark的数据处理工作全部在内存中进行,只在一开始将数据读入内存,以及将最终结果持久存储时需要与存储层交互。所有中间态的处理结果均存储在内存中。
虽然内存中处理方式可大幅改善性能,Spark在处理与磁盘有关的任务时速度也有很大提升,因为通过提前对整个任务集进行分析可以实现更完善的整体式优化。为此Spark可创建代表所需执行的全部操作,需要操作的数据,以及操作和数据之间关系的Directed Acyclic Graph(有向无环图),即DAG,借此处理器可以对任务进行更智能的协调。
为了实现内存中批计算,Spark会使用一种名为Resilient Distributed Dataset(弹性分布式数据集),即RDD的模型来处理数据。这是一种代表数据集,只位于内存中,永恒不变的结构。针对RDD执行的操作可生成新的RDD。每个RDD可通过世系(Lineage)回溯至父级RDD,并最终回溯至磁盘上的数据。Spark可通过RDD在无需将每个操作的结果写回磁盘的前提下实现容错。
流处理模式
流处理能力是由Spark Streaming实现的。Spark本身在设计上主要面向批处理工作负载,为了弥补引擎设计和流处理工作负载特征方面的差异,Spark实现了一种叫做微批(Micro-batch)*的概念。在具体策略方面该技术可以将数据流视作一系列非常小的“批”,借此即可通过批处理引擎的原生语义进行处理。
Spark Streaming会以亚秒级增量对流进行缓冲,随后这些缓冲会作为小规模的固定数据集进行批处理。这种方式的实际效果非常好,但相比真正的流处理框架在性能方面依然存在不足。
优势和局限
使用Spark而非Hadoop MapReduce的主要原因是速度。在内存计算策略和先进的DAG调度等机制的帮助下,Spark可以用更快速度处理相同的数据集。
Spark的另一个重要优势在于多样性。该产品可作为独立集群部署,或与现有Hadoop集群集成。该产品可运行批处理和流处理,运行一个集群即可处理不同类型的任务。
除了引擎自身的能力外,围绕Spark还建立了包含各种库的生态系统,可为机器学习、交互式查询等任务提供更好的支持。相比MapReduce,Spark任务更是“众所周知”地易于编写,因此可大幅提高生产力。
为流处理系统采用批处理的方法,需要对进入系统的数据进行缓冲。缓冲机制使得该技术可以处理非常大量的传入数据,提高整体吞吐率,但等待缓冲区清空也会导致延迟增高。这意味着Spark Streaming可能不适合处理对延迟有较高要求的工作负载。
由于内存通常比磁盘空间更贵,因此相比基于磁盘的系统,Spark成本更高。然而处理速度的提升意味着可以更快速完成任务,在需要按照小时数为资源付费的环境中,这一特性通常可以抵消增加的成本。
Spark内存计算这一设计的另一个后果是,如果部署在共享的集群中可能会遇到资源不足的问题。相比HadoopMapReduce,Spark的资源消耗更大,可能会对需要在同一时间使用集群的其他任务产生影响。从本质来看,Spark更不适合与Hadoop堆栈的其他组件共存一处。
总结
Spark是多样化工作负载处理任务的最佳选择。Spark批处理能力以更高内存占用为代价提供了无与伦比的速度优势。对于重视吞吐率而非延迟的工作负载,则比较适合使用Spark Streaming作为流处理解决方案。
Apache Flink
Apache Flink是一种可以处理批处理任务的流处理框架。该技术可将批处理数据视作具备有限边界的数据流,借此将批处理任务作为流处理的子集加以处理。为所有处理任务采取流处理为先的方法会产生一系列有趣的副作用。
这种流处理为先的方法也叫做Kappa架构,与之相对的是更加被广为人知的Lambda架构(该架构中使用批处理作为主要处理方法,使用流作为补充并提供早期未经提炼的结果)。Kappa架构中会对一切进行流处理,借此对模型进行简化,而这一切是在最近流处理引擎逐渐成熟后才可行的。
流处理模型
Flink的流处理模型在处理传入数据时会将每一项视作真正的数据流。Flink提供的DataStream API可用于处理无尽的数据流。Flink可配合使用的基本组件包括:
· Stream(流)是指在系统中流转的,永恒不变的无边界数据集
· Operator(操作方)是指针对数据流执行操作以产生其他数据流的功能
· Source(源)是指数据流进入系统的入口点
· Sink(槽)是指数据流离开Flink系统后进入到的位置,槽可以是数据库或到其他系统的连接器
为了在计算过程中遇到问题后能够恢复,流处理任务会在预定时间点创建快照。为了实现状态存储,Flink可配合多种状态后端系统使用,具体取决于所需实现的复杂度和持久性级别。
此外Flink的流处理能力还可以理解“事件时间”这一概念,这是指事件实际发生的时间,此外该功能还可以处理会话。这意味着可以通过某种有趣的方式确保执行顺序和分组。
批处理模型
Flink的批处理模型在很大程度上仅仅是对流处理模型的扩展。此时模型不再从持续流中读取数据,而是从持久存储中以流的形式读取有边界的数据集。Flink会对这些处理模型使用完全相同的运行时。
Flink可以对批处理工作负载实现一定的优化。例如由于批处理操作可通过持久存储加以支持,Flink可以不对批处理工作负载创建快照。数据依然可以恢复,但常规处理操作可以执行得更快。
另一个优化是对批处理任务进行分解,这样即可在需要的时候调用不同阶段和组件。借此Flink可以与集群的其他用户更好地共存。对任务提前进行分析使得Flink可以查看需要执行的所有操作、数据集的大小,以及下游需要执行的操作步骤,借此实现进一步的优化。
优势和局限
Flink目前是处理框架领域一个独特的技术。虽然Spark也可以执行批处理和流处理,但Spark的流处理采取的微批架构使其无法适用于很多用例。Flink流处理为先的方法可提供低延迟,高吞吐率,近乎逐项处理的能力。
Flink的很多组件是自行管理的。虽然这种做法较为罕见,但出于性能方面的原因,该技术可自行管理内存,无需依赖原生的Java垃圾回收机制。与Spark不同,待处理数据的特征发生变化后Flink无需手工优化和调整,并且该技术也可以自行处理数据分区和自动缓存等操作。
Flink会通过多种方式对工作进行分许进而优化任务。这种分析在部分程度上类似于SQL查询规划器对关系型数据库所做的优化,可针对特定任务确定最高效的实现方法。该技术还支持多阶段并行执行,同时可将受阻任务的数据集合在一起。对于迭代式任务,出于性能方面的考虑,Flink会尝试在存储数据的节点上执行相应的计算任务。此外还可进行“增量迭代”,或仅对数据中有改动的部分进行迭代。
在用户工具方面,Flink提供了基于Web的调度视图,借此可轻松管理任务并查看系统状态。用户也可以查看已提交任务的优化方案,借此了解任务最终是如何在集群中实现的。对于分析类任务,Flink提供了类似SQL的查询,图形化处理,以及机器学习库,此外还支持内存计算。
Flink能很好地与其他组件配合使用。如果配合Hadoop 堆栈使用,该技术可以很好地融入整个环境,在任何时候都只占用必要的资源。该技术可轻松地与YARN、HDFS和Kafka 集成。在兼容包的帮助下,Flink还可以运行为其他处理框架,例如Hadoop和Storm编写的任务。
目前Flink最大的局限之一在于这依然是一个非常“年幼”的项目。现实环境中该项目的大规模部署尚不如其他处理框架那么常见,对于Flink在缩放能力方面的局限目前也没有较为深入的研究。随着快速开发周期的推进和兼容包等功能的完善,当越来越多的组织开始尝试时,可能会出现越来越多的Flink部署
总结
Flink提供了低延迟流处理,同时可支持传统的批处理任务。Flink也许最适合有极高流处理需求,并有少量批处理任务的组织。该技术可兼容原生Storm和Hadoop程序,可在YARN管理的集群上运行,因此可以很方便地进行评估。快速进展的开发工作使其值得被大家关注。
结论
大数据系统可使用多种处理技术。
对于仅需要批处理的工作负载,如果对时间不敏感,比其他解决方案实现成本更低的Hadoop将会是一个好选择。
对于仅需要流处理的工作负载,Storm可支持更广泛的语言并实现极低延迟的处理,但默认配置可能产生重复结果并且无法保证顺序。Samza与YARN和Kafka紧密集成可提供更大灵活性,更易用的多团队使用,以及更简单的复制和状态管理。
对于混合型工作负载,Spark可提供高速批处理和微批处理模式的流处理。该技术的支持更完善,具备各种集成库和工具,可实现灵活的集成。Flink提供了真正的流处理并具备批处理能力,通过深度优化可运行针对其他平台编写的任务,提供低延迟的处理,但实际应用方面还为时过早。
最适合的解决方案主要取决于待处理数据的状态,对处理所需时间的需求,以及希望得到的结果。具体是使用全功能解决方案或主要侧重于某种项目的解决方案,这个问题需要慎重权衡。随着逐渐成熟并被广泛接受,在评估任何新出现的创新型解决方案时都需要考虑类似的问题。

决策引擎与规则引擎有什么区别?

区别:

1、运行方式不同
规则引擎是需要电子商城的实际业务的运用人员进行相关的调整和设置;

决策引擎虽然能够根据实际的业务进行相关的人工干预,但是其实现是系统自动化的。

2、用户不同

规则引擎是针对的是电子商城的某一个或者多个客户群;

决策引擎则是精准到单个用户的偏好。

3、意义不同

规则引擎是一个工具,本身是不带规则的,规则需要人为输入,可单独将规则从系统剥离出来放到规则引擎平台单独进行执行管理。具有一定智能化的使用价值,可以按照需求来进行规则的配置、执行、管理,不同的行业都可以配置出属于自己不同的规则平台。

决策引擎,就是已经包含了很多的规则、决策条件,具备了对规则的决策能力,如风控决策引擎,就是在金融行业的风险控制环节进行决策的。

基于大数据审计的信息安全日志分析法

噪声数据随着经济和信息技术的不断发展事件编排处理引擎,许多企业开始引入事件编排处理引擎了ERP等系统,这些系统使得企业的众多活动数据可以实时记录,形成了大量有关企业经营管理的数据仓库。从这些海量数据中获取有用的审计数据是目前计算机审计的一个应用。接下来我为事件编排处理引擎你带来基于大数据审计的信息安全日志分析法,希望对你有帮助。

大数据信息安全日志审计分析方法

1.海量数据采集。

大数据采集过程的主要特点和挑战是并发数高,因此采集数据量较大时,分析平台的接收性能也将面临较大挑战。大数据审计平台可采用大数据收集技术对各种类型的数据进行统一采集,使用一定的压缩及加密算法,在保证用户数据隐私性及完整性的前提下,可以进行带宽控制。

2.数据预处理。

在大数据环境下对采集到的海量数据进行有效分析,需要对各种数据进行分类,并按照一定的标准进行归一化,且对数据进行一些简单的清洗和预处理工作。对于海量数据的预处理,大数据审计平台采用新的技术架构,使用基于大数据集群的分布式计算框架,同时结合基于大数据集群的复杂事件处理流程作为实时规则分析引擎,从而能够高效并行地运行多种规则,并能够实时检测异常事件。

3.统计及分析。

按照数据分析的实时性,分为实时数据分析和离线数据分析。大数据平台在数据预处理时使用的分布式计算框架Storm就非常适合对海量数据进行实时的统计计算,并能够快速反馈统计结果。Storm框架利用严格且高效的事件处理流程保证运算时数据的准确性,并提供多种实时统计接口以使用。

4.数据挖掘。

数据挖掘是在没有明确假设的前提下去挖掘信息、发现知识,所以它所得到的信息具有未知、有效、实用三个特征。与传统统计及分析过程不同的是,大数据环境下的数据挖掘一般没有预先设定好的主题,主要是在现有数据上面进行基于各种算法的计算,从而起到预测的效果,并进一步实现一些高级别数据分析的需求。

大数据分析信息安全日志的解决方案

统一日志审计与安全大数据分析平台能够实时不间断地将用户网络中来自不同厂商的安全设备、网络设备、主机、操作系统、数据库系统、用户业务系统的日志和警报等信息汇集到管理中心,实现全网综合安全审计事件编排处理引擎;同时借助大数据分析和挖掘技术,通过各种模型场景发现各种网络行为、用户异常访问和操作行为。

1.系统平台架构。

以国内某大数据安全分析系统为例,其架构包括大数据采集平台、未知威胁感知系统、分布式实时计算系统(Storm)、复杂事件处理引擎(Esper)、Hadoop平台、分布式文件系统(HDFS)、分布式列数据库(Hbase)、分布式并行计算框架(Map/Reduce、Spark)、数据仓库(Hive)、分布式全文搜索引擎(ElasticSearch)、科学计算系统(Euler)。这些技术能够解决用户对海量事件的采集、处理、分析、挖掘和存储的需求。

如图1所示,系统能够实时地对采集到的不同类型的信息进行归一化和实时关联分析,通过统一的控制台界面进行实时、可视化的呈现,协助安全管理人员迅速准确地识别安全事件,提高工作效率。

2.实现功能。

系统能够实现的功能包括:审计范围覆盖网络环境中的全部网络设备、安全设备、服务器、数据库、中间件、应用系统,覆盖200多种设备和应用中的上万类日志,快速支持用户业务系统日志审计;系统收集企业和组织中的所有安全日志和告警信息,通过归一化和智能日志关联分析引擎,协助用户准确、快速地识别安全事故;通过系统的'安全事件并及时做出安全响应操作,为用户的网络环境安全提供保障;通过已经审计到的各种审计对象日志,重建一段时间内可疑的事件序列,分析路径,帮助安全分析人员快速发现源;整个Hadoop的体系结构主要通过分布式文件系统(HDFS)来实现对分布式存储的底层支持。

3.应用场景。

上述系统可解决传统日志审计无法实现的日志关联分析和智能定位功能。如在企业的网络系统中,大范围分布的网络设备、安全设备、服务器等实时产生的日志量非常大,要从其中提取想要的信息非常困难,而要从设备之间的关联来判断设备故障也将是一大难点。例如,某企业定位某设备与周围直连设备的日志消息相关联起来判断该设备是否存在异常或故障,如对于其中一台核心交换机SW1,与之直连的所有设备如果相继报接口down的日志,则可定位该设备SWl为故障设备,此时应及时做出响应。而传统数据难以通过周围设备的关联告警来定位该故障,大数据审计平台则是最好的解决方法。

大数据分析方法可以利用实体关联分析、地理空间分析和数据统计分析等技术来分析实体之间的关系,并利用相关的结构化和非结构化的信息来检测非法活动。对于集中存储起来的海量信息,可以让审计人员借助历史分析工具对日志进行深度挖掘、调查取证、证据保全。

BPMN2.0解析

BPMN(Business Process Model and Notation),业务流程建模和标注。 Notation是BPMN的核心,即使用图形来表达业务流程。另外,BPMN是由OMG组织维护的一个公开的标准,与任何特定商业组织或工具是没有关系,无需为此付费。
BPMN和传统的流程图的区别如下:
MN是一个正式的规范,各种图标、元件是有准确的含义和使用规范。
BPMN可以描述基于事件触发的行为,比如响应超时、外部系统无法提供服务等。
BPMN 标准发展版本历史如下。BPMN2.0在1.x基础上新增了元模型、存储、交互、执行。

  BPMN1.x被大多数的建模工具和BPMS厂商所支持。但是, BPMN1.x只是一些建模符号,不支持元模型,不支持存储和交换,也不支持执行。那么围绕着BPMN1.x的存储、交换和执行,必然会产生新的竞争,所以主角换成了XPDL、BPEL和BPDM。
  XPDL作为WfMC(工作流管理联盟)提出的流程定义语言规范,本身就是一个元模型,可以存储,并且具备执行语义。如今有超过80个的不同公司的产品使用XPDL来交换流程定义,同时也有一些厂商在自己提供的BPMN工具中使用了XPDL作为交换和存储格式。
  为了抗衡XPDL,OASIS组织(包括几个大的平台公司,Microsoft、 BEA、 IBM、 SAP 、Sun、Oracle)开发了BPEL规范。但BPMN到BPEL的转换存在着先天上的缺陷,原因是BPMN是基于图的,而BPEL是基于块的。这个缺陷导致有些BPMN建模的流程无法映射到BPEL,两者的双向工程更是存在问题。这个缺陷成为人们反复诟病的对象。许多支持BPEL的产品为了解决这一问题,不得不在用户建模时做出种种限制,让用户绘制不出无法转换的模型。
  而BPDM(业务流程定义元模型)则是OMG组织自己提出来解决BPMN存储和交换问题的规范。于2007年7月形成初稿,2008年7月被OMG最终采用。BPDM是一个标准的概念定义,用来表达业务流程模型。元模型定义了用来交换的概念,关系和场景,可以使得不同的建模工具所建模出来的流程模型进行交换。BPDM超越了BPMN和BPEL所定义的业务流程建模的要素,它定义了编排和编制。
  三者的竞争关系似乎还将继续,但BPMN2.0出现了。BPMN2.0相比BPMN1.x,最重要的变化在于其定义了流程的元模型和执行语义,即它自己解决了存储、交换和执行的问题,BPMN由单纯的业务建模重新回归了它的本源,即作为一个对业务人员友好的标准流程执行语言的图形化前端。BPMN2.0一出手,竞争就结束了,XPDL、BPEL和BPDM各自准备回家钓鱼。看起来胜利者似乎是BPMN,但看看BPMN2.0的领导者,就会发现最后的胜利者还是IBM,Oracle和SAP这些大厂商们,他们提交的草案明确要赋予BPMN2.0以执行语义,这迫使BPDM团队撤回了其提交,并将他们的提议与BPDM团队想法合并,这就是BPMN2.0最后内容的由来。

BPMN官网: http://www.bpmn.org

使用一个简单的订单处理的业务流程为例,简要的说明BPMN的作用。
基本形状:

用户任务(User Task)
用户任务表示需要人来执行的任务,有一个输入和一个输出。

服务任务(Service Task)
Service Task是一个自动活动,它会调用一些服务, 比如web service,java service等等,必须有一个输入和一个输出。

脚本任务(Script Task)
脚本任务时一个自动活动,当到达这个任务的时候流程引擎会执行一个脚本。必须有一个输入和一个输出。支持的脚本语言有Java,JavScript,XPath1.0,mvel。

脚本任务与服务任务的区别。服务任务一般用来处理和外部服务之间的交互。脚本任务只用来执行一些简单的逻辑。

规则任务(Business Rule Task)
规则任务用来执行使用Drools定义的规则集,规则集通过ruleflow-group来识别。

唯一网关(Exclusive Gateway)
用一个内部包含X的菱形表示。

Diverging(发散)
表示只有一个外向顺序流被执行。在执行时,必须确保至少一个外向顺序流上面的条件为true。

Converging(会聚)
每个入口顺序流执行完成之后,都会触发一次唯一网关后面的顺序流。

并行网关(Parallel Gateway)

Diverging(发散)
表示多个外向顺心流会同时执行。
Converging(会聚)
等待所有的入口顺序流完成之后,才会触发出口顺序流。

包含网关(Inclusive Gateway)

Diverging(发散)
只要外向顺心流上面的条件为true,则都会被执行。
Converging(会聚)
等待所有的active入口顺序流完成之后,才会触发出口顺序流。

空启动事件: 表示没有指明触发者。子流程必须有一个空启动事件。
消息启动事件: 由外部消息来触发流程的执行。
定时器启动事件: 由时间来触发流程的执行。

结束事件
使用粗线圆表示,意味着流程的一个顺序流的结束。和启动事件不一样,在一个流程中出现多个结束事件是非常常见的。

空结束事件
表示流程中一个路径的结束,不返回任何结果。
消息结束事件
表示流程中一个路径的结束,并发送一个消息。
Terminate结束事件
结束整个流程的执行,即使有并行路径在执行。

artifact表示没有执行语义,也就是说对流程的执行没有任何影响。BPMN中有两种artifact,注释和分组。

注释(Text Annotation)
用于对流程图中的元件进行解释说明。

分组(Group)
用带虚线的矩形框表达,本质上没有任何执行相关的含义。

安全编排和自动化的好处:SOAR如何帮助改进事件响应

据全球保险公司Gallagher的数据,平均每小时有800起袭击袭击了76个英国议会。如此大规模的攻击并不罕见,也不是什么新鲜事。2013年,加州大学伯克利分校(UC Berkeley)的数据科学博客报道称,美国海军每小时遭遇11万次网络攻击。

想象一下,作为一个安全操作中心(SOC)的分析师,试图管理这么多的警报。这就是安全性编排、自动化和响应(SOAR)的用武之地。通过将来自不同安全设备的警报关联起来,自动化任务,并为事件处理提供剧本,将SOAR集成到您的SOC中,可以提高效率和有效性。

SOAR的最终目标是在面对成千上万的安全警报时,提高SOC进程的效率并改善事件响应 。人员、流程和技术都有助于高效和有效的事件响应。然而,SOAR最终依赖于几个组件来提供逐步的事件响应计划。SOAR的三个主要部分是:

(1)安全编排是将来自不同的安全和网络工具的警报放入可操作的上下文中的过程,其中包含手动和/或自动处理警报的过程。

(2)安全自动化减少了人们处理重复性任务和警报的需要,这些任务和警报可以自动解决。

(3)事件响应是一组用于计划和实施处理事件所需的步骤的过程和技术。

安全编排和自动化用于卸载低优先级和重复的任务,允许您的SOC分析人员执行更高价值的工作,从而进一步改进事件响应。通过安全自动化和事件响应剧本,SOAR可以构建最少(如果有的话)人工干预的工作流。

那么,SOAR如何使事件响应更加有效和高效呢?让我们来看看一些主要的好处。

1)响应时间更快

安全编排将来自不同系统的多个相关警报( alerts )聚合为单个事件(incident)。 为了节省更多的时间,安全自动化使系统能够在不需要人工干预的情况下响应警报。将上下文与文本数据结合起来,并将自动化应用到决策过程中,可以实现更快的警报处理过程。

2)优化威胁情报

威胁情报提供有用的信息,但往往是一棵树倒了,没有人听到。 SOC分析人员经常要处理信息过载的问题。将威胁情报添加到这一组合中,可以收集到更多的信息进行分类。最好的SOAR平台可以获取威胁情报,并自动将其与实时事件联系起来 。这减轻了SOC分析人员的负担,并为事件响应团队提供了可立即采取行动的信息。

3)减少人工操作和标准化流程

安全自动化减轻了SOC分析人员单调、重复的任务,并将其包含在如何处理任何给定事件的整个流程中。一个好的SOAR平台会将这些任务合并到剧本中,从而制定出端到端的事件响应步骤。

4)简化操作

飞涨的每一项因素都有助于简化安全行动。安全业务流程聚合来自各种来源的数据。与此同时,安全自动化可以通过使用自动化剧本轻松处理低优先级警报和事件。事件响应将最热门的猜测从事件处理中剥离出来,限制了网络攻击的驻留时间和对业务的整体影响。

5)降低网络攻击的影响

平均检测时间(MTTD)和平均响应时间(MTTR)是影响网络攻击对组织的影响的重要指标。检测和响应攻击所需的时间越长,所造成的损害就越大,对组织的影响也就越大。

SOAR 使MTTD和MTTR最小化。通过为每个事件提供上下文丰富的详细信息,安全业务流程减少了MTTD,从而使分析人员能够减少收集信息的时间,而将更多的时间用于调查警报。安全自动化通过实时自动响应警报和事件来减少MTTR。

6)简易的技术和工具集成

安全编排的好处之一是能够关联来自各种产品和技术的警报。这远远超出了 SIEM的范畴。一个SOAR平台应该能够与跨越各种安全技术的产品集成:

云安全

数据丰富

电子邮件安全

终端安全

取证和恶意软件分析

身份和访问管理

IT和基础设施

网络安全

SIEM和日志管理

威胁情报

漏洞与风险管理

将这些产品集成到您的SOAR平台应该很容易。自助服务市场可以快速访问特定产品的集成。从这里开始,集成就像单击按钮并将组件捕捉到剧本中一样简单。

7)降低成本

通过将SOAR平台集成到其业务模型中,一个典型的企业将会节省大量的成本。

90%的报告

80%的剧本创作

70%的警报处理

60%分析师培训

30%的值班管理

8)自动报告和度量功能

自动化报告不仅使工作变得更简单,还消除了对手工生成的度量的需要。通过允许SOC工作人员按需提取报告(最好是单击一次)或自动按时间表提取报告,企业可以获得每个报告期间的可靠和及时的指标。为了进一步简化这个过程,大多数SOAR工具都提供了报告模板和生成自定义报告的能力。

9)事件响应过程中的标准化沟通

事件处理和响应常常需要触及SOC之外的地方,特别是对于重大事件。这意味着事件响应团队可以包括SOC内部和外部的涉众——这使得建立可靠的、可重复的信息流具有挑战性。

为了缓解这一问题,企业通常会形成一个任务控制中心来处理优先级最高的事件。一个好的SOAR平台将会有一个虚拟的战备室功能,以确保关键的沟通是标准化的,以防止任何团队成员,从PR到HR,从法务到高管,在事件响应过程中丢失关键信息。 关于事件编排处理引擎和事件编排处理引擎的作用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 事件编排处理引擎的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于事件编排处理引擎的作用、事件编排处理引擎的信息别忘了在本站进行查找喔。
上一篇:全网it智能运维平台更名(it智能运维系统)
下一篇:zabbix告警时间不对(zabbix告警信息)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~