- 交互式萌芽
- 迭代算法
Hadoop 很合适在一个大年夜的数据集上做单次萌芽,而在很多实际场景中,一旦有 了一个想要的谜底,我们就想再问数据一个问题,这就是交互式萌芽。应用 Hadoop 的话,就意味着要等待从新大年夜磁盘中加载数据,再次处理数据。我们不得不履行一 组雷同的计算作为随后分析的前提,这不相符常理。
迭代算法已经被广泛应用于机械进修义务,如随机梯度降低算法,以及之后 会看到的 PageRank 这类图计算算法。迭代算法是在一个数据集上一遍又一遍地做 一组计算,直到知足一个标准(轮回停止前提)才停止迭代。 在 Hadoop 中实现这种算法,一般须要一系列加载数据的 MapReduce 义务,这些 MapReduce 义务要在 每一个迭代过程中反复运行。对于异常大年夜的数据集,每个迭代过程要花费 100 秒或1000 秒,全部迭代过程异常耗时。
下面你会看到 Spark 若何解决这些问题。如 Hadoop 一样,Spark 也是运行在 一个常见的硬件设备的机械集群上。Spark 中的一个核心抽象是弹性分布式数据集(RDD)。RDD 是由 Spark 应用创建的(在Spark Driver上),由集群治理,如下图。
Spark 供给一个弹性分布式数据集,可以认为它是一个分布式的常驻内存的数组。
Apache Spark 与 Hadoop 类似,数据分布式存储在办事器的集群或者是“节点”上。 不合的是,Spark 将数据保存在内存(RAM)中,Hadoop 把数据保存在磁盘(机械 硬盘或者 SSD 固态硬盘)中。
基于内存的数据处理
Spark 履行的大年夜部分操作都是在随机拜访内存中(RAM)进行。Spark 是基于内 存的,而 Hadoop Map/Reduce 是次序处理数据,所以 Spark 比 Hadoop 更合适处理 随机拜访的图数据。
Spark 的关键好处在于交互式萌芽和迭代处理过程中在内存中缓存 RDD。缓存 起来的 RDD 可以避免每次从新处理父 RDD 链,而只须要直接返回父 RDD 计算后 的缓存结不雅。
天然的,这意味着要用到 Spark 的基于内存的计算处理特点,请求集群中的机 器内存要足够大年夜。如果可用内存不敷,那么 Spark 就会优雅地溢出数据稻磁逄,以 包管 Spark 能持续运行。
三个分布式数据块经由过程 Hadoop 分布式文件体系(HDFS)保持两个副本。
当然 Spark 集群也须要一个持久化存储数据的处所,并且还如果分布式存储系 统才行,可选的有 HDFS、Cassandra 和亚马逊的 S3。
【编辑推荐】
- Spark法度榜样运行常见缺点解决办法以及优化
- Hadoop情况中治理大年夜数据存储八大年夜技能
- Hive、MapReduce、Spark分布式生成独一数值型ID
- Spark名词解释及关系
- Hadoop常见缺点和处理方法
推荐阅读
在当今信息化的数据时代,数据成为了当局和企事业单位最值钱的也是最有价值的器械,而最有价值的┞封些数据主如果存放在数据库傍边, 是以针对IT治理或数据库保护人员来说,数据的备份就是>>>详细阅读
地址:http://www.17bianji.com/lsqh/34855.html
1/2 1