产品经理学大数据——大数据软件框架:实时流处理框架

在大数据领域,Hadoop无疑是炙手可热的技术。作为分布式系统架构,Hadoop具有高可靠性、高扩展性、高效性、高容错性和低成本的优点。然而,随着数据体量越来越大,实时处理能力成为了许多客户需要面对的收腰挑战。Hadoop的MapReduce是一个批处理计算框架,在实时计算处理方面显得十分乏力。Hadoop生态圈终于迎来了实时流处理框架。除了实时性,流处理可以处理更复杂的任务,能够以低延时执行大部分批处理的工作任务。

  • 实时流处理框架的三个步骤

一个典型的流架构由三个步骤组成:采集->集成->分析。

  1. 采集模块组件是从各种数据源收集数据流;
  2. 集成模块组件及成各种数据流,使他们可用于直接消费;
  3. 分析模块组建用来分析消费这些流数据。

这三个步骤中,第一步是从各种数据源收集事件。这些事件来自于数据库、日志、传感器等,这些事件需要清理组织化到一个中心。第二步,在一个中心集成各种流,典型工具如Apache Kafka。Kafka提供一个broker功能,以高可靠性收集和缓冲数据,并分发到各中队不同流感兴趣的消费者那里进行分析。第三步,对流进行真正的分析,比如创建计数器实现聚合,Map/Reduce之类计算,将各种流Join仪器分析等等,提供了数据分析所需的一步到位的高级编程。

  • 各种流处理系统

在Apache下有多个流处理系统,例如:Apache Kafka、Apache Strom、Apache Spark Streaming、Apache Flink等。尽管Spark比Hadoop要快很多,但是Spark还不是一个纯流处理引擎。Spark只是一个处理小部分输入数据的快速批操作(微批处理模式)。这就是Flink与Spark流处理的区别。Spark流处理提供了完整的容错功能,并保证了对流数据进一次处理(也就是说,如果一个节点失败,它能恢复所有的状态和结果)。这是Flink和Storm所不能提供的功能。Flink和Strom的应用开发人员需要考虑数据丢失的情况,这也限制了开发人员开发复杂的应用系统。

 

你可能感兴趣的:(产品经理学大数据,大数据入门)