Spark Core
霄嵩
这个作者很懒,什么都没留下…
展开
-
Scala函数式编程进阶(匿名函数、高阶函数、函数类型推断、Currying)与Spark源码鉴赏
Spark源码中的Scala类函数式编程函数是第一等公民,在Spark源码中函数随处可见。函数可赋值给变量,同理变量也可赋值给函数。RDD.scala1def map[U: classTag](f: T => U): RDD[U] = withScope [...(f: T => U)中,f代表函数,T代表函数f的参数转载 2016-08-03 15:00:40 · 574 阅读 · 0 评论 -
Spark运行架构-简要版
1、构建Spark Application运行环境:在Driver Program中新建SparkContext(包含SparkContext的挰序称为Driver Program);Spark Application运行的表现方式为:在集群上运行着一组独立的executor进程,这些进程由SparkContext来协调。2、Spark Context向资源管理器申请运行E原创 2017-06-10 22:11:16 · 315 阅读 · 0 评论 -
Spark作业执行原理
Spark的作业和任务调度系统是Spark的核心,它能够有效地进行调度根本原因是对任务划分DAG和容错,使得它对低层到顶层的各个模块之间的调用和处理显得游刃有余。下面介绍一些相关术语。作业(Job):RDD中由行动操作所生成的一个或多个调度阶段。调度阶段(Stage):每个Job作业会因为RDD之间的依赖关系拆分成多组任务集合,称为调度阶段,简称阶段,也叫做任务集(TaskSet)。调原创 2017-09-05 09:16:51 · 608 阅读 · 0 评论 -
图解SparkContext创建过程
1.SparkContext构建的顶级三大核心对象:DAGScheduler、TaskScheduler、ShedulerBackend,其中:1)DAGScheduler是面向Job的Stage的高层调度器;2)TaskScheduler是一个接口,根据具体的Cluster Manager的不同会有不同的实现,Standalone模式下具体的实现是TaskSchedulerImpl;原创 2017-09-21 15:09:34 · 867 阅读 · 0 评论 -
RDD的Lineage和Cache
RDD A---RDD B---RDD C---RDD D中,如果RDD D中的分区数据丢失,是只需要在RDD C的分区上重算,还是需要从 RDDA开始从头重新计算?答:1. 如果 A-B-C-D 他们在一个Stage中,也就是说 RDD-D 与RDD-C 依赖关系属于 窄依赖,不产生Shuffle的话,RDD-D的某个分区数据 将会从 RDD-C 重新计算,此时需要判断RDD原创 2018-01-25 17:33:42 · 587 阅读 · 0 评论 -
Spark性能调优一:在实际项目中分配更多资源
分配更多资源:性能调优的王道,就是增加和分配更多的资源,性能和速度上的提升,是显而易见的。基本上,在一定范围之内,增加资源与性能的提升是成正比的。当完成了一个复杂的spark作业之后,进行性能调优的时候,首先第一步,就是要调节最优的资源配置。在这个基础之上,如果你的Spark作业能够分配的资源达到了你的能力范围的顶端之后,无法再分配更多的资源了,公司资源也有限,那么此时才去考虑做后面的那些性能调优...原创 2018-03-10 10:16:41 · 951 阅读 · 0 评论 -
某公司笔试面试题
面试题描述: 实现代码如下:package Testimport org.apache.spark.{SparkConf, SparkContext}import scala.collection.mutable.ArrayBuffer/** * Created by TG. *//** 测试数据如下:userA locationA 8 60userA lo...原创 2018-03-11 11:26:32 · 378 阅读 · 0 评论 -
什么是元数据(元数据)?
的英文什么数据元型态任何文件系统 - 中的数据分为数据状语从句:元型态数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限,文件拥有者以及文件数据块的分布信息(索引节点的......)等等。在集群文件系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。管理...转载 2018-06-08 14:23:24 · 14296 阅读 · 0 评论 -
Spark中的RDD持久化
import org.apache.log4j.{Level, Logger}import org.apache.spark.{SparkConf, SparkContext}/** * @author Jacky * RDD持久化 */object Scala_PersistDemo { def main(args: Array[String]): Un...原创 2018-12-15 23:27:51 · 236 阅读 · 0 评论 -
Spark中的自定义Partitioner分区器
import org.apache.spark.Partitionerimport scala.collection.mutable/** * @author Jacky * 自定义分区器 * 自定义类Scala_HostNamePartitioner继承Partitioner分区器这个抽象类 */class Scala_HostName...原创 2018-12-16 00:42:46 · 738 阅读 · 0 评论 -
Spark Standalong模式运行原理剖析之天龙八步
一、概述 Apache Spark是一种快速和通用的集群计算系统。它提供Java,Scala,Python和R中的高级API,以及支持一般执行图的优化引擎。它还支持一组丰富的更高级别的工具,包括Spark SQL用于SQL和结构化数据的处理,MLlib机器学习,GraphX用于图形处理和Spark Streaming。 Spark除了在Mesos或YARN群集管理器上运行,原创 2017-05-18 11:30:32 · 662 阅读 · 0 评论 -
Spark RDD算子—补充
一、基本RDD转换运算:1、randomSplit运算可以将整个集合元素,以随机数的方式按照比例分为多个RDD。此运算会返回Array[org.apache.spark.rdd.RDD[Int]]。val intRDD=sc.parallelize(List(3,1,2,5,5))val sRDD=intRDD.randomSplit(Array(0.4,0.6))sRDD原创 2016-12-24 18:07:35 · 724 阅读 · 0 评论 -
统计没有农产品市场的省份有哪些
/** * 统计没有农产品市场的省份有哪些 */ //有农产品市场的省份 val productRDD=sc.textFile("file:///home/tg/datas/product.txt") //全国所有的省份 val provsRDD=sc.textFile("file:///home/tg/datas/allpr原创 2016-11-15 10:19:19 · 848 阅读 · 0 评论 -
Spark面试经典系列之数据倾斜: 数据倾斜之痛
本課主題Spark性能真正的杀手数据倾斜是多么痛Spark性能真正的杀手数据倾斜兩大直接致命性的的后果:数据倾斜最杀人就是 Out-Of-Memory (OOM),一般OOM都是由於数据倾斜所致!速度变慢、特别慢、非常慢、极端的慢、不可接受的慢。数据倾斜基本特征:个别 Task处理大量数据20%和80%,基本上都存在业务热点问题,这是现实问题!转载 2016-08-06 21:39:59 · 506 阅读 · 0 评论 -
Spark架构剖析
Spark Deploymet(部署)软件中有哪些实体,实体间如何协调工作。Cluster Manager负责管理和分配集群资源Driver Program相当于项目经理Executor 相当于软件工程师Resource:Core、Memeory、IO:磁盘IO、网络IOCoarse Grained 粗粒度DAG Scheduler DAG调度,是高层的调度器原创 2016-09-12 22:47:50 · 405 阅读 · 0 评论 -
RDD算子
一、RDD算子可以分为三大类1、Value数据类型的Transformation算子2、Key-Value数据类型的Transformation算子3、Action算子,这类算子会触发SparkContext提交Job作业。二、Value型Transformation算子1、输入分区与输出分区一对一型mapflatMapmapPartitionsglom:将原创 2016-09-25 21:14:43 · 1875 阅读 · 0 评论 -
Spark源码学习——在Linux环境下使用IDEA看Spark源码
Spark源码学习——在Linux环境下使用IDEA看Spark源码本篇文章主要解决的问题 1.Spark在Linux下实验环境的搭建一、Spark源码阅读环境的准备本文介绍的是Centos下的各项配置方法下面列举搭建此环境需要的各个组件:JDK的安装(JDK1.7)Scala的安装SBT的安装Git的安装IDEA的安装最后根据安装的环境,导原创 2016-09-25 21:41:29 · 475 阅读 · 0 评论 -
Spark RDD部分算子应用案例
package Basicimport org.apache.spark.{SparkConf, SparkContext}import scala.collection.mutable.ArrayBuffer/** * Created by tg on 10/23/16. */object OperatorTest { def main(args: Arra原创 2016-10-23 22:37:46 · 1146 阅读 · 0 评论 -
Spark中实现TOP N (Java版本)
1、下面是源数据,取出最大的前3个数字。241681034892、开发实现过程如下:package gh.spark.Basic;import java.util.List;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;im原创 2016-10-25 17:36:17 · 2231 阅读 · 0 评论 -
Spark中实现TOP N (Scala版本)
package Basicimport org.apache.spark.{SparkConf, SparkContext}/** * Created by tg on 10/25/16. */object Top3 { def main(args: Array[String]): Unit = { val conf=new SparkCon原创 2016-10-25 17:45:22 · 2473 阅读 · 0 评论 -
Spark中实现分组取TOP N (Scala版本)
1、源数据如下,取出每班成绩的前三名class1 98class2 90class2 92class1 96class1 100class2 89class2 68class1 81class2 902、实现过程package Basicimport org.apache.spark.{SparkConf, SparkContext}原创 2016-10-25 19:15:22 · 7114 阅读 · 0 评论 -
二次排序(Scala版)
1、创建SecondSortKey.scalapackage SecondSort/** * Created by tg on 10/25/16. */class SecondSortKey(val first:Int,val second:Int) extends Ordered[SecondSortKey] with Serializable { over原创 2016-10-25 16:51:53 · 777 阅读 · 0 评论 -
用Scala在IDEA中开发WordCount
package ScalaDemoimport org.apache.spark.{SparkConf, SparkContext}/** * Created by tg on 10/8/16. */object WordCountDemo { def main(args: Array[String]): Unit = { /**原创 2016-10-16 14:57:26 · 1379 阅读 · 0 评论 -
用Java在Eclipse中开发WordCount
package gh.spark.SparkDemo.cores;import java.util.Arrays;import java.util.Iterator;import java.util.List;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRD原创 2016-10-16 17:10:52 · 1132 阅读 · 0 评论 -
reduceByKey与groupByKey的区别
在Spark中,我们知道一切的操作都是基于RDD的。在使用中,RDD有一种非常特殊也是非常实用的format——pair RDD,即RDD的每一行是(key, value)的格式。这种格式很像Python的字典类型,便于针对key进行一些处理。针对pair RDD这样的特殊形式,spark中定义了许多方便的操作,今天主要介绍一下reduceByKey和groupByKey,转载 2016-10-19 12:53:34 · 1609 阅读 · 0 评论 -
统计排名前 3 的省份共同拥有的农产品类型
/** * 统计排名前 3 的省份共同拥有的农产品类型 */ val num=0 val numTest=sc.accumulator(num) //创建累加器 val lines=sc.textFile("file:///home/tg/datas/product.txt") val result=lines.map(m原创 2016-11-14 22:34:37 · 940 阅读 · 0 评论 -
Spark中的共享变量
import org.apache.log4j.{Level, Logger}import org.apache.spark.{SparkConf, SparkContext}/** * @author Jacky * Spark中的共享变量 * 在Spark中,只要不涉及任务的提交,那么所有的代码都在Spark程序的Driver端运行, *...原创 2018-12-16 18:40:03 · 511 阅读 · 0 评论