![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spark
文章平均质量分 83
Xeon-Shao
这个作者很懒,什么都没留下…
展开
-
Spark源码分析:多种部署方式之间的区别与联系
作者:过往记忆从官方的文档我们可以知道, Spark 的部署方式有很多种:local、Standalone、Mesos、YARN…..不同部署方式的后台处理进程是不一样的,但是如果我们从代码的角度来看,其实流程都差不多。从代码中,我们可以得知其实Spark的部署方式其实比官方文档中介绍的还要多,这里我来列举一下:1、local:这种方式是在本地启转载 2016-01-26 11:25:16 · 595 阅读 · 0 评论 -
判断RDD有多少个分区
为了调优和故障排查,经常有必要知道RDD中有多少个Partition。有如下几个方式可以找到这些信息:使用Spark web UI查看任务执行和分区情况当一个stage执行的时候,你可以在Spark UI中查看一个指定stage的分区个数。例如,下面的代码创建了一个有100个元素,4个分区的RDD。然后在将元素收集回driver程序前做了一个虚拟的map任务:scala> val so翻译 2016-01-28 15:58:17 · 7646 阅读 · 0 评论 -
A-Deeper-Understanding-of-Spark-Internals(Spark内核深入理解)
这篇文章是对Spark Submit 2014会议上Aaron Davidson做的报告的PPT内容的整理,报告主要讲了Spark中shuffle过程的调优。做了下整理,加入一些自己的理解。 Goal: Understanding how Spark runs, focus on performance• Major core components:– Execution Mo原创 2016-01-28 21:52:52 · 1018 阅读 · 0 评论 -
Apache Spark Jobs 性能调优(一)
Apache Spark Jobs 性能调优(一)Spark 是如何执行程序的选择正确的 Operator什么时候不发生 Shuffle什么情况下 Shuffle 越多越好二次排序结论当你开始编写 Apache Spark 代码或者浏览公开的 API 的时候,你会遇到各种各样术语,比如transformation,action,RDD 等等。 了解到这些是编转载 2016-01-29 15:23:26 · 666 阅读 · 0 评论 -
Apache Spark Jobs 性能调优(二)
Apache Spark Jobs 性能调优(二)调试资源分配调试并发压缩你的数据结构数据格式在这篇文章中,首先完成在 Part I 中提到的一些东西。作者将尽量覆盖到影响 Spark 程序性能的方方面面,你们将会了解到资源调优,或者如何配置 Spark 以压榨出集群每一分资源。然后我们将讲述调试并发度,这是job性能中最难也是最重要的参数。最后,你将了解到转载 2016-01-29 15:55:22 · 711 阅读 · 0 评论 -
Spark History Server配置及其启动
Spark history Server产生背景以standalone运行模式为例,在运行Spark Application的时候,Spark会提供一个WEBUI列出应用程序的运行时信息;但该WEBUI随着Application的完成(成功/失败)而关闭,也就是说,Spark Application运行完(成功/失败)后,将无法查看Application的历史记录;Spark hi转载 2016-03-16 09:53:16 · 7670 阅读 · 1 评论 -
spark java api通过run as java application运行的方法
先上代码:[python] view plain copy /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed w转载 2016-03-16 14:57:04 · 785 阅读 · 0 评论 -
Spark排错与优化
一. 运维1. Master挂掉,standby重启也失效Master默认使用512M内存,当集群中运行的任务特别多时,就会挂掉,原因是master会读取每个task的event log日志去生成spark ui,内存不足自然会OOM,可以在master的运行日志中看到,通过HA启动的master自然也会因为这个原因失败。解决增加Master的内存占用,在Mas转载 2016-03-30 19:32:34 · 1337 阅读 · 0 评论 -
Spark vs. MapReduce 时间节约66%,计算节约40%
本文转自http://www.csdn.net/article/2014-11-04/2822474,所有权力归原作者所有。虽然本文并没有讲什么实质的东西,但是可以拿来吹牛逼呀~ ⁽⁽ଘ( ˊᵕˋ )ଓ⁾⁾*摘要:本文将介绍基于物品的协同过滤推荐算法案例在TDW Spark与MapReudce上的实现对比,相比于MapReduce,TDW Spark执行时间减少了66%,计算成本降低了转载 2016-03-20 20:46:23 · 602 阅读 · 0 评论 -
Spark之性能优化(重点:并行流数据接收)
问题导读1、如何减少批数据的执行时间?2、Spark有哪些方面的性能优化?3、有哪些错误我们需要关心?(一)减少批数据的执行时间在Spark中有几个优化可以减少批处理的时间。这些可以在优化指南中作了讨论。这节重点讨论几个重要的。数据接收的并行水平通过网络(如kafka,flume,socket等)接收数据需要这些数据反序列化并被保存到转载 2016-03-21 09:41:59 · 6849 阅读 · 0 评论 -
Controlling the number of Partitions in Spark for shuffle transformations (Ex. reduceByKey)
The previous article explored how input partitions are defined by Spark. This short article will describes how partitions are defined when Spark needs to Shuffle dataTransformations which requir转载 2016-01-28 15:05:11 · 567 阅读 · 0 评论 -
避免使用GroupByKey
有两种方法实现wordcount,一种是使用reduceByKey,另一种是使用groupByKey。val words = Array("one", "two", "two", "three", "three", "three")val wordPairsRDD = sc.parallelize(words).map(word => (word, 1))val wordCountsWi原创 2016-01-28 10:41:00 · 2218 阅读 · 0 评论 -
详细探究Spark的shuffle实现
Background在MapReduce框架中,shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。Spark作为MapReduce框架的一种实现,自然也实现了shuffle的逻辑,本文就深入研究Spark的shuffle是如何实现的,有什么优缺点,与Hadoop Ma转载 2016-01-28 10:17:42 · 527 阅读 · 0 评论 -
Spark性能调优
通常我们对一个系统进行性能优化无怪乎两个步骤——性能监控和参数调整,本文主要分享的也是这两方面内容。性能监控工具【Spark监控工具】Spark提供了一些基本的Web监控页面,对于日常监控十分有用。1. Application Web UIhttp://master:4040(默认端口是4040,可以通过spark.ui.port修改)可获得这些信息:(转载 2016-01-26 14:21:35 · 506 阅读 · 0 评论 -
Spark 配置指南
阅读目录应用属性运行时环境Runtime EnvironmentShuffle BehaviorSpark UICompression and SerializationExecution BehaviorNetworkingSchedulingSecuritySpark Streaming集群管理器Cluster Managers目录 [−]Spark转载 2016-01-26 14:25:44 · 844 阅读 · 0 评论 -
Spark优化一则 - 减少Shuffle
看了Spark Summit 2014的A Deeper Understanding of Spark Internals,视频(要科学上网)详细讲解了Spark的工作原理,Slides的45页给原始算法和优化算法。破砂锅用自己3节点的Spark集群试验了这个优化算法,并进一步找到更快的算法。测试数据是Sogou实验室的日志文件前10000000条数据。目标是对日志第2列数据,按照第一个字转载 2016-01-26 14:29:29 · 779 阅读 · 0 评论 -
Spark算子:统计RDD分区中的元素及数量
Spark RDD是被分区的,在生成RDD时候,一般可以指定分区的数量,如果不指定分区数量,当RDD从集合创建时候,则默认为该程序所分配到的资源的CPU核数,如果是从HDFS文件创建,默认为文件的Block数。可以利用RDD的mapPartitionsWithIndex方法来统计每个分区中的元素及数量。关于mapPartitionsWithIndex的介绍可转载 2016-01-26 14:33:20 · 2718 阅读 · 0 评论 -
Spark 部署及示例代码讲解
Spark 部署考虑到读者可能使用“ssh secure shell”这样的工具登陆 Linux,所以解释一下如何设置工具支持中文。如何设置 ssh secure shell 支持中文只需要设置下/etc/sysconfig/i18n 文件内容如清单 1 所示。清单 1. 文件内容LANG="zh_CN.GB18030"SUPPORTED="zh_CN.G转载 2016-01-26 15:55:04 · 789 阅读 · 0 评论 -
在Windows上编译Spark源码
原文转自http://my.oschina.net/u/1452001/blog/344067?fromerr=1iS9kYnS在本机(Windows 8)上安装spark玩一玩,Spark的Quick Start上没有指明具体步骤,自己Build好了之后把步骤记录一下。首先,到Spark的官网上下载Spark的压缩包,然后解压缩到本地文件夹。我下的是Spark 1.1.0原创 2016-01-26 15:57:18 · 1430 阅读 · 0 评论 -
spark内核揭秘-14-Spark性能优化的10大问题及其解决方案
问题1:reduce task数目不合适解决方案:需要根据实际情况调整默认配置,调整方式是修改参数spark.default.parallelism。通常的,reduce数目设置为core数目的2-3倍。数量太大,造成很多小任务,增加启动任务的开销;数目太小,任务运行缓慢。所以要合理修改reduce的task数目即spark.default.parallelism问题2:s转载 2016-01-26 16:36:11 · 488 阅读 · 0 评论 -
Spark算子:RDD键值转换操作(2)–combineByKey、foldByKey
combineByKeydef combineByKey[C](createCombiner: (V) => C, mergeValue: (C, V) => C, mergeCombiners: (C, C) => C): RDD[(K, C)]def combineByKey[C](createCombiner: (V) => C, mergeValue: (C, V) =>转载 2016-01-28 09:28:43 · 798 阅读 · 0 评论 -
Spark的性能调优
下面这些关于Spark的性能调优项,有的是来自官方的,有的是来自别的的工程师,有的则是我自己总结的。基本概念和原则首先,要搞清楚Spark的几个基本概念和原则,否则系统的性能调优无从谈起:每一台host上面可以并行N个worker,每一个worker下面可以并行M个executor,task们会被分配到executor上面去执行。Stage指的是一组并行运行转载 2016-01-28 09:31:40 · 541 阅读 · 0 评论 -
Performance Tuning Tips for Running Spark Applications(重点:数据序列化)
Based on what I have read and experimented so far, I have provided some key factors that can impact the performance of Apache Spark applications, specifically spark streaming. Concurrency and memory转载 2016-03-21 14:30:19 · 748 阅读 · 0 评论 -
Shufflling and repartitioning of RDD’s in apache spark
To write the optimize spark application you should carefully use transformation and actions, if you use wrong transformation and action will make your application slow. So when you are writing applic转载 2016-03-23 08:54:59 · 678 阅读 · 0 评论 -
【文章收藏】阿里云破了四个世界纪录
10月28日,SortBenchmark在官方网站公布了2015年排序竞赛的最终成绩。阿里云用不到7分钟(377秒)就完成了100TB的数据排序,打破了ApacheSpark的纪录23.4分钟。SortBenchmark是全球科技公司的计算奥运会,更早之前Hadoop的纪录是72分钟。SortBenchmark的排序竞赛包含4项比赛,其中GraySort和MinuteSort主要评测计算系转载 2016-10-28 14:38:20 · 490 阅读 · 0 评论 -
Spark入门实战系列--4.Spark运行架构
注】该系列文章以及使用到安装包/测试数据 可以在《倾情大奉送--Spark入门实战系列》获取 1、 Spark运行架构1.1 术语定义lApplication:Spark Application的概念和Hadoop MapReduce中的类似,指的是用户编写的Spark应用程序,包含了一个Driver 功能的代码和分布在集群中多个节点上运行的Executor代码;lDriver:S转载 2016-12-28 16:57:46 · 494 阅读 · 0 评论 -
关于SPARK_WORKER_MEMORY和SPARK_MEM
在spark中最容易混淆的是各种内存关系。本篇讲述一下SPARK_WORKER_MEMORY和SPARK_MEM。SPARK_WORKER_MEMORY是计算节点worker所能支配的内存,各个节点可以根据实际物理内存的大小,通过配置conf/spark-env.sh来分配内存给该节点的worker进程使用。在spark standalone集群中,如果各节点的物理配置不一样,co转载 2017-09-16 10:36:35 · 3943 阅读 · 0 评论 -
[Spark] - HashPartitioner & RangePartitioner 区别
Spark RDD的宽依赖中存在Shuffle过程,Spark的Shuffle过程同MapReduce,也依赖于Partitioner数据分区器,Partitioner类的代码依赖结构主要如下所示:主要是HashPartitioner和RangePartitioner两个类,分别用于根据RDD中key的hashcode值进行分区以及根据范围进行数据分区一、Partition转载 2017-09-16 19:11:55 · 2455 阅读 · 0 评论 -
[Spark]Could not locate executable null\bin\winutils.exe in the Hadoop binaries
这里集群环境不同,但遇到的问题及解决办法其实一样,时间有限,就不详细修改了。我主要是在Windows本地运行Spark程序出现该错误。本文转自http://www.cnblogs.com/hyl8218/p/5492450.html,所有权力归原作者所有。在已经搭建好的集群环境Centos6.6+Hadoop2.7+Hbase0.98+Spark1.3.1下,在Win7系统Inte转载 2017-09-16 19:14:05 · 751 阅读 · 0 评论 -
Spark数据本地性
分布式计算系统的精粹在于移动计算而非移动数据,但是在实际的计算过程中,总存在着移动数据的情况,除非是在集群的所有节点上都保存数据的副本。移动数据,将数据从一个节点移动到另一个节点进行计算,不但消耗了网络IO,也消耗了磁盘IO,降低了整个计算的效率。为了提高数据的本地性,除了优化算法(也就是修改spark内存,难度有点高),就是合理设置数据的副本。设置数据的副本,这需要通过配置参数并长期观察运行状态转载 2016-12-28 16:54:57 · 1183 阅读 · 0 评论 -
RDD Join 性能调优
阅读本篇博文时,请先理解RDD的描述及作业调度:[《深入理解Spark 2.1 Core (一):RDD的原理与源码分析 》](http://blog.csdn.net/u011239443/article/details/53894611#t16)Join数据是我们在Spark操作中的很重要的一部分。Spark Core 和Spark SQL的基本类型都支持join操作。虽然join很常转载 2017-09-16 19:29:50 · 479 阅读 · 0 评论 -
Spark自定义分区(Partitioner)
我们都知道Spark内部提供了HashPartitioner和RangePartitioner两种分区策略(这两种分区的代码解析可以参见:《Spark分区器HashPartitioner和RangePartitioner代码详解》),这两种分区策略在很多情况下都适合我们的场景。但是有些情况下,Spark内部不能符合咱们的需求,这时候我们就可以自定义分区策略。为此,Spark提供了相应的接口,我们只转载 2017-09-16 19:33:55 · 766 阅读 · 0 评论 -
Spark面对OOM问题的解决方法及优化总结
转载请保持完整性并注明来源链接: http://blog.csdn.net/yhb315279058/article/details/51035631 Spark中的OOM问题不外乎以下两种情况map执行中内存溢出shuffle后内存溢出 map执行中内存溢出代表了所有map类型的操作,包括:flatMap,filter,mapPatitions等。shuffle后转载 2017-09-16 19:58:20 · 362 阅读 · 0 评论 -
Spark Shuffle系列-----1. Spark Shuffle与任务调度之间的关系
本文转自http://blog.csdn.net/u012684933/article/details/49074185,所有权力归原作者所有,仅供学习。Spark根据RDD间的依赖关系是否是Shuffle依赖进行Stage的划分,为了说明问题在这里先执行的Stage标记为Stage1,后执行的Stage标记为Stage2。Shuffle分2步操作 Map操作和Recude操转载 2016-04-24 09:36:27 · 842 阅读 · 0 评论 -
spark应用程序的运行架构(简单到复杂)
几个基本概念:(1)job:包含多个task组成的并行计算,往往由action催生。(2)stage:job的调度单位。(3)task:被送到某个executor上的工作单元。(4)taskSet:一组关联的,相互之间没有shuffle依赖关系的任务组成的任务集。一个应用程序由一个driver program和多个job构成。一个job由多个stage组成。转载 2016-05-27 17:57:42 · 674 阅读 · 0 评论 -
Spark API 详解/大白话解释 之 map、mapPartitions、mapValues、mapWith、flatMap、flatMapWith、flatMapValues
重点看mapPartitionsmap(function) map是对RDD中的每个元素都执行一个指定的函数来产生一个新的RDD。任何原RDD中的元素在新RDD中都有且只有一个元素与之对应。举例:val a = sc.parallelize(1 to 9, 3)val b = a.map(x => x*2)//x => x*2是一个函数,x是传入参数即RDD的每个元素,x转载 2016-04-20 11:08:59 · 2347 阅读 · 0 评论 -
Spark 性能相关参数配置详解-Storage篇
作者:刘旭晖 Raymond 转载请注明出处Email:colorant at 163.comBLOG:http://blog.csdn.net/colorant/随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化。转载 2016-03-25 21:05:08 · 502 阅读 · 0 评论 -
Spark 性能相关参数配置详解-压缩与序列化篇
作者:刘旭晖 Raymond 转载请注明出处Email:colorant at 163.comBLOG:http://blog.csdn.net/colorant/随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化。转载 2016-03-25 21:09:42 · 530 阅读 · 0 评论 -
Spark 性能相关参数配置详解-任务调度篇
作者:刘旭晖 Raymond 转载请注明出处Email:colorant at 163.comBLOG:http://blog.csdn.net/colorant/随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化。转载 2016-03-25 21:19:56 · 466 阅读 · 0 评论 -
spark-OutOfMemory:GC overhead limit exceeded 解决,timelimitexceeded
今天准备跑自己的spark程序,但是运行过程中遇到了OutOfMemory:GC overhead limit exceeded的错误。原以为是数据集太大,google了一番,以为是内存不够了,但是在webui一看其实数据集好像也不是很大,但是还是尝试提高了内存配置,通过提高spark.executor.memory和spark.shuffle.memoryFraction,降低spark转载 2016-03-26 21:13:36 · 5352 阅读 · 0 评论