记载我的spark源码阅读火花

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记载我的spark源码阅读火花相关的知识,希望对你有一定的参考价值。

记载我的spark源码阅读火花


知识点:

1、seq:列表,适合存有序重复数据,进行快速插入/删除元素等场景,

Set是集合,适合存无序非重复数据,进行快速查找海量元素等场景

memoryKeys = Seq(
  )



2、private 声明变量为私有

private val hadoopConf = SparkHadoopUtil.get.newConfiguration(conf)

private[this] val value


private[spark],声明变量为私有,并且在包spark是可见的这里的[spark],是一种保护的作用域。

这是Master的类声明,同样在master域里

private[master] class Master(


3、没有括号的函数

下面是个函数调用

hellotheworld     //无参数不括号


4、可变参数的函数

(s:*)={
  s.foreach(x=>(x))
}

5、函数的奇葩定义:

(x:y:):=x+y          =(x:y:)=>x+y       (x:)(y:):=x+y        anonymous=(x:y:)=>x+y

6、import:可以在任何地方出现,作用范围是直到包含该语句的块末尾,好处是避免产生名称冲突。

SparkConf(loadDefaults: Boolean) Cloneable Logging {

  SparkConf._

7、this:函数的末尾最后一句

setExecutorEnv(variables: Seq[(StringString)]): SparkConf = {
  ((kv) <- variables) {
    setExecutorEnv(kv)
  }
  }

该函数返回SparkConf类型的值


8、模式匹配之master配置类型

master match{
case "local" =>
case LOCAL_N_REGEX(threads) =>
case LOCAL_N_FAILURES_REGEX(threads, maxFailures) =>
case SPARK_REGEX(sparkUrl) =>
case LOCAL_CLUSTER_REGEX(numSlaves, coresPerSlave, memoryPerSlave) =>
case "yarn-standalone" | "yarn-cluster" =>
case "yarn-client" =>
case SIMR_REGEX(simrUrl) =>
case mesosUrl @ MESOS_REGEX(_) =>

可见有上述几种配置类型

9、scala的Parallelize实现

第一种RDD生产方式,就是从本地的collection生成,可以看见生成的是ParallelCollectionRDD类型的

parallelize[T: ClassTag](
    seq: Seq[T]numSlices: Int = defaultParallelism): RDD[T] = withScope {
  assertNotStopped()
  ParallelCollectionRDD[T](seqnumSlicesMap[IntSeq[String]]())
}


以上是关于记载我的spark源码阅读火花的主要内容,如果未能解决你的问题,请参考以下文章

火花中止火花作业中打开的文件太多

泰妍 - SPARK火花帅气性感风回归!

spark源码阅读 启动代码阅读

学习 Spark Streaming

Apache火花中的Spark驱动程序

阅读源码|Spark 与 Flink 的 RPC 实现