![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spark
spark
韩运畅
这个作者很懒,什么都没留下…
展开
-
spark--repartition与coalesce
repartition源码: /** * 注释写的很清楚 * Return a new RDD that has exactly numPartitions partitions. * * Can increase or decrease the level of parallelism in this RDD. Internally, this uses * a ...原创 2020-05-03 18:17:01 · 142 阅读 · 0 评论 -
spark--join的三种方式
broadcast hash join(小表和大表)将小表broadcast到所有的Executor中,将其加载进内存,然后生成一个hash table,每个节点都遍历所分得大表中的数据,先判断join字段的hash是否相等,如果相等在判断join字段是否相等网络传输数据量:小表*kshuffle hash join(较大表和大表)----原理:key若相等,hash值必...原创 2020-05-03 17:13:43 · 397 阅读 · 0 评论 -
spark--RDD分区器
分区器的主要作用:1. 决定一条记录应该进入哪一个分区,或者说map端的数据应该进入哪一个reducer2. 决定分区的数量,例如执行操作 groupByKey(new HashPartitioner(2)) 所生成的 ShuffledRDD 中,分区的数目等于 2。 HashPartitioner根据key的hash值模上分区数量。缺点:可能导致数据倾斜RangePartit...原创 2020-05-03 16:25:50 · 129 阅读 · 0 评论 -
spark--存储模块
主从架构,driver端的BlockManager随着SparkEnv被创建而创建,SparkEnv随着SparkContext创建而被创建。Master存储的是整个application的元数据。原创 2020-05-03 15:35:47 · 111 阅读 · 0 评论 -
RDD==依赖+定义的计算+分区数+。。。
RDD:弹性分布式数据集特点:粗粒度转换,只读的,不同于细粒度状态更新的模型优点:极其利于容错处理+…原创 2020-05-02 21:54:20 · 67 阅读 · 0 评论 -
Shuffle模块
shuffle概述:前一个stage 的 ShuffleMapTask 进行 shuffle write, 把数据存储在 blockManager 上面, 并 且把数据位置元信息上报到 driver 的 mapOutTrack 组件中, 下一个 stage 根据数据位置元信息, 进行 shuffle read, 拉取上个stage 的输出数据。...原创 2020-05-02 19:12:14 · 454 阅读 · 0 评论 -
Scheduler模块
概述:Scheduler模块有两个重要的组件,DAGScheduler与TaskScheduler。DAGScheduler主要负责分析用户提交的应用,并根据任务的依赖关系建立DAG,然后将DAG划分为不同的stage,其中每个stage由一组可以并发执行的task组成,这些task的执行逻辑相同只是作用于不同的数据。在DAGScheduler将这组Task划分完后,会将他们提交给TaskSche...原创 2020-05-02 17:33:25 · 344 阅读 · 0 评论 -
spark--closure broadcast accumulator
closure:这种代码是错误的:var counter = 0var rdd = sc.parallelize(data)// Wrong: Don't do this!!rdd.foreach(x => counter += x)println("Counter value: " + counter)closure :To execute jobs, Spark br...原创 2020-05-02 15:18:41 · 131 阅读 · 0 评论 -
spark--cache persist checkpoint区别
cache与persistcache等于persist(MEMORY_ONLY),他们都需要action算子触发,数据在该进程结束后会被删除,不会切断血缘。Memory_Only:只存于内存Disk_Only:只存于磁盘Memory_and_disk:内存不够,存于磁盘Memory_only_ser:将数据以序列化的方式存于内存checkpoint他是在job执行后,从final...原创 2020-05-02 15:00:56 · 149 阅读 · 0 评论 -
spark的app如何执行
App -> job -> stage -> taskapp中的每一个action算子都会触发一个job,每个job根据宽依赖划分为若干stage,每个stage有若干窄依赖的tasks,tasks并行执行,task中后面的transformation的输入是前面的输出。每个job的结果都会汇总到driver中。问题1:如何划分tasks?一个stage中所有由黑线连...原创 2020-05-02 14:45:22 · 531 阅读 · 0 评论 -
spark--集群架构
Master Worker Driver Executor(线程池<-->tasks) applicationMaster:负责管理所有的Worker节点并进行资源分配Worker:负责管理所有的Executor,并与Master进行通信,默认一个Worker只有一个ExecutorApplication:一个Application==Driver+若干Executor...原创 2020-05-01 18:01:03 · 207 阅读 · 0 评论 -
spark中的宽窄依赖
NarrowDependency: Base class for dependencies where each partition of the child RDD depends on a small number of partitions of the parent RDD. Narrow dependencies allow for pipelined execution....原创 2020-04-27 14:29:07 · 228 阅读 · 0 评论