Spark
文章平均质量分 78
主要包括Spark源码的一系列学习,还有Spark的使用,性能优化等一系列的学习记录,非常能够希望与大家一起学习,共同进步。
sbq63683210
这个作者很懒,什么都没留下…
展开
-
Spark进阶学习——Stage划分
本文要解决的问题:由于近期重点需要研究Spark的调度优化问题,所以对这一块进行重点分析。 本文主要讨论Spark中Stage的划分。当rdd触发action操作之后,会调用SparkContext的runJob方法,最后调用的DAGScheduler.handleJobSubmitted方法完成整个job的提交。然后DAGScheduler根据RDD的lineage进行Stage划分,再生成Ta原创 2016-06-22 16:32:14 · 949 阅读 · 0 评论 -
Spark源码学习(10)——Spark Streaming
本文要解决的问题:从源码级别对Spark Streaming进行简单学习。SummarizeSpark Streaming实现了对实时流数据的高吞吐量、低容错的数据处理API。它的数据来源有很多种:Kafka、Flume、Twitter、ZeroMQ、TCP Scoket等。架构图如下:Streaming接收实时流输入的数据,将其按批划分,然后交给Spark Enign原创 2016-07-08 22:44:04 · 2023 阅读 · 0 评论 -
Spark源码学习(9)——Spark On Yarn
本文要解决的问题:了解Spark在Yarn平台上的运行过程。修改配置文件首先需要修改配置文件spark-env.sh。在这个文件中需要添加两个属性:Export HADOOP_HOME=/../hadoop..ExportHADOOP_CONF_DIR=/../hadoop/etc/hadoop这里,一个是要hadoop的home目录。一个是配置文件目录。还需要配置一个就是spark-default原创 2016-06-20 13:13:01 · 1250 阅读 · 0 评论 -
Spark源码学习(8)——NetWork
本文要解决的问题:通过对Spark源码的分析,对它Network实现模块有更加深入的了解。网络管理,由于分布式集群,那么无论master还是worker都离不开网络通讯。Network包位于核心源码org.apache.spark.network中。ConnectionConnection是一个抽象,它有两个子类ReceivingConnection、SendingConn原创 2016-06-18 15:36:44 · 764 阅读 · 0 评论 -
Spark源码学习(7)——Broadcast
本文要解决的问题:从源码角度学习一下Spark中Broadcast板块的工作过程和实现细节。Broadcast变量是Spark所支持的两种共享变量。主要共享分布式计算过程中各个task都会用到的只读变量。广播变量允许程序员在每台机器上保持一个只读变量的缓存,而不是发送它的一个副本任务。他们可以用于:给一个大量输入数据集的副本以有效的拷贝到每个节点。Spark也尝试使用高效广播算法来降低通信成本。以下原创 2016-06-18 14:27:03 · 1067 阅读 · 0 评论 -
Spark源码学习(6)——Shuffle
本文要解决的问题:通过Spark源码学习,进一步深入了解Shuffle过程。Shuffle 介绍在Map和Reduce之间的过程就是Shuffle,Shuffle的性能直接影响整个Spark的性能。所以Shuffle至关重要。从图中得知,Map输出的结构产生在bucket中。而bucket的数量是map*reduce的个数。这里的每一个bucket都对应一个文件。Map对bucket书是写入数据,而原创 2016-06-17 16:19:03 · 875 阅读 · 0 评论 -
Spark源码学习(5)——Storage
本文要解决的问题: 主要研究Spark的存储模块,通过阅读源码,对分布式存储有更深的理解。BlockManagerStoragef模块主要分为两层:1):负责向BlockManagerMaster上报blaock信息,master与slave之间的信息传递通 过m-s的模式传递2):数据层 负责存储和读取信息,主要在disk、memory、tachy原创 2016-06-14 13:35:39 · 3677 阅读 · 0 评论 -
Spark源码学习(4)——Scheduler
本文要解决的问题: 从scheduler各个类的具体方法阅读源码,进一步了解Spark的scheduler的工作原理和过程。Scheduler的基本过程用户提交的Job到DAGScheduler后,会封装成ActiveJob,同时启动JobWaiter监听作业的完成情况。同时依据job中RDD的dependency和dependency属性(窄依赖NarrowDependency,宽依赖Shuff原创 2016-06-13 22:05:13 · 1653 阅读 · 1 评论 -
Spark源码学习(3)——Job Runtime
本文要解决的问题: 本文主要说明作业提交的的具体运行环境,通过学习,对作业的运行有更加深入的理解。基本流程这里从SparkContext中的runJob方法开始跟踪它的源码过程。下面的图简要的描述了Job运行的过程 runJob的源码如下: 在org.apache.spark.SparkContext.scala目录下,找到runJob方法,/** * Run a function on原创 2016-06-12 17:19:13 · 1326 阅读 · 0 评论 -
Spark源码学习(2)——Spark Submit
本文要解决的问题: 通过查看Spark作业提交的源码,对其作业提交过程有更深的理解。作业提交的基本流程首先需要找到Spark submit过程的源码。在工程路径的spark.deploy.SparkSubmit下, submit是一个单独的进程,首先查看它的main方法:def main(args: Array[String]): Unit = { val appArgs = new S原创 2016-06-11 21:27:59 · 2103 阅读 · 0 评论 -
Spark源码学习(1)——RDD分析
Spark源码学习(1)——RDD分析本文要解决的问题: 从更深层次理解Spark的RDD学习Spark的时候,我们可以从Spark的核心内容看起,即RDD。RDD全称Resilient Distributed DataSets,弹性的分布式数据集。RDD是只读的,不可变的数据集,也拥有很好的容错机制。他有5个主要特性(1)A list of partitions :分片列表,数据能被切分才能做并原创 2016-06-09 23:58:22 · 1239 阅读 · 0 评论 -
Spark的architectue
Spark的architectue本文章主要对Spark的基本架构和重要模块作基本介绍,不会涉及Spark的安装部署以及使用在分析深入源码之前,再从宏观上分析一下spark的主要架构。What is Spark Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce 框架,都是基于map reduce算法所实现的分布式计算框架,拥有Hadoop MapRedu原创 2016-06-02 16:35:24 · 1652 阅读 · 2 评论 -
Spark学习——Spark Streaming:大规模流式数据处理
Spark学习——Spark Streaming:大规模流式数据处理转自:http://www.csdn.net/article/2014-01-27/2818282-Spark-Streaming-big-data摘要:Spark Streaming是大规模流式数据处理的新贵,将流式计算分解成一系列短小的批处理作业。本文阐释了Spark Streaming的架构及编程模型转载 2016-06-07 23:09:34 · 5268 阅读 · 0 评论 -
Spark源码学习——在linux环境下用IDEA看Spark源码
Spark源码学习——在linux环境下用IDEA看Spark源码本篇文章主要解决的问题 1.Spark在Linux下实验环境的搭建一、Spark源码阅读环境的准备本文介绍的是Centos下的各项配置方法下面列举搭建此环境需要的各个组件:JDK的安装(JDK1.7)Scala的安装SBT的安装Git的安装IDEA的安装最后根据安装的环境,导入源码,进行源码的学习,整片文章会讲的非常细原创 2016-06-05 21:24:18 · 2406 阅读 · 0 评论 -
Spark性能调优——扩展篇
本文要解决的问题:从更深层次考虑,对Spark进行性能调优。目的继基础篇分析了开发调优与资源调优之后,本文作为拓展篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。数据倾斜调优简述有时候,大家可能会遇到大数据开发过程中一个比较棘手的问题,那就是数据倾斜,此时Spark作业的性能会比预期差很多,数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的转载 2016-06-16 12:16:59 · 10855 阅读 · 0 评论 -
Spark性能调优——基础篇
本文要解决的问题: Spark在使用过程中不可避免的需要进行一系列的性能优化,本文就Spark性能调优的基础部分进行总结和归纳(开发调优和资源调优),参考了不少前辈的文章,在此非常感谢。目的在大数据的领域,Spark已经成为了不可或缺的一部分,被越来越多的人使用。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常原创 2016-06-15 15:51:53 · 7462 阅读 · 0 评论