Spark
文章平均质量分 84
Spark
努力转行的任同学...
好好规划自己的路,不要跟着感觉走......
展开
-
已解决:java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration
搭建测试集群后,使用Spark SQL 测试集群数据,报错:java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration,找不到这个依赖了,一开始在pom中添加上了。但是报错还是error,因为我使用了高版本的spark,但是 1.10 版本的 commons-configuration 不支持…,升级一下版本,换成1.6就行了。原创 2023-03-12 16:12:01 · 1403 阅读 · 0 评论 -
Spark——(Standalone模式,Shuffle原理,RDD编程优化)
1. 避免使用groupByKey,根据场景选择使用高性能的聚合算子 reduceByKey、aggregateByKey2. coalesce、repartition,在可能的情况下优先选择没有shuffle的操作3. foreachPartition 优化输出操作4. map、mapPartitions,选择合理的选择算子,mapPartitions性能更好,但数据量大时容易导致OOM5. 用 repartitionAndSortWithinPartitions 替代 repartition +原创 2022-05-03 13:34:54 · 155 阅读 · 0 评论 -
Spark——(RDD分区,RDD分区器,广播变量,累加器)
对于给定的key,计算其hashCode,并除以分区的个数取余,如果余数小于0,则用 余数+分区的个数,最后返回的值就是这个key所属的分区ID。水塘采样:从包含n个项目的集合S中选取k个样本,其中n为一很大或未知的数量,尤其适用于不能把所有n个项目都存放到主内存的情况;数据重组需要规则,最常见的就是基于 Hash 的分区,此外还有一种复杂的基于抽样Range 分区方法;自定义分区器:Spark允许用户通过自定义的Partitioner对象,灵活的来控制RDD的分区方式。通过textFile创建。原创 2022-04-30 18:20:24 · 347 阅读 · 0 评论 -
Spark——(序列化,RDD依赖关系,RDD持久化/缓存,RDD容错机制Checkpoint)
通过基于RDD的一系列的转换,丢失的数据会被重算。自定义一些对RDD的操作时,初始化工作是在Driver端进行的,实际运行程序是在Executor端进行的,此时,涉及到了进程之间的通信,需要进行序列化。程序执行完毕后,系统会清理cache数据;RDD的Lineage会记录RDD的元数据信息和转换行为,当该RDD的部分分区数据丢失时,可根据这些信息来重新运算和恢复丢失的数据分区。通过persist()或cache()方法可以标记一个要被持久化的RDD,持久化被触发,RDD将会被保留在计算节点的内存中并重用;原创 2022-04-24 21:35:58 · 158 阅读 · 0 评论 -
Spark——(文件输入与输出,算子综合应用)
数据读取:textFile(String)。可指定单个文件,支持通配符。这样对于大量的小文件读取效率并不高,应该使用 wholeTextFiles。数据保存:saveAsTextFile(String)。原创 2022-04-16 13:57:42 · 455 阅读 · 0 评论 -
Spark——(Action算子,PairRDD,PairRDD Transformation操作,PairRDD Action操作)
PairRDD 聚合操作,PariRDD(k, v)使用范围广,聚合:groupByKey / reduceByKey / foldByKey / aggregateByKey。类似 map 操作,mapValues / flatMapValues / keys / values,这些操作都可以使用 map 操作实现,是简化操作。lookup(key):高效的查找方法,只查找对应分区的数据(如果RDD有分区器的话)first / take(n) / top(n) :获取RDD中的元素。原创 2022-04-13 10:45:39 · 193 阅读 · 0 评论 -
Spark——(RDD(弹性分布式数据集),RDD的创建和操作,Transformation 算子)
假设一个RDD有N个元素,M个分区(N>> M),那么map的函数将被调用N次,而mapPartitions中的函数仅被调用M次,一次处理一个分区中的所有元素。以指定的随机种子(seed)随机抽样出数量为fraction的数据,withReplacement表示是抽出的数据是否放回,true为有放回的抽样,false为无放回的抽样。zip(otherRDD):将两个RDD组合成 key-value 形式的RDD,默认两个RDD的partition数量以及元素数量都相同,否则会抛出异常。union是窄依赖。原创 2022-04-03 21:36:33 · 321 阅读 · 0 评论 -
Spark——(Spark简介,Spark 与 Hadoop,Spark系统架构)
Spark是一个开源集群计算框架。其主要目的是处理实时生成的数据。Spark实现了高效的DAG执行引擎,可以通过基于内存来高效处理数据流;与 MapReduce 相比,Spark基于内存的运算要快100倍以上,基于硬盘的运算也要快10倍以上。Spark支持 Scala、Java、Python、R的API,支持交互式的Python和Scala的shellSpark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)原创 2022-03-30 21:27:01 · 507 阅读 · 0 评论