42、大数据与Scala:从MapReduce到动态调用

大数据与Scala:从MapReduce到动态调用

1. 超越MapReduce

在大数据处理领域,实时处理事件的需求日益增长。然而,MapReduce仅适用于批处理作业,HDFS也只是最近才支持文件的增量更新,而且大多数Hadoop工具尚未支持这一特性。

这种趋势促使了新工具的诞生,例如Storm,它是一个集群式事件处理系统。此外,MapReduce还存在性能限制,如过多的磁盘I/O,以及编程API和底层模型使用困难等问题。

大多数第一代技术都有其局限性,最终会被替代。主要的Hadoop供应商最近采用了名为Spark的MapReduce替代方案。Spark支持批处理和流处理模式,用Scala编写,与MapReduce相比,性能更优,部分原因是它在处理步骤之间将数据缓存在内存中。更重要的是,Spark提供了像Scalding那样直观的API,简洁而富有表现力。

Scalding和Cascading使用管道隐喻,而Spark使用弹性分布式数据集(RDD),这是一种分布在集群上的内存数据结构。它具有弹性,如果某个节点出现故障,Spark知道如何从源数据中重建缺失的部分。

以下是一个用Spark实现的单词计数示例:

// src/main/scala/progscala2/bigdata/WordCountSpark.scalaX
package bigdata
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
object SparkWordCount {
  de
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值