![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spark
dwjf321
这个作者很懒,什么都没留下…
展开
-
Spark 从 0 到 1 学习(12) —— Spark 相关问题
文章目录1. Spark 比 MR 块的原因?2. Spark 中主要进程的作用3. Spark 故障解决3.1 shuffle file cannot find:磁盘小文件找不到3.2 Reduce OOM1. Spark 比 MR 块的原因?Spark 的计算结果可以放入内存,支持基于内存的迭代,MR 不支持。Spark 有 DAG 有向无环图,可以实现 pipeline 的计算模式。资源调度模式:Spark 是粗粒度资源调度,MR 是细粒度资源调度。资源复用:Spark 中的 task 可原创 2020-10-14 09:17:00 · 208 阅读 · 0 评论 -
Spark 从 0 到 1 学习(11) —— Spark 解决数据倾斜
文章目录1. 使用 Hive ETL 预处理数据1.1 方案适用场景1.2 方案实现思路1.3 方案实现原理2. 过滤少数导致倾斜的 key2.1 方案适用场景2.2 方案实现思路2.3 方案实现原理3. 提高 shuffle 操作的并行度3.1 方案实现思路3.2 方案实现原理4. 双重聚合4.1 方案适用场景4.2 方案实现思路4.3 方案实现原理5. 将 reduce join 转为 map join5.1 方案适用场景5.2 方案实现思路5.3 方案实现原理6. 采样倾斜 key 并分拆 join原创 2020-10-14 09:16:40 · 346 阅读 · 0 评论 -
Spark 从 0 到 1 学习(10) —— Spark 调优(四)——Executor 的堆外内存调优
文章目录1. 调节 Executor 的堆外内存1.1 如何调节等待时长呢?1.2 如何调节堆外内存?1. 调节 Executor 的堆外内存Spark 底层 shuffle 的传输方式使用的是 netty 传输,netty 在进行网络传输的过程会申请堆外内存(netty 是零拷贝),所以使用了堆外内存。默认情况下,这个堆外内存上限是每个 Executor 的内存大小的 10%。真正处理大数据的时候,这里都会出现问题,导致 Spark 作业反复崩溃,无法运行。此时就需要去调节这个参数。调到至少 1G,甚原创 2020-10-14 09:16:07 · 324 阅读 · 0 评论 -
Spark 从 0 到 1 学习(10) —— Spark 调优(三)——内存调优
文章目录1. 内存调优2. Spark 中如何内存调优?3. 如何查看 GC?1. 内存调优JVM 堆内存分为一块较大的 Eden 和两块较小的 Survivor。每次只使用 Eden 和其中一块 Survivor。当回收时 将 Eden 和 Survivor 中还存活IDE对象复制到 另外一块 Survivor 上,最后清理掉 Eden 和刚才使用过的 Survivor。也就是说当task创建出来对象会首先往 Eden 和 Survivor1 中存放,Survivor2 是空闲的,当 Eden 和S原创 2020-10-14 09:15:41 · 248 阅读 · 0 评论 -
Spark 从 0 到 1 学习(10) —— Spark 调优(二)——数据本地化
文章目录1. 数据本地化1.1 数据本地化的级别1.1.1 PROCESS_LOCAL(进程本地)1.1.2 NODE_LOCAL(节点本地)1.1.3 NO_PREF1.1.4 RACK_LOCAL1.1.5 ANY2. Spark 数据本地化调优2.1 如何提高数据本地化的级别?2.2 如何查看数据本地化的级别?1. 数据本地化1.1 数据本地化的级别1.1.1 PROCESS_LOCAL(进程本地)task 要计算的数据在本进程(Executor) 的内存中。1.1.2 NODE_LOCA原创 2020-10-14 09:15:21 · 266 阅读 · 0 评论 -
Spark 从 0 到 1 学习(10) —— Spark 调优(一)——系统及代码调优
文章目录1. 资源调优1.1 搭建 Spark 集群的时候配置 CPU 和内存1.2 在提交 Application 的时候给 Application 分配更多的资源2. 并行调优3. 代码调优3.1 避免创建重复的 RDD3.2 尽量使用广播变量3.3 尽量避免使用 shuffle 类的算子3.4 使用 map-side 预聚合的 shuffle 操作3.5 尽量使用高性能的算子3.6 使用 Kryo 优化序列化性能3.6.1 在 Spark 中,主要有三个地方涉及到了序列化:3.6.2 Kryo 序列化原创 2020-10-13 17:09:53 · 268 阅读 · 0 评论 -
Spark 从 0 到 1 学习(9) —— Spark Streaming + Kafka
文章目录1. Kafka中的数据消费语义介绍2. Kafka 的消费模式2.1 SparkStreaming消费kafka整合介绍基于0.8版本整合方式2.1.1 Receiver-based Approach(不推荐使用)2.1.2 Direct Approach (No Receivers)2.2 解决SparkStreaming与Kafka0.8版本整合数据不丢失方案2.2.1 方案设计如下:2.2.2 手动维护 offset,偏移量存入 Redis2.3 SparkStreaming与Kafka-0原创 2020-10-13 16:55:10 · 288 阅读 · 0 评论 -
Spark 从 0 到 1 学习(8) —— Spark Streaming
文章目录1. SparkStreaming 简介2. SparkStreaming 与 Storm 的区别3. SparkStreaming 初始3.1 SparkStreaming 初始理解3.2 SparkStreaming 代码3.2.1 socket 生产数据3.2.2 SparkStreaming 代码注意事项4. SparkStreaming 算子操作4.1 foreachRDD4.2 transform4.3 updateStateByKey4.4 window4.4.1 window 操作图原创 2020-10-13 14:16:12 · 250 阅读 · 0 评论 -
Spark 从 0 到 1 学习(7) —— Spark SQL
文章目录1. Shark2. SparkSQL2.1 SparkSQL 介绍2.2 Spark on Hive 和 Hive on Spark2.3 Dataset2.4 SparkSQL 的数据源2.5 SparkSQL 底层架构2.6 谓词下推(Predicate pushdown)3. 创建 Dataset 的几种方式3.1 读取 json 格式的文件创建3.2 非 json 格式的 RDD 转 Dataset3.2.1 通过反射的方式将 非 json 格式的 RDD 转换成 Dataset (不建议原创 2020-10-13 14:11:55 · 172 阅读 · 0 评论 -
Spark 从 0 到 1 学习(6) —— Spark 内存管理
文章目录1. 静态内存管理1.1 静态内存管理分布图1.2 静态内存管理详解2. 统一内存管理2.1 统一内存管理分布图2.2 统一内存管理详解3. reduce 中 OOM 如何处理?Spark 执行应用程序时,Spark 集群会启动 Driver 和 Executor 两种 JVM进程。Driver 负责创建 SparkContext 上下文,提交任务,调度任务等。Executor 负责 task 的计算任务,并将结果返回给 Driver。同时需要为需要持久化的 RDD 提供存储。Driver 端的内原创 2020-10-13 11:52:26 · 253 阅读 · 0 评论 -
Spark 从 0 到 1 学习(5) —— SparkShuffle详解
文章目录1. SparkShuffle 概念2. HashShuffleManager2.1 普通机制2.2 合并机制3. SortShuffleManager3.1 普通机制3.2 bypass 机制4. Shuffle 文件寻址4.1 MapOutputTracker4.2 BlockManager4.3 Shuffle 文件寻址5. Shuffle 优化5.1 调优参数5.2 调优方式1. SparkShuffle 概念reduceByKey 会将上一个 RDD 中的每个 key 对应的所有 va原创 2020-10-13 11:50:16 · 210 阅读 · 0 评论 -
Spark 从 0 到 1 学习(4) —— Apache Spark 广播变量和累加器
文章目录1. 广播变量1.1 广播变量理解图1.2 广播变量使用1.3 注意事项2. 累加器2.1 累加器理解图2.2 累加器的使用2.3 自定义累加器2.4 主要事项1. 广播变量1.1 广播变量理解图1.2 广播变量使用object SparkBroadCast { def main(args: Array[String]): Unit = { val conf = new SparkConf(); conf.setMaster("local") conf.setA原创 2020-10-13 11:45:43 · 209 阅读 · 0 评论 -
Spark 从 0 到 1 学习(3) —— Apache Spark 提交参数和资源调度源码分析
Spark 从 0 到 1 学习(3) —— Apache Spark 提交参数和资源调度源码分析1. Spark-Submit 提交参数参数名参数值–masterspark://host:port;mesos://host:port,yarn;yarn-cluster,yarn-clint;local–deploy-modeDriver 程序运行的地方,client或者cluster,默认是client–class主类名–jars逗号分隔本地jars,Dr原创 2020-10-13 11:40:45 · 227 阅读 · 0 评论 -
Spark 从 0 到 1 学习(2) —— Apache Spark 运行模式与原理
Spark 从 0 到 1 学习(2) —— Apache Spark 运行模式与原理文章目录Spark 从 0 到 1 学习(2) —— Apache Spark 运行模式与原理1. Standalone 模式两种提交任务方式1.1 Standalone-client 提交任务方式1.2 Standalone-cluster 提交任务方式1.3 总结2. Yarn 模式两种提交任务方式2.1 yarn-client 提交任务方式2.2 yarn-cluster 提交任务方式3. Spark 术语解释4.原创 2020-10-13 11:36:48 · 583 阅读 · 2 评论 -
Spark 从 0 到 1 学习(1) —— Apache Spark 介绍
Spark 从 0 到 1 学习(1) —— Apache Spark 介绍文章目录Spark 从 0 到 1 学习(1) —— Apache Spark 介绍1. 初始Spark1.1 什么是Spark1.2 Spark与MapReduce的区别1.3 Spark 运行模式2. SparkCore2.1 RDD2.1.1 概念2.1.2 RDD的五大特性2.1.3 RDD 图解2.2 Spark 任务执行原理2.3 Spark代码流程2.4 Transformations 转换算子2.4.1 概念2.4原创 2020-10-13 11:27:11 · 458 阅读 · 0 评论 -
Spark 从 0 到 1 学习 —— Spark 集群搭建
spark集群搭建 saprk on yarn原创 2020-11-16 23:16:54 · 288 阅读 · 0 评论