用户您好!请先登录!

分类目录Spark

Spark部署与工作原理

1. Spark 概述

Spark 是 UC Berkeley AMP Lab 开源的通用分布式并行计算框架,目前已成为 Apache 软件基金会的顶级开源项目。Spark 支持多种编程语言,包括 Java、Python、R 和 Scala,同时 Spark 也支持 Hadoop 的底层存储系统 HDFS,但 Spark 不依赖 Hadoop。

1.1 Spark 与 Hadoop

Spark 基于 Hadoop MapReduce 算法实现的分布式计算,拥有 Hadoop MapReduce 所具有的优点,并且具有更高的运算速度。Spark 能够比 Hadoop 运算更快,主要原因是:Hadoop 在一次 MapReduce 运算之后,会将数据的运算结果从内存写入到磁盘中,第二次 MapReduce 运算时在从磁盘中读取数据,两次对磁盘的操作,增加了多余的 IO 消耗;而 Spark 则是将数据一直缓存在内存中,运算时直接从内存读取数据,只有在必要时,才将部分数据写入到磁盘中。除此之外,Spark 使用最先进的 DAG(Directed Acyclic Graph,有向无环图)调度程序、查询优化器和物理执行引擎,在处理批量处理以及处理流数据时具有较高的性能。按照Spark 官网的说法,Spark 相对于 Hadoop 而言,Spark 能够达到 100 倍以上的运行负载。

万字详文:腾讯研究员详解 Spark 部署与工作原理

(图片来源:Apache Spark™)

阅读更多

比较Spark和Flink

当提及大数据时,我们无法忽视流式计算的重要性,它能够完成强大的实时分析。而说起流式计算,我们也无法忽视最强大的数据处理引擎:Spark和Flink。

Apache Spark自2014年以来迅速普及。它提供了一个适用常见数据处理场景的统一引擎,如批处理、流处理、交互式查询和机器学习。在某些情况下,它的性能是前一代Hadoop MapReduce的数百倍。凭借其高性能的处理和广泛的场景支持,它在大数据开发方面受到早期用户的长期青睐。

在Spark出现后不久,Apache Flink就作为强劲对手进入公众视野,并在2016年左右名声大噪。当Spark早期用户在实时流处理等场景中面临可用性问题时,Flink提供了一个支持各种场景的高级流处理引擎,Flink的优势还不仅仅于此。

在这场短暂的竞争中,Spark在持续优化它的实时流处理能力,2.3版(2月份)中引入了一个持续流处理模型,将流处理延迟降至毫秒级。同样,Flink也是一个强大的创新者。这两个框架中谁会成为定义下一代大数据计算的主流,这还有待观察。

为了阐明这个问题,本文将全面分析它们各自的技术和用途。

大数据计算引擎的起源

最初,Hadoop和其他基于MapReduce的数据处理系统出现是为了满足传统数据库能力以外的数据处理需求。2004年谷歌发布MapReduce白皮书以来的发展浪潮,利用Hadoop开源生态系统或者类似系统来处理大数据已经成为业界的基本需求。

尽管操作门槛一降再降,但公司在开发自己的数据处理系统时,还是不可避免地遇到一系列问题。他们经常发现从数据中获取价值所需的投入远远超出了预期。

阅读更多