第9章 Spark—基于内存的大数据计算框架

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。
尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。
Spark 主要有三个特点 :
首先,高级 API 剥离了对集群本身的关注,Spark 应用开发者可以专注于应用所要做的计算本身。
其次,Spark 很快,支持交互式计算和复杂算法。
最后,Spark 是一个通用引擎,可用它来完成各种各样的运算,包括 SQL 查询、文本处理、机器学习等,而在 Spark 出现之前,我们一般需要学习各种各样的引擎来分别处理这些需求。
第10章 Storm——基于拓扑的流数据实时计算框架174
大规模流式计算作为大数据计算的重要组成部分已被广泛应用于实时统计,实时推荐,实时监控,个性化服务等场景中.大数据流式计算与传统大数据批处理在数据处理的要求,方法等方面有着明显差异,因而越来越多的学者开始专注于大数据流式计算的研究.Apache Storm是当前最知名且最具代表性的流式计算引擎之一.本文基于Storm流式计算引擎,按照工业界广为接受的系统工程方法,将典型大数据流式计算分解为数据采集,数据计算和数据存储三个连续阶段,这三个阶段也构成了大数据流处理链.针对大数据流式计算在当前实际生产中存在的如下问题进行研究,首先,数据采集有如下问题和难点:(1)传统数据采集方式中采集系统与数据源具有极高的耦合性且存在访问不可控问题;(2)每个数据源维护独立的采集管道,数据采集接口众多且格式混乱,采集接口难以扩展且不易维护;(3)分布式环境下难以集成多源异构数据源.其次,基于Storm的数据计算有如下问题:(1)流式计算要求系统能够应对数据流速的突发性变化,而Storm缺乏对这种不确定数据流的动态匹配的能力;(2)当系统过载时,Storm出现数据计算延迟显著增加,系统不稳定的情况;(3)Storm对于拓扑资源的重新分配必须先暂停系统,这可能会导致更长的数据计算延迟和数据丢失,

你可能感兴趣的:(大数据)