- 博客(9)
- 资源 (9)
- 收藏
- 关注
原创 Spark核心原理 - 消息通信分析
Spark将通信层设计的非常巧妙,融合了各种设计/架构模式,将一个分布式集群系统的通信层细节完全屏蔽,这样在上层的计算框架的设计中能够获得很好的灵活性。同时,如果上层想要增加各种新的特性,或者对来自不同企业或组织的程序员贡献的特性,也能够很容易地增加进来,可以避开复杂的通信层而将注意力集中在上层计算框架的处理和优化上,入手难度非常小。另外,对上层计算框架中的各个核心组件的开发、功能增强,以及Bug...
2018-05-30 01:51:22 1809
原创 Spark存储分析 - 共享变量
多个task想要共享某个变量,Spark为此提供了两个共享变量,一种是Broadcast Variable(广播变量),另一种是Accumulator(累加变量)。Broadcast Variable会将使用到的变量,仅仅为每个节点拷贝一份,更大的用处是优化性能,减少网络传输以及内存消耗。Accumulator则可以让多个task共同操作一份变量,主要可以进行累加操作。Broadcast 广播变量...
2018-05-30 01:35:20 417
原创 Spark存储分析 - Shuffle分析
Shuffle简介在MapReduce框架中,shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。Spark作为MapReduce框架的一种实现,自然也实现了shuffle的逻辑,本文就深入研究Spark的shuffle是如何实现的,有什么优缺点。 Shuffle的...
2018-05-20 14:32:19 1092
原创 Spark存储分析 - 存储架构
Storage模块负责了Spark计算过程中所有的存储,包括基于Disk的和基于Memory的。用户在实际编程中,面对的是RDD,可以将RDD的数据通过调用org.apache.spark.rdd.RDD#cache将数据持久化;持久化的动作都是由Storage模块完成的。包括Shuffle过程中的数据,也都是由Storage模块管理的。可以说,RDD实现了用户的逻辑,而Storage则管理了用户...
2018-05-20 12:38:58 943
原创 Spark读取HBase数据源
读取HDFS相关的数据源时,大量使用mapreduce封装的读取数据源的方式,而一个mapreduce job会依赖InputFormat对读取的数据进行格式校验、输入切分等操作。读取HBase数据源,则使用了TableInputFormat。先来看看InputFormat。InputFormatInputFormat是mapreduce提供的数据源格式接口,也就是说,通过该接口可以支持读取各种各...
2018-05-03 22:05:17 2837 2
原创 RDD分区2GB限制
spark处理较大的数据时,遇到了分区2G限制的问题。问题来源:500G原数据存储在HBase上,Spark从HBase读取数据这些数据进行处理,任务资源分配如下:--executor-memory 12G \--executor-cores 6 \--conf spark.yarn.driver.memoryOverhead=2048 \--conf spark.yarn.executor...
2018-05-02 12:32:34 889 1
原创 Spark的计算本地性
Spark 不同的 Locality LevelPROCESS_LOCAL: 数据和 task 在同一个executor jvm 中,最好的就是这种 locality。NODE_LOCAL: 数据在同一个节点上。比如数据在同一个节点的另一个 executor上;或在 HDFS 上,恰好有 block 在同一个节点上。速度比 PROCESS_LOCAL 稍慢,因为数据需要在不同进程之间传递或从文件中...
2018-05-02 08:52:41 1189
Rufus启动盘制作
2016-10-17
EasyBCD 启动加载项工具
2016-10-17
Rufus启动盘制作工具
2016-10-17
protobuf-2.5.0.tar.gz
2015-12-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人