![](https://img-blog.csdnimg.cn/1cc02fffbc7448eda0072a0a17958c2c.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
spark
文章平均质量分 77
spark
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
做一个有趣的人Zz
天下唯庸人无咎无誉
展开
-
FAQ03【Spark】报错:java.lang.IllegalArgumentException: System memory 259522560 must be at least 47185
一、报错如下:java.lang.IllegalArgumentException: System memory 259522560 must be at least 471859200. Please increase heap size using the --driver-memory option or spark.driver.memory in Spark configuration.二、解决办法设置应用程序的 VM optionsidea的设置路径在:Run -Edit Config原创 2022-03-17 00:39:01 · 582 阅读 · 0 评论 -
Flink11:Spark Streaming
针对Spark Streaming我们主要讲一些基本的使用,因为目前在实时计算领域,Flink的应用场景会更多。一、Spark StreamingSpark Streaming是Spark Core API的一种扩展,它可以用于进行大规模、高吞吐量、容错的实时数据流的处理。但是注意:这个实时属于近实时,最小可以支持秒级别的实时处理。二、SparkStreaming工作原理Spark Streaming的工作原理是这样的:接收实时输入数据流,然后将数据拆分成多个batch,比如每收集1秒的数据封装原创 2022-03-16 00:04:55 · 368 阅读 · 0 评论 -
面试题01:【Spark】sortByKey如何实现全局排序
一、sortByKey如何实现全局排序使用RangePartitioner实现根据数据范围来分区,采用分治思想二、一台服务器,如何在内存中对1T数据排序先抽样,然后进行切片,划分界限,分成32份,保证第一份比第二份小,第二份比第三份小,以此类推。。然后对每一份数据进行排序输出到文件中。...原创 2022-03-18 11:16:00 · 708 阅读 · 0 评论 -
Spark16:【案例】实战:TopN主播统计:SparkSQL进行实现
一、实战:TopN主播统计在前面讲Spark core的时候我们讲过一个案例,TopN主播统计,计算每个大区当天金币收入TopN的主播,之前我们使用spark中的transformation算子去计算,实现起来还是比较麻烦的,代码量相对来说比较多,下面我们就使用咱们刚学习的Spark sql去实现一下,你会发现,使用sql之后确实简单多了。...原创 2022-03-10 09:26:11 · 586 阅读 · 0 评论 -
Spark15:Spark SQL:DataFrame常见算子操作、DataFrame的sql操作、RDD转换为DataFrame、load和save操作、SaveMode、内置函数
前面我们学习了Spark中的Spark core,离线数据计算,下面我们来学习一下Spark中的Spark SQL。一、Spark SQL二、SparkSession三、创建DataFrame四、DataFrame常见算子操作五、DataFrame的sql操作六、RDD转换为DataFrame1、反射方式2、编程方式七、load和save操作八、SaveMode九、内置函数...原创 2022-03-09 10:25:48 · 2459 阅读 · 0 评论 -
Spark14:Spark程序性能优化02:算子优化
一、map vs mapPartitionsmap 操作:对 RDD 中的每个元素进行操作,一次处理一条数据。mapPartitions 操作:对 RDD 中每个 partition 进行操作,一次处理一个分区的数据。所以:map 操作: 执行 1 次 map算子只处理 1 个元素,如果 partition 中的元素较多,假设当前已经处理了 1000 个元素,在内存不足的情况下,Spark 可以通过GC等方法回收内存(比如将已处理掉的 1000 个元素从内存中回收)。因此, map 操作通常不会导致原创 2022-03-09 10:25:19 · 612 阅读 · 0 评论 -
Spark13:Spark程序性能优化01:高性能序列化类库、持久化或者checkpoint、JVM垃圾回收调优、提高并行度、数据本地化
一、性能优化分析一个计算任务的执行主要依赖于CPU、内存、带宽。Spark是一个基于内存的计算引擎,所以对它来说,影响最大的可能就是内存,一般我们的任务遇到了性能瓶颈大概率都是内存的问题,当然了CPU和带宽也可能会影响程序的性能,这个情况也不是没有的,只是比较少。Spark性能优化,其实主要就是在于对内存的使用进行调优。通常情况下,如果你的Spark程序计算的数据量比较小,并且你的内存足够使用,那么只要网络不至于卡死,一般是不会有大的性能问题的。但是Spark程序的性能问题往往出现在针对大数据量进行原创 2022-03-09 10:25:09 · 325 阅读 · 0 评论 -
Spark12:checkpoint
一、checkpoint概述checkpoint,是Spark提供的一个比较高级的功能。有时候,我们的Spark任务,比较复杂,从初始化RDD开始,到最后整个任务完成,有比较多的步骤,比如超过10个transformation算子。而且,整个任务运行的时间也特别长,比如通常要运行1~2个小时。在这种情况下,就比较适合使用checkpoint功能了。因为对于特别复杂的Spark任务,有很高的风险会出现某个要反复使用的RDD因为节点的故障导致丢失,虽然之前持久化过,但是还是导致数据丢失了。那么也就是说,出原创 2022-03-09 10:24:58 · 442 阅读 · 1 评论 -
Spark11:Spark的shuffle机制分析
一、Spark Shuffle经历的几个过程在MapReduce框架中,Shuffle是连接Map和Reduce之间的桥梁,Map阶段通过shuffle读取数据并输出到对应的Reduce;而Reduce阶段负责从Map端拉取数据并进行计算。在整个shuffle过程中,往往伴随着大量的磁盘和网络I/O。所以shuffle性能的高低也直接决定了整个程序的性能高低。Spark也会有自己的shuffle实现过程。我们首先来看一下在Spark中,什么情况下,会发生shuffle?reduceByKey、gro原创 2022-03-09 10:24:48 · 745 阅读 · 0 评论 -
Spark10:宽依赖和窄依赖以及Spark任务三种提交模式
一、宽依赖和窄依赖1、窄依赖窄依赖(Narrow Dependency):指父RDD的每个分区只被子RDD的一个分区所使用,例如map、filter等这些算子一个RDD,对它的父RDD只有简单的一对一的关系,也就是说,RDD的每个partition仅仅依赖于父RDD中的一个partition,父RDD和子RDD的partition之间的对应关系,是一对一的。2、宽依赖(Shuffle Dependency):父RDD的每个分区都可能被子RDD的多个分区使用,例如groupByKey、reduceB原创 2022-03-09 10:24:37 · 2205 阅读 · 0 评论 -
Spark09:【案例】实战:TopN主播统计:使用spark中的transformation算子实现
一、实战:TopN主播统计1、需求:计算每个大区当天金币收入TopN的主播背景是这样的,我们有一款直播APP,已经在很多国家上线并运营了一段时间,产品经理希望开发一个功能,topN主播排行榜,按天更新排名信息,统计的维度有多种,其中有一个维度是针对主播当天直播的金币收入进行排名。在我们的直播平台中有大区这个概念,一个大区下面包含多个国家,不同大区的运营策略是不一样的,所以就把不同国家划分到不同大区里面,方便运营。那这个TopN主播排行榜在统计的时候就需要分大区统计了。针对主播每天的开播数据我们已原创 2022-03-09 10:24:22 · 265 阅读 · 0 评论 -
Spark08:【案例】RDD持久化、共享变量
一、RDD持久化原理Spark中有一个非常重要的功能就是可以对RDD进行持久化。当对RDD执行持久化操作时,每个节点都会将自己操作的RDD的partition数据持久化到内存中,并且在之后对该RDD的反复使用中,直接使用内存中缓存的partition数据。这样的话,针对一个RDD反复执行多个操作的场景,就只需要对RDD计算一次即可,后面直接使用该RDD,而不需要反复计算多次该RDD。因为正常情况下这个RDD的数据使用过后内存中是不会一直保存的。例如这样的操作:针对mapRDD需要多次使用的val原创 2022-03-09 10:24:06 · 340 阅读 · 0 评论 -
Spark07:【案例】Transformation和Action
一、Transformation和Action接下来我们详细分析一下Spark中对RDD的操作Spark对RDD的操作可以整体分为两类:Transformation和Action这里的Transformation可以翻译为转换,表示是针对RDD中数据的转换操作,主要会针对已有的RDD创建一个新的RDD:常见的有map、flatMap、filter等等。Action可以翻译为执行,表示是触发任务执行的操作,主要对RDD进行最后的操作,比如遍历、reduce、保存到文件等,并且还可以把结果返回给Dri原创 2022-03-09 10:23:55 · 581 阅读 · 0 评论 -
Spark06:【案例】创建RDD:使用集合创建RDD、使用本地文件和HDFS文件创建RDD
一、创建RDDRDD是Spark编程的核心,在进行Spark编程时,首要任务是创建一个初始的RDD这样就相当于设置了Spark应用程序的输入源数据然后在创建了初始的RDD之后,才可以通过Spark 提供的一些高阶函数,对这个RDD进行操作,来获取其它的RDDSpark提供三种创建RDD方式:集合、本地文件、HDFS文件1、使用程序中的集合创建RDD,主要用于进行测试,可以在实际部署到集群运行之前,自己使用集合构造一些测试数据,来测试后面的spark应用程序的流程。2、使用本地文件创建RDD,主要原创 2022-03-09 10:23:36 · 1633 阅读 · 0 评论 -
Spark05:【案例】单词计数:Scala代码和Java代码实现以及任务提交的几种方式
一、单词计数首先看来一个快速入门案例,单词计数这个需求就是类似于我们在学习MapReduce的时候写的案例需求这样的:读取文件中的所有内容,计算每个单词出现的次数这个需求就没什么好分析的了,咱们之前在学习MapReduce的已经分析过了,接下来就来看一下使用Spark需要如何实现。注意:由于Spark支持Java、Scala这些语言,目前在企业中大部分公司都是使用Scala语言进行开发,个别公司会使用java进行开发,为了加深大家对Spark的理解,也满足java老程序员的需求,针对本课程中的案例原创 2022-03-08 09:36:49 · 2135 阅读 · 0 评论 -
Spark04:Spark工作和架构原理
一、Spark工作原理1、spark工作原理简介下面我们来分析一下Spark的工作原理来看这个图首先看中间是一个Spark集群,可以理解为是Spark的 standalone集群,集群中有6个节点。左边是Spark的客户端节点,这个节点主要负责向Spark集群提交任务,假设在这里我们向Spark集群提交了一个任务。那这个Spark任务肯定会有一个数据源,数据源在这我们使用HDFS,就是让Spark计算HDFS中的数据。当Spark任务把HDFS中的数据读取出来之后,它会把HDFS中的数据转化原创 2022-03-08 09:36:36 · 329 阅读 · 0 评论 -
Spark02:Spark安装部署【单机】
原创 2022-03-08 09:36:07 · 629 阅读 · 0 评论 -
Spark03:Spark安装部署【集群】:Standalone模式以及ON YARN模式
一、Spark集群安装部署Spark集群有多种部署方式,比较常见的有Standalone模式和ON YARN模式1、Standalone模式Standalone模式就是说部署一套独立的Spark集群,后期开发的Spark任务就在这个独立的Spark集群中执行2、ON YARN模式ON YARN模式是说使用现有的Hadoop集群,后期开发的Spark任务会在这个Hadoop集群中执行,此时这个Hadoop集群就是一个公共的了,不仅可以运行MapReduce任务,还可以运行Spark任务,这样集群的资原创 2022-03-08 09:35:17 · 2785 阅读 · 0 评论 -
Spark01:Spark介绍:什么是Spark、Spark的特点、与Hadoop的比较、与Hadoop的结合
一、什么是SparkSpark是一个用于大规模数据处理的统一计算引擎。注意:Spark不仅仅可以做类似于MapReduce的离线数据计算,还可以做实时数据计算,并且它还可以实现类似于Hive的SQL计算,等等,所以说它是一个统一的计算引擎。既然说到了Spark,那就不得不提一下Spark里面最重要的一个特性:内存计算。Spark中一个最重要的特性就是基于内存进行计算,从而让它的计算速度可以达到MapReduce的几十倍甚至上百倍。所以说在这大家要知道,Spark是一个基于内存的计算引擎。二、Sp原创 2022-03-08 09:34:55 · 847 阅读 · 0 评论