Spark

1. Spark介绍

1.1. 什么是Spark

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。 Spark 是加州大学伯克利分校的 AMP实验室所开源的类 Hadoop MapReduce 的通用并行计算框架, Spark 拥有 Hadoop MapReduce 所具 有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以缓存在内存中,从而不再需要读写 HDFS , 减少磁盘数据交互,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的算法。 Spark 是 Scala 编写,方便快速编程。

1.2. Spark 与MR 的区别

都是分布式计算框架, Spark 计算中间结果基于内存缓存, MapReduce 基于 HDFS 存储。也正因此, Spark 处理数据的能力一般是 MR 的三到五倍以上, Spark 中除了基于内存计算这一个计算快的原因, 还有 DAG(DAGShecdule) 有向无环图来切分任务的执行先后顺序

2. SparkCore

2.1. Partition

2.1.1. 概念

  • Spark RDD 是一种分布式的数据集,由于数据量很大,因此要它被切分并存储在各个结点的分区当 中
  • Spark中,RDD(Resilient Distributed Dataset)是其最基本的抽象数据集,其中每个RDD是由若 干个Partition组成

2.1.2. 分区方式

  • Spark包含两种数据分区方式:HashPartitioner(哈希分区)和RangePartitioner(范围分区)。
  • HashPartitioner(哈希分区)
    • 分区规则为:partitionId = Key.hashCode % numPartitions
    • 有可能产生数据倾斜
  • RangePartitioner(范围分区)
    • 解决数据倾斜问题
    • 基于抽样的思想来对数据进
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值