spark
文章平均质量分 80
小狼_百度
百度,web系统,分布式系统,大数据,机器学习,人工智能等爱好者
展开
-
Spark Streaming 流计算优化记录(1)-背景介绍
1.背景概述业务上有一定的需求, 希望能实时地对从中间件进来的数据已经已有的维度表进行inner join, 以便后续的统计. 维表十分巨大, 有近3千万记录,约3G数据, 而集群的资源也较紧张, 因此希望尽可能压榨Spark Streaming的性能和吞吐量.技术架构大致上如下述: 数据从Kafka流入, SparkStreaming 会从HDFS中拿到维度表的数据, 与流入的消息进行计算, 最...转载 2018-04-04 17:55:15 · 702 阅读 · 0 评论 -
大数据下的Distinct Count(二):Bitmap篇
在前一篇中介绍了使用API做Distinct Count,但是精确计算的API都较慢,那有没有能更快的优化解决方案呢?1. Bitmap介绍《编程珠玑》上是这样介绍bitmap的:Bitmap是一个十分有用的数据结构。所谓的Bitmap就是用一个bit位来标记某个元素对应的Value,而Key即是该元素。由于采用了Bit为单位来存储数据,因此在内存占用方面,可以大大节省转载 2016-08-17 13:53:39 · 2353 阅读 · 0 评论 -
大数据下的Distinct Count(一):序
在数据库中,常常会有Distinct Count的操作,比如,查看每一选修课程的人数:select course, count(distinct sid)from stu_tablegroup by course;Hive在大数据场景下,报表很重要一项是UV(Unique Visitor)统计,即某时间段内用户人数。例如,查看一周内app的用户分布情况,Hive中写转载 2016-08-17 13:51:57 · 2497 阅读 · 0 评论 -
Apache Spark探秘:实现Map-side Join和Reduce-side Join
在大数据处理场景中,多表Join是非常常见的一类运算。为了便于求解,通常会将多表join问题转为多个两表连接问题。两表Join的实现算法非常多,一般我们会根据两表的数据特点选取不同的join算法,其中,最常用的两个算法是map-side join和reduce-side join。本文将介绍如何在apache spark中实现这两种算法。(1)Map-side Join转载 2016-08-15 18:38:24 · 1623 阅读 · 0 评论 -
Spark闭包与序列化
本文原文出处: http://blog.csdn.net/bluishglc/article/details/50945032 严禁任何形式的转载,否则将委托CSDN官方维护权益!Spark的官方文档再三强调那些将要作用到RDD上的操作,不管它们是一个函数还是一段代码片段,它们都是“闭包”,Spark会把这个闭包分发到各个worker节点上去执行,这里涉及到了一个容易被忽视的问题:闭包的“转载 2016-07-13 13:47:37 · 1709 阅读 · 0 评论 -
Spark编程指引(二)---------------RDD介绍,闭包对RDD的影响,如何打印RDD。
RDD OperationsRDD支持两种操作类型:转换,从现有数据集创建一个新的数据集。动作:在数据集上进行计算,并对驱动程序返回一个值。比如,map是一个转换,它对数据集中的每个元素执行一个函数,然后返回一个新的RDD代表执行结果。reduce是一个动作,它通过一些函数聚合RDD中的所有元素,然后对驱动程序返回最后的结果。(虽然也有一个并行的reduceByKe转载 2016-07-13 13:46:45 · 410 阅读 · 0 评论 -
Spark函数讲解:aggregateByKey
该函数和aggregate类似,但操作的RDD是Pair类型的。Spark 1.1.0版本才正式引入该函数。官方文档定义:Aggregate the values of each key, using given combine functions and a neutral "zero value". This function can return a different resu转载 2016-07-01 14:31:29 · 5001 阅读 · 0 评论 -
在Spark中尽量少使用GroupByKey函数
为什么建议尽量在Spark中少用GroupByKey,让我们看一下使用两种不同的方式去计算单词的个数,第一种方式使用reduceByKey ;另外一种方式使用groupByKey,代码如下:01#User:过往记忆02#Date:2015-05-18转载 2016-07-01 14:03:08 · 945 阅读 · 0 评论 -
Akka学习笔记:ActorSystem(调度)
调度 正如你在ActorSystem中的API看到的,如下:1//Light-weight scheduler for running asynchronous tasks after some deadline in the future.2def scheduler :Sch转载 2016-06-15 18:05:58 · 2649 阅读 · 0 评论 -
Akka学习笔记:ActorSystem(配置)
正如我们在前面看到的几篇文章,我们可以用ActorSystem类中的actorOf 方法来创建Actor。其实在ActorSystem中有大量的方法我们可以用,在这里我将介绍Configuration和Scheduling方法。让我们看一下ActorSystem类中的一些方法,如下图:如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_转载 2016-06-15 18:01:10 · 4151 阅读 · 0 评论 -
Akka学习笔记:Actor消息处理-请求和响应(2)
接《Akka学习笔记:Actor消息处理-请求和响应(1)》文章目录 [hide]0.1 二、StudentActor对InitSignal消息作出反应,并且发送了QuoteRequest 消息给TeacherActor0.2 四、StudentActor仅仅将QuoteResponse 作为日志打印到控制台/logger0.3 三、TeacherActor转载 2016-06-15 17:50:59 · 2038 阅读 · 0 评论 -
《Spark 官方文档》硬件配置
http://ifeve.com/spark-hardware-provisioning/spark-1.6.0 [原文地址]硬件配置Spark开发者们常常被问到的一个问题就是:如何为Spark配置硬件。我们通常会给出以下的建议,但具体的硬件配置还依赖于实际的使用情况。 存储系统因为绝大多数Spark作业都很可能是从外部存储系统加载输入数据(转载 2017-03-08 17:42:29 · 1028 阅读 · 0 评论 -
Spark性能优化之道——解决Spark数据倾斜(Data Skew)的N种姿势
本文结合实例详细阐明了Spark数据倾斜的几种场景以及对应的解决方案,包括避免数据源倾斜,调整并行度,使用自定义Partitioner,使用Map侧Join代替Reduce侧Join,给倾斜Key加上随机前缀等。原创文章,转载请务必将下面这段话置于文章开头处。本文转发自技术世界,原文链接 http://www.jasongj.com/spark/skew/摘要本转载 2017-06-06 15:31:18 · 633 阅读 · 0 评论 -
Spark Streaming 流计算优化记录(2)-不同时间片数据流的Join
1. 不同时间片数据流的Join 初体验之后, 看了一下Spark WebUi 的日志, 发现由于Spark Streaming需要每秒跑一次, 以实时计算数据, 所以程序不得不每秒都读一次HDFS去获取数据进行inner join. 本来SparkStreaming会对其进行处理的数据进行缓存, 以减少IO和提高计算速度的, 但由于现在我们的场景是要把每秒都有新数...转载 2018-04-04 17:54:26 · 858 阅读 · 0 评论 -
Spark Streaming 流计算优化记录(3)-控制流量与join的地点
4. 流量控制好像之前说过”一下子从Kafka拉取几十万条消息进行处理”的事情, 其实酱紫是不对滴, 饭要一口一口吃, 一下子吃太多, 会导致还没吃成胖子就已经被撑死的. 所以我们要对为了做压力测试而早已在Kafka中囤积多时的几十万条消息分批次进行处理, 毕竟实际跑起的时候每秒拥入我们知道, Spark Streaming进行流处理的原理是micro batch, 即把每秒或每几秒这个时间窗口内...转载 2018-04-04 17:53:37 · 1598 阅读 · 0 评论 -
Spark Streaming 流计算优化记录(4)-时间都去哪儿了,关于调度与空转
6. 时间都去where了,青春不能等,调度也是除了上述优化, 我们还注意到一个奇怪的现象: 怎么回事, 即使接收不到消息都要花掉5秒?!! 虽然Spark Streaming空转依然会产生空task, 这些空task依然会消耗序列化, 压缩, 调度等时间, 但也不至于那么多吧!!!我们拿一个Stage看看, 就拿处理Kafka消息的那个Stage作例子吧: Kafka没有任何消息进来的情况下, ...转载 2018-04-04 17:52:50 · 599 阅读 · 0 评论 -
Spark Streaming 流计算优化记录(5)-分区与内存的优化
8. 不一定非得每秒处理一次由于Spark Streaming的原理是micro batch, 因此当batch积累到一定数量时再发放到集群中计算, 这样的数据吞吐量会更大些. 这需要在StreamingContext中设置Duration参数. 我们试着把Duration调成两秒, 这样Spark就会在接收Kafka的模块中积累了2秒的数据后, 在调度作业到集群中计算.结合上述做过的优化, 跑了...转载 2018-04-04 16:45:16 · 517 阅读 · 0 评论 -
Spark Streaming 流计算优化记录(6)-GC优化与shuffle service
11. Spark应用的GC调优说到GC, 可能很多人都倾向于使用新潮的G1垃圾收集器, 特别是intel的那几个兄弟在databrick发表了篇用G1调优Spark应用的博文后, 就更多人热衷于尝试G1了.但其实我们再去年就对G1和老牌的CMS+NewPar进行过对比测试, 发现G1根本没有比CMS好, 有时候还会导致更多的FullGC, 而实际上连Oracle官方都觉得G1还没有product...转载 2018-04-04 16:10:31 · 1867 阅读 · 0 评论 -
学习Spark2.0中的Structured Streaming(一)
Spark2.0新增了Structured Streaming,它是基于SparkSQL构建的可扩展和容错的流式数据处理引擎,使得实时流式数据计算可以和离线计算采用相同的处理方式(DataFrame&SQL)。Structured Streaming顾名思义,它将数据源和计算结果都映射成一张”结构化”的表,在计算的时候以结构化的方式去操作数据流,大大方便和提高了数据开发的效率。Spark2...转载 2018-03-23 15:04:56 · 646 阅读 · 0 评论 -
spark JVM调优之原理概述以及降低cache操作的内存占比
每一次放对象的时候,都是放入eden区域,和其中一个survivor区域;另外一个survivor区域是空闲的。当eden区域和一个survivor区域放满了以后(spark运行过程中,产生的对象实在太多了),就会触发minor gc,小型垃圾回收。把不再使用的对象,从内存中清空,给后面新创建的对象腾出来点儿地方。清理掉了不再使用的对象之后,那么也会将存活下来的对象(还要继转载 2017-11-06 17:57:43 · 1089 阅读 · 0 评论 -
spark性能调优(三)shuffle的map端内存缓冲reduce端内存占比
性能优化 shufflespark.shuffle.file.buffer,默认32kspark.shuffle.memoryFraction,0.2map端内存缓冲,reduce端内存占比;很多资料、网上视频,都会说,这两个参数,是调节shuffle性能的不二选择,很有效果的样子,实际上,不是这样的。以实际的生产经验来说,这两个参数没有那么重要,往往来转载 2017-11-06 15:39:31 · 1889 阅读 · 0 评论 -
Spark的性能调优
基本概念和原则首先,要搞清楚Spark的几个基本概念和原则,否则系统的性能调优无从谈起:每一台host上面可以并行N个worker,每一个worker下面可以并行M个executor,task们会被分配到executor上面去执行。Stage指的是一组并行运行的task,stage内部是不能出现shuffle的,因为shuffle的就像篱笆一样阻止了并行task的运行,转载 2017-11-06 15:05:33 · 1402 阅读 · 0 评论 -
Spark客户端在centos6.4上安装
客户端安装环境如下:操作系统: centos6.4操作系统内核: Linux version 2.6.32-358.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Fri Feb 22 00:31:26 UTC 2原创 2017-07-06 17:22:35 · 2774 阅读 · 0 评论 -
Akka学习笔记:Actor消息处理-请求和响应(1)
在前面的文章《Akka学习笔记:Actor消息传递(1)》和《Akka学习笔记:Actor消息传递(2)》。我们仅仅将消息发送到Actor,并没有期待从Actor发来的响应。 从技术上讲,我们给Actor发送消息,除了没有响应,目标的Actor将对这条消息进行如下操作: 1、给发送者发送一个响应,在我们的例子中,TeacherActor将发送一个quote 到StudentActor作转载 2016-06-15 17:44:15 · 2346 阅读 · 0 评论 -
Akka学习笔记:测试Actors
在《Akka学习笔记:日志》文章中介绍了Akka的日志功能。本文主要介绍如何测试Actors。文章目录 [hide]1 测试Akka1.1 1, 2 - 给Actor发送消息1.2 3、检查Actors的内部状态1.3 4、检查日志消息1.4 5、测试带有构造参数的Actors2 关闭ActorSystem测试Akka转载 2016-06-15 17:20:25 · 1438 阅读 · 0 评论 -
Spark算子:RDD基本转换操作(2)–coalesce、repartition
coalescedef coalesce(numPartitions: Int, shuffle: Boolean = false)(implicit ord: Ordering[T] = null): RDD[T]该函数用于将RDD进行重分区,使用HashPartitioner。第一个参数为重分区的数目,第二个为是否进行shuffle,默认为false;以下面的例转载 2016-05-23 15:05:19 · 1437 阅读 · 0 评论 -
使用SparkSQL实现多线程分页查询并写入文件
一、由于具有多张宽表且字段较多,每个宽表数据大概为4000万条,根据业务逻辑拼接别名,并每张宽表的固定字段进行left join 拼接SQL。这样就能根据每个宽表的主列,根据每个宽表的不同字段关联出一张新的集合。由于下来要进行分页查询,如果要使用SparkSQL进行分页查询,需要增加序号列,那么就在刚才的Sql之前增加一句 create table tableName as SELECT ROW转载 2016-06-24 10:49:10 · 5285 阅读 · 2 评论 -
通过可视化来了解你的Spark应用程序
【编者按】在"Spark 1.4:SparkR发布,钨丝计划锋芒初露"一文中,我们有简单地介绍了1.4版本给Spark注入的新特性,在各个组件的介绍中也提到了新UI给用户带来的便捷。而从本文开始,我们将通过Databricks Blog上的系列文章深入了解新版本中的数据可视化,首先分享的是这个系列的第一篇博文——Understanding your Spark application th转载 2016-06-02 16:23:32 · 519 阅读 · 0 评论 -
Spark RDD API详解(一) Map和Reduce
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]本文由cmd markdown编辑,原始链接:https://www.zybuluo.com/jewes/note/35032 RDD是什么?RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD。从编程的角度来看,RDD可以简单看成是一个数组。和普通数组转载 2016-05-11 15:13:02 · 603 阅读 · 0 评论 -
spark中的SparkContext实例的textFile使用的小技巧
网上很多例子,包括官网的例子,都是用textFile来加载一个文件创建RDD,类似sc.textFile("hdfs://n1:8020/user/hdfs/input")textFile的参数是一个path,这个path可以是:1. 一个文件路径,这时候只装载指定的文件2. 一个目录路径,这时候只装载指定目录下面的所有文件(不包括子目录下面的文件)3. 通过通配符转载 2016-05-11 14:41:02 · 1168 阅读 · 0 评论 -
Apache Spark探秘:多进程模型还是多线程模型?
Apache Spark的高性能一定程度上取决于它采用的异步并发模型(这里指server/driver端采用的模型),这与Hadoop 2.0(包括YARN和MapReduce)是一致的。Hadoop 2.0自己实现了类似Actor的异步并发模型,实现方式是epoll+状态机,而Apache Spark则直接采用了开源软件Akka,该软件实现了Actor模型,性能非常高。尽管二者在server转载 2016-05-10 18:13:03 · 433 阅读 · 0 评论 -
Spark性能调优
通常我们对一个系统进行性能优化无怪乎两个步骤——性能监控和参数调整,本文主要分享的也是这两方面内容。性能监控工具【Spark监控工具】Spark提供了一些基本的Web监控页面,对于日常监控十分有用。1. Application Web UIhttp://master:4040(默认端口是4040,可以通过spark.ui.port修改)可获得这些信息:(转载 2016-05-10 17:37:04 · 1137 阅读 · 0 评论 -
spark 使用中会遇到的一些问题及解决思路
7 内存溢出问题 在Spark中使用hql方法执行hive语句时,由于其在查询过程中调用的是Hive的获取元数据信息、SQL解析,并且使用Cglib等进行序列化反序列化,中间可能产生较多的class文件,导致JVM中的持久代使用较多,如果配置不当,可能引起类似于如下的OOM问题:Exception in thread "Thread-2" java.lang.转载 2016-05-10 17:13:12 · 1426 阅读 · 0 评论 -
Spark架构与作业执行流程简介
Spark架构与作业执行流程简介Local模式运行Spark最简单的方法是通过Local模式(即伪分布式模式)。 运行命令为:./bin/run-example org.apache.spark.examples.SparkPi local基于standalone的Spark架构与作业执行流程Standalone模式下,集群启动时包括Master与Wo转载 2016-05-10 16:57:57 · 723 阅读 · 0 评论 -
一个用于大规模数据科学的API——DataFrame
今天,我们正式宣布Spark新的API——DataFrame 。作为2014–2015年Spark最大的API改动,DataFrame能够使得大数据更为简单,从而拥有更广泛的受众群体。我们最早在设计Spark的时候,其中一个很重要的目标就是给大数据生态圈提供基于通用编程语言的(Java、Scala、Python)简单易用的API。Spark原本的RDD API通过函数式编程的模式把分布式数转载 2016-05-10 16:25:51 · 1216 阅读 · 0 评论 -
Spark 性能相关参数配置详解-Storage篇
作者:刘旭晖 Raymond 转载请注明出处Email:colorant at 163.comBLOG:http://blog.csdn.net/colorant/随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化。转载 2016-07-11 16:37:48 · 633 阅读 · 0 评论 -
影响到Spark输出RDD分区的操作函数
下面的操作会影响到Spark输出RDD分区(partitioner)的: cogroup, groupWith, join, leftOuterJoin, rightOuterJoin, groupByKey, reduceByKey, combineByKey, partitionBy, sort, mapValues (如果父RDD存在partitioner), flatMapValue转载 2016-06-30 11:12:16 · 860 阅读 · 0 评论 -
Akka学习笔记:日志
在前面的三篇文章中《Akka学习笔记:ACTORS介绍》《Akka学习笔记:Actor消息传递(1)》和《Akka学习笔记:Actor消息传递(2)》 ,我们只是简单地介绍了Actors以及消息传递如何工作。在这篇文章中我们将给TeacherActor类加一些日志和测试功能。文章目录 [hide]1 回顾2 用SLF4J 打印Akka日志2.1 通过日志来转载 2016-06-15 16:50:08 · 1367 阅读 · 0 评论 -
Akka学习笔记:Actor消息传递(2)
文章目录 [hide]1 消息2 DISPATCHER AND A MAILBOX2.1 1、MailBox2.2 2、Dispatcher3 Teacher Actor消息 我们在前面仅仅讨论了ActorRef的QuoteRequest,并没有看到message的类!这里将介绍,代码如下:1p转载 2016-06-15 16:42:56 · 1137 阅读 · 0 评论 -
Akka学习笔记:Actor消息传递(1)
从前面的《Akka学习笔记:ACTORS介绍》,我们已经简单地了解了Actors。在这篇笔记中,我们将介绍Actor的消息传递。作为例子,我们将继续使用前面介绍的 Student-Teacher模型。 在Actor消息传递的前部分,我们将创建Teacher Actor而不是Student Actor,我们将用一个称为StudentSimulatorApp的主程序。文章目录 [hi转载 2016-06-15 15:34:52 · 2612 阅读 · 0 评论