spark
wisgood
这个作者很懒,什么都没留下…
展开
-
sparksql通过jdbc读取mysql时划分分区问题
当通过spark读取mysql时,如果数据量比较大,为了加快速度,通常会起多个任务并行拉取mysql数据。其中一个api是defjdbc(url: String, table: String, columnName: String, lowerBound: Long, upperBound: Long, numPartitions: Int, connectionProperties: Pr...原创 2018-11-10 18:00:58 · 6669 阅读 · 1 评论 -
Spark Streaming 订单关联案例剖析
摘要:Apache Spark 是加州大学伯克利分校的 AMPLabs 开发的开源分布式轻量级通用计算框架。由于 Spark 基于内存设计,使得它拥有比 Hadoop 更高的性能(极端情况下可以达到 100x),并且对多语言(Scala、Java、Python)提供支持。其一栈式设计特点使得我们的学习和维护成本大大地减少,而且其提供了很好的容错解决方案。...Apache Spark转载 2016-07-03 16:54:20 · 1126 阅读 · 0 评论 -
DirectStream、Stream的区别-SparkStreaming源码分析02
在Spark1.3之前,默认的Spark接收Kafka数据的方式是基于Receiver的,在这之后的版本里,推出了Direct Approach,现在整理一下两种方式的异同。1. Receiver-based Approach示例代码:import org.apache.spark.streaming.kafka._val kafkaStream = Kafk转载 2016-07-03 16:53:23 · 1381 阅读 · 0 评论 -
Spark算子:RDD键值转换操作(1)–partitionBy、mapValues、flatMapValues
关键字:Spark算子、Spark RDD键值转换、partitionBy、mapValues、flatMapValuespartitionBydef partitionBy(partitioner: Partitioner): RDD[(K, V)]该函数根据partitioner函数生成新的ShuffleRDD,将原RDD重新分区。scala> var rdd1 =转载 2016-09-26 14:03:48 · 2568 阅读 · 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-09-26 14:03:11 · 669 阅读 · 0 评论 -
Spark算子:RDD键值转换操作(3)–groupByKey、reduceByKey、reduceByKeyLocally
关键字:Spark算子、Spark RDD键值转换、groupByKey、reduceByKey、reduceByKeyLocallygroupByKeydef groupByKey(): RDD[(K, Iterable[V])]def groupByKey(numPartitions: Int): RDD[(K, Iterable[V])]def groupBy转载 2016-09-26 14:02:25 · 1626 阅读 · 0 评论 -
Spark算子:RDD键值转换操作(4)–cogroup、join
关键字:Spark算子、Spark RDD键值转换、cogroup、joincogroup##参数为1个RDDdef cogroup[W](other: RDD[(K, W)]): RDD[(K, (Iterable[V], Iterable[W]))]def cogroup[W](other: RDD[(K, W)], numPartitions: Int): R转载 2016-09-26 14:01:54 · 1186 阅读 · 0 评论 -
Spark算子:RDD键值转换操作(5)–leftOuterJoin、rightOuterJoin、subtractByKey
关键字:Spark算子、Spark RDD键值转换、leftOuterJoin、rightOuterJoin、subtractByKeyleftOuterJoindef leftOuterJoin[W](other: RDD[(K, W)]): RDD[(K, (V, Option[W]))]def leftOuterJoin[W](other: RDD[(K, W)],转载 2016-09-26 14:01:32 · 1649 阅读 · 0 评论 -
Spark算子:RDD行动Action操作(1)–first、count、reduce、collect
关键字:Spark算子、Spark RDD行动Action、first、count、reduce、collectfirstdef first(): Tfirst返回RDD中的第一个元素,不排序。scala> var rdd1 = sc.makeRDD(Array(("A","1"),("B","2"),("C","3")),2)rdd1: org.apache.spar转载 2016-09-26 14:01:10 · 4205 阅读 · 0 评论 -
Spark算子:RDD行动Action操作(2)–take、top、takeOrdered
关键字:Spark算子、Spark RDD行动Action、take、top、takeOrderedtakedef take(num: Int): Array[T]take用于获取RDD中从0到num-1下标的元素,不排序。scala> var rdd1 = sc.makeRDD(Seq(10, 4, 2, 12, 3))rdd1: org.apache.spark.r转载 2016-09-26 14:00:50 · 1405 阅读 · 0 评论 -
Spark算子:RDD行动Action操作(3)–aggregate、fold、lookup
aggregatedef aggregate[U](zeroValue: U)(seqOp: (U, T) ⇒ U, combOp: (U, U) ⇒ U)(implicit arg0: ClassTag[U]): Uaggregate用户聚合RDD中的元素,先使用seqOp将RDD中每个分区中的T类型元素聚合成U类型,再使用combOp将之前每个分区聚合后的U类型聚合成U类型,特转载 2016-09-26 14:00:27 · 647 阅读 · 0 评论 -
Spark算子:RDD行动Action操作(4)–countByKey、foreach、foreachPartition、sortBy
关键字:Spark算子、Spark函数、Spark RDD行动Action、countByKey、foreach、foreachPartition、sortBycountByKeydef countByKey(): Map[K, Long]countByKey用于统计RDD[K,V]中每个K的数量。scala> var rdd1 = sc.makeRDD(Array((转载 2016-09-26 14:00:00 · 863 阅读 · 0 评论 -
Spark算子:RDD行动Action操作(5)–saveAsTextFile、saveAsSequenceFile、saveAsObjectFile
关键字:Spark算子、Spark函数、Spark RDD行动Action、Spark RDD存储操作、saveAsTextFile、saveAsSequenceFile、saveAsObjectFilesaveAsTextFiledef saveAsTextFile(path: String): Unitdef saveAsTextFile(path: String, c转载 2016-09-26 13:59:32 · 10237 阅读 · 0 评论 -
Spark算子:RDD行动Action操作(6)–saveAsHadoopFile、saveAsHadoopDataset
关键字:Spark算子、Spark函数、Spark RDD行动Action、Spark RDD存储操作、saveAsHadoopFile、saveAsHadoopDatasetsaveAsHadoopFiledef saveAsHadoopFile(path: String, keyClass: Class[_], valueClass: Class[_], outputForma转载 2016-09-26 13:59:09 · 4969 阅读 · 1 评论 -
Spark算子:RDD行动Action操作(7)–saveAsNewAPIHadoopFile、saveAsNewAPIHadoopDataset
关键字:Spark算子、Spark函数、Spark RDD行动Action、Spark RDD存储操作、saveAsNewAPIHadoopFile、saveAsNewAPIHadoopDatasetsaveAsNewAPIHadoopFiledef saveAsNewAPIHadoopFile[F def saveAsNewAPIHadoopFile(path: Stri转载 2016-09-26 13:58:45 · 5105 阅读 · 1 评论 -
spark算子系列文章
Spark算子系列文章Spark算子:RDD创建操作Spark算子:RDD基本转换操作(1)–map、flagMap、distinctSpark算子:RDD基本转换操作(2)–coalesce、repartitionSpark算子:RDD基本转换操作(3)–randomSplit、glomSpark算子:RDD基本转换操作(4)–union、intersec转载 2016-09-27 21:51:41 · 3026 阅读 · 0 评论 -
Spark的算子的分类
从大方向来说,Spark 算子大致可以分为以下两类: 1)Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理。 Transformation 操作是延迟计算的,也就是说从一个RDD 转换生成另一个 RDD 的转换操作不是马上执行,需要等到有 Action 操作的时候才会真正触发运算。 2)Action 行动算转载 2016-12-02 19:37:58 · 970 阅读 · 0 评论 -
Spark实现二次排序
1、HDFS文件说明 文件为普通的文本文件,无压缩,\001分割,共3列,一次为province_id,city_id,city_uv需要按照province_id升序,city_uv降序操作2、代码var data = sc.textFile("/home/hdfs/test_second")var rdd1=data.map(_.split("\001")).map(fields=>(f...原创 2017-02-18 15:17:36 · 1321 阅读 · 0 评论 -
SparkSQL – 有必要坐下来聊聊Join
转自:http://hbasefly.com/2017/03/19/sparksql-basic-join/ Join背景介绍Join是数据库查询永远绕不开的话题,传统查询SQL技术总体可以分为简单操作(过滤操作-where、排序操作-limit等),聚合操作-groupBy等以及Join操作等。其中Join操作是其中最复杂、代价最大的操作类型,也是OLAP场景中使用相对较多的操作。因此很有必要聊...转载 2016-03-27 22:02:00 · 1135 阅读 · 1 评论 -
spark2.1 新特性
Apache Spark 2.0是基于spark branch-2.x 开发的,相比于branch-1.0,它在功能和性能等方面均有巨大改进。在性能方面,Spark 2.x 有2~10倍的提升;在功能方面,Spark SQL中的Dataset变得成熟,Spark 2.x通过Dataset重构了Spark Streaming和MLlib的API,进而使得这两个系统在易用性和性能方面有重大提升,在不久...转载 2017-01-20 15:55:35 · 910 阅读 · 0 评论 -
Spark1.6内存管理(二) 实例讲解:Spark管理页面中Storage Memory是如何计算的?
书接上文: https://blog.csdn.net/wisgood/article/details/78069753 本文主要讲解879.0MB是如何算出来的?spark用的是1.6版本。 对应程序的参数设置为 spark-shell --executor-memory 1536M Storage Memory该页面显示的Storage Memory 实际是上文...原创 2018-04-08 13:11:47 · 11450 阅读 · 0 评论 -
Spark打印每个split及其对应文件
Spark打印每个split及其对应文件原创 2017-10-03 10:33:39 · 1837 阅读 · 1 评论 -
Spark1.6内存管理(一)
从1.6.0版本开始,Spark内存管理模型发生了变化。旧的内存管理模型由StaticMemoryManager类实现,现在称为“legacy(遗留)”。默认情况下,“Legacy”模式被禁用,这意味着在Spark 1.5.x和1.6.0上运行相同的代码会导致不同的行为。为了兼容,您可以使用spark.memory.useLegacyMode参数启用“旧”内存模型。 1.6.0及以后版本,使用的...原创 2017-09-23 11:33:24 · 1552 阅读 · 0 评论 -
Spark中executor-memory参数详解
Spark中executor-memory参数详解原创 2017-09-05 21:42:16 · 31547 阅读 · 3 评论 -
spark读取kafka两种方式的区别
参考:http://spark.apache.org/docs/1.4.1/streaming-kafka-integration.html Receiver与Direct方法相比,后者具有以下优点。简化并行性无需创建多个输入Kafka流和联合它们。使用directStream,Spark Streaming将创建与要消费的Kafka分区一样多的RDD分区,这将从Kafka并行读取...原创 2017-08-23 22:31:19 · 2907 阅读 · 0 评论 -
Spark streaming基于kafka 以Receiver方式获取数据 原理和案例实战
本博文讲述的内容主要包括:1,SparkStreaming on Kafka Receiver 工作原理机制 2,SparkStreaming on Kafka Receiver案例实战 3,SparkStreaming on Kafka Receiver源码解析一:SparkStreaming on Kafka Receiver 简介:1、Spark-Stream转载 2017-02-16 10:03:11 · 1196 阅读 · 0 评论 -
Spark技术博客
IBM:https://www.ibm.com/search/csass/search/?q=Spark&sn=dw&lang=zh&cc=CN&en=utf&hpp=20&dws=cndw&lo=zh原创 2017-02-15 10:19:10 · 729 阅读 · 0 评论 -
Spark-Streaming之window滑动窗口应用
Spark-Streaming之window滑动窗口应用,Spark Streaming提供了滑动窗口操作的支持,从而让我们可以对一个滑动窗口内的数据执行计算操作。每次掉落在窗口内的RDD的数据,会被聚合起来执行计算操作,然后生成的RDD,会作为window DStream的一个RDD。网官图中所示,就是对每三秒钟的数据执行一次滑动窗口计算,这3秒内的3个RDD会被聚合起来进行处理,然后过转载 2017-02-15 10:18:40 · 8377 阅读 · 0 评论 -
论SparkStreaming的数据可靠性和一致性
Driver HA由于流计算系统是长期运行、且不断有数据流入,因此其Spark守护进程(Driver)的可靠性至关重要,它决定了Streaming程序能否一直正确地运行下去。Driver实现HA的解决方案就是将元数据持久化,以便重启后的状态恢复。如图一所示,Driver持久化的元数据包括:Block元数据(图1中的绿色箭头):Receiv转载 2017-02-19 11:34:17 · 1047 阅读 · 0 评论 -
Spark Streaming场景应用|Kafka数据读取方式
Spark Streaming 支持多种实时输入源数据的读取,其中包括Kafka、flume、socket流等等。除了Kafka以外的实时输入源,由于我们的业务场景没有涉及,在此将不会讨论。本篇文章主要着眼于我们目前的业务场景,只关注Spark Streaming读取Kafka数据的方式。 Spark Streaming 官方提供了两种方式读取Kafka数据:一是Receiver-based Ap...转载 2017-02-19 11:33:05 · 1226 阅读 · 0 评论 -
Spark算子:RDD基本转换操作(1)–map、flatMap、distinct
关键字:Spark算子、Spark RDD基本转换、map、flatMap、distinctmap将一个RDD中的每个数据项,通过map中的函数映射变为一个新的元素。输入分区与输出分区一对一,即:有多少个输入分区,就有多少个输出分区。hadoop fs -cat /tmp/lxw1234/1.txthello worldhello sparkhello hive //读取HDFS文件到RDDsc...转载 2016-09-26 13:57:44 · 6792 阅读 · 0 评论 -
Spark算子:RDD创建操作
关键字:Spark RDD 创建、parallelize、makeRDD、textFile、hadoopFile、hadoopRDD、newAPIHadoopFile、newAPIHadoopRDD从集合创建RDDparallelizedef parallelize[T](seq: Seq[T], numSlices: Int = defaultParallelism)(i转载 2016-09-26 13:57:16 · 3018 阅读 · 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-09-26 13:56:49 · 956 阅读 · 0 评论 -
0.1 Spark Streaming 实现思路与模块概述
0.1 Spark Streaming 实现思路与模块概述转载 2016-05-20 10:45:06 · 1241 阅读 · 0 评论 -
Spark源码系列(二)RDD详解 - 岑玉海
1、什么是RDD?上一章讲了Spark提交作业的过程,这一章我们要讲RDD。简单的讲,RDD就是Spark的input,知道input是啥吧,就是输入的数据。RDD的全名是Resilient Distributed Dataset,意思是容错的分布式数据集,每一个RDD都会有5个特征:1、有一个分片列表。就是能被切分,和hadoop一样的,能够切分的数据才能并行计算。转载 2016-05-31 15:41:31 · 1131 阅读 · 0 评论 -
学习Scala:孤立对象的实现原理
在关于Scala的第一篇文章 学习Scala:从HelloWorld开始 中, 我们讲述了Scala的HelloWorld程序的执行原理。在Scala中,程序的入口使用孤立对象来实现, 在这篇博客中, 我们讲述了孤立对象是如何实现程序入口的, 不管Scala和Java的语法差别多大, 只要能以一定的方式实现标准的class文件入口类和入口函数, 就能被JVM执行。感兴趣的读者可以移步这篇博客。转载 2016-05-31 14:50:29 · 501 阅读 · 0 评论 -
Spark自定义分区(Partitioner)
我们都知道Spark内部提供了HashPartitioner和RangePartitioner两种分区策略(这两种分区的代码解析可以参见:《Spark分区器HashPartitioner和RangePartitioner代码详解》),这两种分区策略在很多情况下都适合我们的场景。但是有些情况下,Spark内部不能符合咱们的需求,这时候我们就可以自定义分区策略。为此,Spark提供了相应的接口,我们只转载 2016-05-31 14:26:06 · 1223 阅读 · 0 评论 -
Spark函数讲解:coalesce
函数原型1defcoalesce(numPartitions:Int, shuffle:Boolean =false)2 (implicitord:Ordering[T] =null):RDD[T] 返回一个转载 2016-05-31 11:49:53 · 4724 阅读 · 0 评论 -
Spark On YARN内存分配
本文主要了解Spark On YARN部署模式下的内存分配情况,因为没有深入研究Spark的源代码,所以只能根据日志去看相关的源代码,从而了解“为什么会这样,为什么会那样”。说明按照Spark应用程序中的driver分布方式不同,Spark on YARN有两种模式: yarn-client模式、yarn-cluster模式。当在YARN上运行Spark作业,每个Spark转载 2016-05-17 15:36:01 · 6488 阅读 · 0 评论 -
弹性分布式数据集RDD概述
弹性分布数据集RDDRDD(Resilient Distributed Dataset)是Spark的最基本抽象,是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现。RDD是Spark最核心的东西,它表示已被分区,不可变的并能够被并行操作的数据集合,不同的数据集格式对应不同的RDD实现。RDD必须是可序列化的。RDD可以cache到内存中,每次对RDD数据集的操作转载 2016-05-17 15:17:42 · 902 阅读 · 0 评论