Spark
掌控自己就能掌控世界
这个作者很懒,什么都没留下…
展开
-
Spark的缓存机制在代码中的运用
原创 2020-08-13 16:38:03 · 242 阅读 · 0 评论 -
认识RDD
一、什么是RDD?官方说法:RDD:弹性分布式数据集,是Spark最核心的数据结构。有分区机制,所以可以分布式进行处理。有容错机制,通过RDD之间的依赖关系来恢复数据。说白了RDD就是spark的一种特有集合,只不过这个集合它有分区属性,通过分区可以实现并行化计算,从而实现了spark高效处理数据的重要原因之一,此外RDD之间还存在着一种父子依赖关系,就向人类血缘关系一样,通过这种关系,可以实现数据的容错,比如说我们子RDD数据丢失了,可以通过计算父RDD重新生成子RDD数据。二、如何生成RDD?原创 2020-07-16 14:18:11 · 406 阅读 · 0 评论 -
SparkSQL执行时的优化参数
近期接手了不少大数据表任务调度补数据的工作,补数时发现资源消耗异常的大且运行速度却不怎么给力.发现根本原因在于sparkSQL配置有诸多问题,解决后总结出来就当抛砖引玉了.具体现象内存CPU比例失调 一个Spark任务消耗 120(executor)*4G = 480G内存仅仅使用120个 core.几个SprakSQL任务就将整个系统资源吃光.设置超过40个executor,但未指定分区数,导致多数executor空闲.原因分析SparkSQL配置时Core与内存比例不恰当没有指定execu转载 2020-06-30 17:23:17 · 870 阅读 · 0 评论 -
SpringRDD的5大特性
1.A list of partitionsRDD是一个由多个partition(某个节点里的某一片连续的数据)组成的的list;将数据加载为RDD时,一般会遵循数据的本地性(一般一个hdfs里的block会加载为一个partition)。总结RDD具有分区性2.A function for computing each split一个函数计算每一个分片,RDD的每个partition上面都...转载 2020-04-29 09:53:09 · 262 阅读 · 0 评论 -
Spark join和cogroup算子
join下面的代码包括RDD和DataFrame的join操作, 注释中有详细描述import org.apache.spark.sql.types.{DataTypes, StructField, StructType}import org.apache.spark.sql.{Row, SQLContext}import org.apache.spark.{SparkConf, Spar...转载 2020-04-27 22:20:03 · 246 阅读 · 0 评论 -
Spark的shuffle算子
一、去重def distinct()def distinct(numPartitions: Int)二、聚合def reduceByKey(func: (V, V) => V, numPartitions: Int): RDD[(K, V)]def reduceByKey(partitioner: Partitioner, func: (V, V) => V): RDD[(...转载 2020-04-27 22:17:40 · 144 阅读 · 0 评论 -
Spark性能优化--数据倾斜调优与shuffle调优
一、数据倾斜发生的原理1. 原理:在进行shuffle的时候,必须将各个节点上相同的key拉取到某个节点上的一个task来进行处理,比如按照key进行聚合或join等操作。此时如果某个key对应的数据量特别大的话,就会发生数据倾斜。数据倾斜只会发生在shuffle过程中。常用的并且可能会触发shuffle操作的算子:distinct、groupByKey、reduceByKey、aggregat...转载 2020-04-27 22:09:51 · 186 阅读 · 0 评论 -
大数据各集群管理地址
1.zookeeper:2.hadoop集群查查看namenode的信息:http://192.168.234.22:50070,查看namenode的信息和状态3.查看yarn资源的管理地址:http://192.168.234.21:8088(节点01的8088端口)4.HBase管理页面:hbase1.0之前版本是http://xxxxx:60010;1.0版本之后是16010端口,必...原创 2020-04-23 11:24:39 · 646 阅读 · 0 评论 -
Spark连接MySQL遇到的问题
在Xshell上Spark通过命令行读取MySQL库里的数据遇到的问题在执行下面代码前我已经将mysql驱动的jar复制粘贴到Spark安装目录下jars目录里代码先附上:scala> import org.apache.spark.sql.SQLContextimport org.apache.spark.sql.SQLContextscala> val sqc=new ...原创 2020-03-15 21:10:55 · 1054 阅读 · 0 评论 -
Spark连接MySQL的几种方式
一、spark连接mysql数据库的第一种方式:def main(args: Array[String]): Unit = { val spark: SparkSession = SparkSession.builder().master("local").appName("createdataframefrommysql") .config("spark.sql.shuffle.p...转载 2020-03-15 15:15:23 · 2596 阅读 · 0 评论 -
spark集群模式下textFile读取file本地文件报错解决
前言如果在spark-shell中使用textFile(“file://path”)演示,在local模式下是没有问题的,因为毕竟就是在本机运行,读取本地的文件。但是如果spark-shell --master指定spark集群的话,这样运行就会有问题,会报找不到文件的错误。解决方案那么解决的方案其实也比较简单,就是在所有的集群节点上相同的path下上传该文件。然后在textFile(“fi...转载 2020-03-14 13:36:26 · 1336 阅读 · 0 评论 -
Kryo序列化介绍
Spark序列化概述在Spark的架构中,在网络中传递的或者缓存在内存、硬盘中的对象需要进行序列化操作,序列化的作用主要是利用时间换空间:分发给Executor上的Task需要缓存的RDD(前提是使用序列化方式缓存)广播变量Shuffle过程中的数据缓存使用receiver方式接收的流数据缓存算子函数中使用的外部变量 上面的六种数据,通过Java序列化(默认的序列化方式)形成一个...转载 2020-03-12 22:34:50 · 703 阅读 · 0 评论 -
Scala中Ordered和Ordering的区别
本文转自:https://my.oschina.net/u/2963604/blog/2251373特此感谢大佬分享!在做视图界定的时候,希望比较两个参数的"大小",代码如下:class VBPair2[T <% Ordering[T]](val first:T,val second:T){ def bigger = if(first > second) first els...转载 2020-03-11 22:48:26 · 871 阅读 · 1 评论