Spark
文章平均质量分 75
sbq63683210
这个作者很懒,什么都没留下…
展开
-
Spark源码学习——用IntelliJ IDEA看spark源码
windows + Intellij IDEA打造Spark源码阅读环境1.Spark源码阅读环境的准备Spark源码是有Scala语言写成的,目前,IDEA对Scala的支持要比eclipse要好,大多数人会选在在IDEA上完成Spark平台应用的开发。因此,Spark源码阅读的IDE理所当然的选择了IDEA。本文介绍的是Windows下的各项配置方法(默原创 2016-05-28 13:55:02 · 8783 阅读 · 0 评论 -
Spark源码学习(7)——Broadcast
本文要解决的问题:从源码角度学习一下Spark中Broadcast板块的工作过程和实现细节。Broadcast变量是Spark所支持的两种共享变量。主要共享分布式计算过程中各个task都会用到的只读变量。广播变量允许程序员在每台机器上保持一个只读变量的缓存,而不是发送它的一个副本任务。他们可以用于:给一个大量输入数据集的副本以有效的拷贝到每个节点。Spark也尝试使用高效广播算法来降低通信成本。以下原创 2016-06-18 14:27:03 · 1085 阅读 · 0 评论 -
Spark源码学习(4)——Scheduler
本文要解决的问题: 从scheduler各个类的具体方法阅读源码,进一步了解Spark的scheduler的工作原理和过程。Scheduler的基本过程用户提交的Job到DAGScheduler后,会封装成ActiveJob,同时启动JobWaiter监听作业的完成情况。同时依据job中RDD的dependency和dependency属性(窄依赖NarrowDependency,宽依赖Shuff原创 2016-06-13 22:05:13 · 1676 阅读 · 1 评论 -
Spark源码学习(8)——NetWork
本文要解决的问题:通过对Spark源码的分析,对它Network实现模块有更加深入的了解。网络管理,由于分布式集群,那么无论master还是worker都离不开网络通讯。Network包位于核心源码org.apache.spark.network中。ConnectionConnection是一个抽象,它有两个子类ReceivingConnection、SendingConn原创 2016-06-18 15:36:44 · 779 阅读 · 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 · 1268 阅读 · 0 评论 -
Spark进阶学习——Stage划分
本文要解决的问题:由于近期重点需要研究Spark的调度优化问题,所以对这一块进行重点分析。 本文主要讨论Spark中Stage的划分。当rdd触发action操作之后,会调用SparkContext的runJob方法,最后调用的DAGScheduler.handleJobSubmitted方法完成整个job的提交。然后DAGScheduler根据RDD的lineage进行Stage划分,再生成Ta原创 2016-06-22 16:32:14 · 965 阅读 · 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 · 2044 阅读 · 0 评论 -
spark + ansj 对大数据量中文进行分词
本文要解决的问题:实现将Spark与中文分词源码(Ansj)相结合,进行一系列中文分词操作。目前的分词器大部分都是单机服务器进行分词,或者使用hadoop mapreduce对存储在hdfs中大量的数据文本进行分词。由于mapreduce的速度较慢,相对spark来说代码书写较繁琐。本文使用 spark + ansj对存储在hdfs中的中文文本数据进行分词。 首先下载ansj源码文件,下载地址为ht原创 2016-08-03 13:40:47 · 2508 阅读 · 0 评论 -
搭建Spark2.0源码研读和代码调试的开发环境
搭建Spark源码研读和代码调试的开发环境Table of Contents源码获取与编译从Github上获取Spark源码编译Spark项目源码导入与代码运行导入源码到Intellij IDEA 16运行实例代码1. 配置运行参数2. 添加缺失的flume sink源代码3. 添加运行依赖的jars4. 成功运行实例代码单步原创 2016-12-15 15:11:47 · 2815 阅读 · 0 评论 -
Spark 体系架构
首先来看一张Spark 1.3.0 官方给出的图片,如下:在这张图中,你会看到很多的术语 ,诸如“executor”, “task”, “cache”, “Worker Node” 等。原作者表示,在他开始学spark的时候,上述图是唯一一张可以找到的图片(Spark 1.3.0),形势很不乐观。更加不幸地是,这张图并没有很好地表达出Spark内在的一些概念。因此,通过不断地学习,原创 2017-02-26 16:02:40 · 3064 阅读 · 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 · 888 阅读 · 0 评论 -
Spark性能调优——基础篇
本文要解决的问题: Spark在使用过程中不可避免的需要进行一系列的性能优化,本文就Spark性能调优的基础部分进行总结和归纳(开发调优和资源调优),参考了不少前辈的文章,在此非常感谢。目的在大数据的领域,Spark已经成为了不可或缺的一部分,被越来越多的人使用。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常原创 2016-06-15 15:51:53 · 7483 阅读 · 0 评论 -
Spark性能调优——扩展篇
本文要解决的问题:从更深层次考虑,对Spark进行性能调优。目的继基础篇分析了开发调优与资源调优之后,本文作为拓展篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。数据倾斜调优简述有时候,大家可能会遇到大数据开发过程中一个比较棘手的问题,那就是数据倾斜,此时Spark作业的性能会比预期差很多,数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的转载 2016-06-16 12:16:59 · 10885 阅读 · 0 评论 -
Spark学习——Job的提交和运行
Spark学习——Job的提交和运行本篇文章主要解决的问题 1.Spark实验环境搭建流程 2.Spark中job生成和运行的具体步骤 3.Spark布置环境中组件构成分成哪几个部分本文以wordCount为例,详细说明spark创建和运行job的过程,重点是在进程及线程的创建。**实验环境搭建** 在进行后续操作前,确保下列条件已满足。 下载spark binary 安装scala原创 2016-06-01 11:01:28 · 1640 阅读 · 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 · 1676 阅读 · 2 评论 -
Spark学习——利用Scala语言开发Spark应用程序
Spark学习——利用Scala语言开发Spark应用程序Spark内核是由Scala语言开发的,因此使用Scala语言开发Spark应用程序是自然而然的事情。如果你对Scala语言还不太熟悉,可以阅读网络教程A Scala Tutorial for Java Programmers或者相关Scala书籍进行学习。本文将介绍3个Scala Spark编程实例,分别是WordCount、TopK和Sp原创 2016-06-07 20:59:21 · 6199 阅读 · 0 评论 -
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 · 5288 阅读 · 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 · 1253 阅读 · 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 · 2120 阅读 · 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 · 2427 阅读 · 0 评论 -
Spark源码学习(3)——Job Runtime
本文要解决的问题: 本文主要说明作业提交的的具体运行环境,通过学习,对作业的运行有更加深入的理解。基本流程这里从SparkContext中的runJob方法开始跟踪它的源码过程。下面的图简要的描述了Job运行的过程 runJob的源码如下: 在org.apache.spark.SparkContext.scala目录下,找到runJob方法,/** * Run a function on原创 2016-06-12 17:19:13 · 1364 阅读 · 0 评论 -
Spark源码学习(5)——Storage
本文要解决的问题: 主要研究Spark的存储模块,通过阅读源码,对分布式存储有更深的理解。BlockManagerStoragef模块主要分为两层:1):负责向BlockManagerMaster上报blaock信息,master与slave之间的信息传递通 过m-s的模式传递2):数据层 负责存储和读取信息,主要在disk、memory、tachy原创 2016-06-14 13:35:39 · 3693 阅读 · 0 评论 -
SSH免密登录(笔记)
三台主机,分别是Master,Slave1,Slave2,需要他们之间能够互相免密访问。1.首先修改hosts文件,vim /etc/hosts2.如果没有安装SSH,则先进行安装 yum -y install openssh-server3.然后修改vim /etc/ssh/sshd_config RSAAuthentication yes PubkeyAuthentication yes Au原创 2016-12-16 10:46:40 · 1876 阅读 · 0 评论