Spark 分布式计算 框架核心高阶进阶
spark进阶
yj2434
贪财好色,一身正气
展开
-
spark shuffle文件寻址过程
Shuffle 文件寻址1) MapOutputTrackerMapOutputTracker 是 Spark 架构中的一个模块,是一个主从架构。管理磁盘小文件的地址。MapOutputTrackerMaster 是主对象,存在于 Driver 中。MapOutputTrackerWorker 是从对象,存在于 Excutor 中。2) BlockManagerBlockManager 块管理者,是 Spark 架构中的一个模块,也是一个 主从架构。BlockManagerMaster,主原创 2020-11-02 17:29:38 · 134 阅读 · 0 评论 -
Spark Shuffle之SortShuffleManager机制原理
1. SparkShuffle 概念reduceByKey 会将上一个 RDD 中的每一个 key 对应的所有 value 聚合成一个 value,然后生成一个新的 RDD,元素类型是<key,value>对的形式,这样每一个 key 对应一个聚合起来的 value。问题:聚合之前,每一个 key 对应的 value 不一定都是在一个partition 中,也不太可能在同一个节点上,因为 RDD 是分布式的弹性的数据集,RDD 的 partition 极有可能分布在各个节点上。如何原创 2020-11-02 14:49:00 · 543 阅读 · 0 评论 -
Spark Master HA原理及搭建
1. Master 的高可用原理Standalone 集群只有一个 Master,如果 Master 挂了就无法提交应用程序,需要给 Master 进行高可用配置,Master 的高可用可以使用fileSystem(文件系统)和 zookeeper(分布式协调服务)。fileSystem 只有存储功能,可以存储 Master 的元数据信息,用fileSystem 搭建的 Master 高可用,在 Master 失败时,需要我们手动启动另外的备用 Master,这种方式不推荐使用。zookeep原创 2020-11-02 03:29:03 · 337 阅读 · 0 评论 -
Spark历史日志服务器开启及配置
可以使用历史日志服务器查看以前的job执行日志临时配置,对本次提交的应用程序起作用:./spark-shell --master spark://node1:7077--name myapp1--conf spark.eventLog.enabled=true--conf spark.eventLog.dir=hdfs://node1:9000/spark/test停止程序,在 Web Ui 中 Completed Applications 对应的ApplicationID 中能查看 his原创 2020-11-02 01:43:24 · 984 阅读 · 0 评论 -
spark 将数据序列化存放内存
在spark shell客户端启动后执行scala> var rdd = sc.textFile("hdfs://mycluster/spark/data/acc.txt")rdd: org.apache.spark.rdd.RDD[String] = hdfs://mycluster/spark/data/acc.txt MapPartitionsRDD[6] at textFile at <console>:24scala> rdd.cache()res1: org.原创 2020-11-01 19:09:46 · 194 阅读 · 0 评论 -
Spark自定义累加器原理及实现
代码示例:import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.util.AccumulatorV2case class Student(var studentCount: Int, var studentTotalScore: Int)class CustomizeAccumulator extends AccumulatorV2[Stu.原创 2020-11-01 02:14:54 · 309 阅读 · 0 评论 -
Spark高级应用之spark累加器原理
累加器理解图:累加器在 Driver 端定义赋初始值,累加器只能在 Driver 端读取,在 Excutor 端更新。示例代码:import org.apache.spark.rdd.RDDimport org.apache.spark.util.LongAccumulatorimport org.apache.spark.{SparkConf, SparkContext}/** * 累加器的代码 * 累加器只能在Driver端定义,在Executor端累加,获取累加器的值 : ac原创 2020-10-31 17:42:42 · 788 阅读 · 0 评论 -
Spark核心之 广播变量原理
第五章 Spark 分布式计算框架核心高阶进阶算子外的代码在driver端执行,算子内的代码在execute端执行。原创 2020-10-30 22:34:03 · 133 阅读 · 0 评论