Spark
文章平均质量分 84
打怪的蚂蚁
这个作者很懒,什么都没留下…
展开
-
Spark SQL笔记——技术点汇总
目录· 概述· 原理 · 组成 · 执行流程 · 性能· API · 应用程序模板 · 通用读写方法 · RDD转为DataFrame · Parquet文件数据源 · JSON文件数据源 · Hive数据源 · 数据库JDBC数据源 · DataFrame Operation转载 2017-08-15 11:23:07 · 1207 阅读 · 0 评论 -
Spark日志清洗一般流程(Python版)
Spark 1.6.1 Python 2.7.11前言整理了一下使用spark来进行日志清洗及数据处理的套路,这里以pyspark为例pyspark的启动任务套路对于使用spark作为查询清洗工具而言,启动spark的套路主要使用sh文件进行终端带参数启动,启动后开始调用sh传递处理参数,并且构造好sparkconf后传递提交(spark-s转载 2017-05-16 19:48:13 · 2360 阅读 · 0 评论 -
Apache Spark 内存管理详解
Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色。理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行性能调优。本文旨在梳理出 Spark 内存管理的脉络,抛砖引玉,引出读者对这个话题的深入探讨。本文中阐述的原理基于 Spark 2.1 版本,阅读本文需要读者有一定的 Spark 和 Java 基础,了解 RDD、Shuff转载 2017-04-06 10:49:48 · 758 阅读 · 0 评论 -
The RDD API By Example
Our research group has a very strong focus on using and improving Apache Spark to solve real world programs. In order to do this we need to have a very solid understanding of the capabilities of Spark转载 2017-04-12 10:22:17 · 473 阅读 · 0 评论 -
spark之RDD
RDD概念与特性RDD是Spark最重要的抽象。spark统一建立在抽象的RDD之上。设计一个通用的编程抽象,使得spark可以应对各种场合的大数据情景。RDD模型将不同的组件融合到一起,选用其中的几个/所有,可以应付各种不同的场景。解决了mr的缺陷 1. 弹性分布式数据集Resilient Distributed Dataset。 2. 只读分区数据集,final修饰的转载 2017-04-02 11:36:31 · 618 阅读 · 0 评论 -
Spark运行流程
问题导读1.Spark运行包含哪些流程?2.本文认为Spark运行架构有哪些特点?3.DAGScheduler的作用是什么?4. RDD在Spark架构中是如何运行的?5.Spark on Standalone运行包含哪些过程?1.Spark运行基本流程参见下面示意图1.构建Spark Application的运行环境(启动Spark转载 2017-03-23 11:38:04 · 2266 阅读 · 0 评论 -
spark调度分析: DAGScheduler, TaskScheduler, SchedulerBackend
1、Runtime是如何执行的?2、DAGScheduler主要职能有哪些?3、TaskScheduler主要职能有哪些?4、SchedulerBackend主要职能有哪些?Spark Runtime里的主要层次分析,梳理Runtime组件和执行流程, DAGSchedulerJob=多个stage,Stage=多个同种task, Task分为S转载 2017-03-22 13:56:45 · 580 阅读 · 0 评论 -
Spark分析之Job Scheduling Process
经过前面文章的SparkContext、DAGScheduler、TaskScheduler分析,再从总体上了解Spark Job的调度流程1、SparkContext将job的RDD DAG图提交给DAGScheduler;2、DAGScheduler将job分解成Stage DAG,将每个Stage的Task封装成TaskSet提交给TaskScheduler;窄依原创 2017-03-20 20:20:48 · 391 阅读 · 0 评论 -
Spark核心概念
1、Application 基于spark的用户程序,包含了一个Driver Program以及集群上中多个executor; spark中只要有一个sparkcontext就是一个application; 启动一个spark-shell也是一个application,因为在启动shark-shell时就内置了一个sc(SparkContext的实例);原创 2017-03-20 20:48:10 · 427 阅读 · 0 评论 -
谈谈RDD、DataFrame、Dataset的区别和各自的优势
在spark中,RDD、DataFrame、Dataset是最常用的数据类型,本博文给出笔者在使用的过程中体会到的区别和各自的优势 共性:1、RDD、DataFrame、Dataset全都是spark平台下的分布式弹性数据集,为处理超大型数据提供便利2、三者都有惰性机制,在进行创建、转换,如map方法时,不会立即执行,只有在遇到Action如foreach时,三者才转载 2017-05-16 20:00:58 · 1192 阅读 · 0 评论 -
Spark性能优化指南——高级篇
前言继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。数据倾斜调优调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据转载 2017-05-22 18:59:13 · 295 阅读 · 0 评论 -
Spark Streaming笔记——技术点汇总
目录· 概况· 原理· API · DStream · WordCount示例 · Input DStream · Transformation Operation · Output Operation · 缓存与持久化 · Checkpoint· 性能调优 · 降低批次处理时间 · 设置合理转载 2017-08-15 11:21:16 · 516 阅读 · 0 评论 -
Spark Streaming应用与实战全攻略
Spark Streaming应用与实战系列包括以下六部分内容:背景与架构改造通过代码实现具体细节,并运行项目对Streaming监控的介绍以及解决实际问题对项目做压测与相关的优化Streaming持续优化之HBase管理Streaming任务本篇为第一部分,包括背景与架构改造、通过代码实现具体细节并运行项目、对Streaming监控的介绍以及解决实际问题、对项目做压测与相关的优化转载 2017-08-14 18:38:26 · 805 阅读 · 0 评论 -
Spark排错与优化
一. 运维1. Master挂掉,standby重启也失效Master默认使用512M内存,当集群中运行的任务特别多时,就会挂掉,原因是master会读取每个task的event log日志去生成spark ui,内存不足自然会OOM,可以在master的运行日志中看到,通过HA启动的master自然也会因为这个原因失败。解决增加Master的内存占用,在M转载 2017-07-04 19:49:25 · 631 阅读 · 0 评论 -
Spark踩坑记——Spark Streaming+Kafka
前言在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark streaming从kafka中不断拉取数据进行词频统计。本文首先对spark streaming嵌入kafka的方式进行归纳总结,之后简单阐述Spark streaming+kafka在舆情项目中的应用,最后将自己转载 2017-08-16 16:47:53 · 492 阅读 · 0 评论 -
spark streaming集成kafka接收数据的方式
spark streaming是以batch的方式来消费,strom是准实时一条一条的消费。当然也可以使用trident和tick的方式来实现batch消费(官方叫做mini batch)。效率嘛,有待验证。不过这两种方式都是先把数据从kafka中读取出来,然后缓存在内存或者第三方,再定时处理。如果这时候集群退出,而偏移量又没处理好的话,数据就丢掉了。而spark streaming提供了转载 2017-08-02 15:51:00 · 1232 阅读 · 0 评论 -
Spark SQL 之 Join 实现
Join作为SQL中一个重要语法特性,几乎所有稍微复杂一点的数据分析场景都离不开Join,如今Spark SQL(Dataset/DataFrame)已经成为Spark应用程序开发的主流,作为开发者,我们有必要了解Join在Spark中是如何组织运行的。SparkSQL总体流程介绍在阐述Join实现之前,我们首先简单介绍SparkSQL的总体流程,一般地,我们有两种方式使用Spar转载 2017-08-16 09:48:54 · 752 阅读 · 0 评论 -
Spark性能调优-总结分享
1、Spark调优背景目前Zeppelin已经上线一段时间,Spark作为底层SQL执行引擎,需要进行整体性能调优,来提高SQL查询效率。本文主要给出调优的结论,因为涉及参数很多,故没有很细粒度调优,但整体调优方向是可以得出的。环境:服务器600+,spark 2.0.2,Hadoop 2.6.02、调优结果调优随机选取线上9条SQL,表横轴是调优测试项目,测试在集转载 2017-08-01 18:01:25 · 7114 阅读 · 0 评论 -
Spark性能优化指南——基础篇
前言在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。在美团•大众点评,已经有很多同学在各种项目中尝试使用Spark。大多数同学(包括笔者在内),最初开始尝试使用Spark的原因很简单,主要就是为了让大数据计算作业的执行速转载 2017-05-22 19:00:32 · 249 阅读 · 0 评论 -
RDD缓存策略
park支持将数据集放置在集群的缓存中,以便于数据重用。Spark缓存策略对应的类:class StorageLevel private( private var useDisk_ : Boolean, private var useMemory_ : Boolean, private var useOffHeap_ : Boolean,原创 2017-03-20 20:45:43 · 947 阅读 · 0 评论 -
Spark分析之MemoryStore
private case class MemoryEntry(value: Any, size: Long, deserialized: Boolean)class MemoryStore(blockManager: BlockManager, maxMemory: Long)extends BlockStore(blockManager) { private val entries原创 2017-03-20 20:43:48 · 743 阅读 · 0 评论 -
Spark运行架构
1、构建Spark Application运行环境;在Driver Program中新建SparkContext(包含sparkcontext的程序称为Driver Program);Spark Application运行的表现方式为:在集群上运行着一组独立的executor进程,这些进程由sparkcontext来协调;2、SparkContext向资源管理器申请运行Ex原创 2017-03-20 20:41:50 · 340 阅读 · 0 评论 -
Spark分析之DAGScheduler
DAGScheduler概述:是一个面向Stage层面的调度器;主要入参有:dagScheduler.runJob(rdd, cleanedFunc, partitions, callSite, allowLocal,resultHandler, localProperties.get)rdd: final RDD;cleanedFunc: 计算每个分区的函数;原创 2017-03-20 20:19:14 · 344 阅读 · 0 评论 -
Spark分析之SparkContext启动过程分析
SparkContext作为整个Spark的入口,不管是spark、sparkstreaming、spark sql都需要首先创建一个SparkContext对象,然后基于这个SparkContext进行后续RDD的操作;所以很有必要了解下SparkContext在初始化时干了什么事情。 SparkContext初始化过程主要干了如下几件事情:1、根据SparkContex原创 2017-03-20 20:17:36 · 1125 阅读 · 0 评论 -
详解spark sql用户自定义函数:UDF与UDAF
场景UDAF = USER DEFINED AGGREGATION FUNCTION11上一篇文章已经介绍了spark sql的窗口函数,并知道Spark sql提供了丰富的内置函数供猿友们使用,辣为何还要用户自定义函数呢?实际的业务场景可能很复杂,内置函数hold不住,所以spark sql提供了可扩展的内置函数接口:哥们,你的业务太变态了,我满足不了你,自己按照我的规范去定义一原创 2017-02-09 20:57:18 · 12184 阅读 · 1 评论 -
使用 Apache Spark 的 Lambda 架构
市场上很多玩家已经建造了MapReduce工作流用来日常处理兆兆字节的历史数据。但是谁愿意等待24小时来拿到更新后的分析报告?这篇博客会向你介绍Lambda Architecture,它被设计出来既可以利用批量处理方法,也可以使用流式处理方法。这样我们就可以利用Apache Spark(核心, SQL, 流),Apache Parquet,Twitter Stream等工具处理实时流式数据,实转载 2016-12-14 09:59:39 · 1543 阅读 · 0 评论 -
MongoDB + Spark: 完整的大数据解决方案
Spark介绍按照官方的定义,Spark 是一个通用,快速,适用于大规模数据的处理引擎。通用性:我们可以使用Spark SQL来执行常规分析, Spark Streaming 来流数据处理, 以及用Mlib来执行机器学习等。Java,python,scala及R语言的支持也是其通用性的表现之一。快速: 这个可能是Spark成功的最初原因之一,主要归功于其基于内存的运算方式。当需要处转载 2016-11-22 18:58:44 · 822 阅读 · 1 评论 -
Apache Spark Jobs 性能调优(二)
原文地址:http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/Apache Spark Jobs 性能调优(二)调试资源分配调试并发压缩你的数据结构数据格式在这篇文章中,首先完成在 Part I 中提到的一些东西。作者将尽量覆盖转载 2016-09-29 21:31:48 · 261 阅读 · 0 评论 -
Apache Spark Jobs 性能调优(一)
原文地址:http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-1/Apache Spark Jobs 性能调优(一)Spark 是如何执行程序的选择正确的 Operator什么时候不发生 Shuffle什么情况下 Shuffle 越多越好二次排序结论转载 2016-09-29 21:31:04 · 280 阅读 · 0 评论 -
Spark的性能调优
基本概念和原则首先,要搞清楚Spark的几个基本概念和原则,否则系统的性能调优无从谈起:每一台host上面可以并行N个worker,每一个worker下面可以并行M个executor,task们会被分配到executor上面去执行。Stage指的是一组并行运行的task,stage内部是不能出现shuffle的,因为shuffle的就像篱笆一样阻止了并行task的运行,转载 2016-09-22 19:01:58 · 677 阅读 · 0 评论 -
Spark分析之TaskScheduler
TaskScheduler概述:TaskScheduler是一个可插拔任务调度接口,通过不同的SchedulerBackend进行任务的调度。主要功能如下:1、一个TaskScheduler只为一个SparkContext服务,接收DAGScheduler提交过来的一组组的TaskSet;2、TaskScheduler将task提交到集群中并执行,如果其中某个Task执行失原创 2017-03-20 20:19:53 · 499 阅读 · 0 评论 -
Spark执行模式解析
摘要:本文主要讲了Spark几种不同的执行模式以及其原理一、执行模式提交脚本常见的语法:[plain] view plain copy ./bin/spark-submit \ --class --master \ --deploy-mode \ --conf = \ ... #原创 2017-03-07 17:23:44 · 298 阅读 · 0 评论 -
Spark On YARN
为什么要使用YARN?数据共享、资源利用率、更方便的管理集群等。详情参见:http://www.cnblogs.com/luogankun/p/3887019.html Spark YARN版本编译编译hadoop对应的支持YARN的Spark版本export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:R原创 2017-03-20 20:35:13 · 351 阅读 · 0 评论 -
Spark分析之Standalone运行过程分析
一、集群启动过程--启动Master$SPARK_HOME/sbin/start-master.shstart-master.sh脚本关键内容:spark-daemon.sh start org.apache.spark.deploy.master.Master 1 --ip $SPARK_MASTER_IP --port $SPARK_MASTER_PORT --we原创 2017-03-20 20:34:36 · 354 阅读 · 0 评论 -
Spark分析之Dependency
在Spark中,每一个RDD是对于数据集在某一状态下的表现形式,比如说:map、filter、group by等都算一次操作,这个状态有可能是从前一状态转换而来的;因此换句话说一个RDD可能与之前的RDD(s)有依赖关系;RDD之间存在依赖关系;根据依赖关系的不同,可以将RDD分成两种不同的类型:宽依赖和窄依赖。窄依赖:一个父RDD的partition至多被子RDD的某原创 2017-03-20 20:33:49 · 444 阅读 · 1 评论 -
Spark分析之Master、Worker以及Application三者之间如何建立连接
Master.preStart(){ webUi.bind() context.system.scheduler.schedule(0 millis, WORKER_TIMEOUT millis, self, CheckForWorkerTimeOut) //定时任务检测是否有DEAD WORKER需要移除 case CheckForWorkerTimeOut => { t原创 2017-03-20 20:33:04 · 2522 阅读 · 0 评论 -
Spark分析之Worker
override def preStart() { webUi = new WorkerWebUI(this, workDir, Some(webUiPort)) webUi.bind() //创建并绑定UI registerWithMaster() //注册到Master}def tryRegisterAllMasters() { for (master原创 2017-03-20 20:32:14 · 422 阅读 · 0 评论 -
Spark分析之Master
override def preStart() { logInfo("Starting Spark master at " + masterUrl) webUi.bind() //绑定WEBUI masterWebUiUrl = "http://" + masterPublicAddress + ":" + webUi.boundPort context.sy原创 2017-03-20 20:31:26 · 974 阅读 · 0 评论 -
Spark数据本地性
1、文件系统本地性 第一次运行时数据不在内存中,需要从HDFS上取,任务最好运行在数据所在的节点上;2、内存本地性 第二次运行,数据已经在内存中,所有任务最好运行在该数据所在内存的节点上;3、LRU置换 如果数据只缓存在内存中而并没有缓存到磁盘上,此时数据被置换出内存,则从HDFS上读取; 如果数据不仅缓存到内存而且还缓存到磁盘上,此时数据被原创 2017-03-20 20:27:30 · 554 阅读 · 0 评论 -
Spark分析之BlockManager
BlockManager中存储block的流程: doPut()方法 入参:blockId, data, level, tellMaster1)为block创建BlockInfo并加锁使其不能被其他线程访问;2)按照block的存储级别:useMemory, useOffHeap, useDisk进行存储,并标识该block可以被其他线程访问; 注:只要使用了u原创 2017-03-20 20:25:30 · 718 阅读 · 0 评论