記載我的spark源碼閱讀火花
我們提供的服務有:成都網(wǎng)站制作、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、圍場ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術(shù)的圍場網(wǎng)站制作公司
知識點:
1、seq:列表,適合存有序重復數(shù)據(jù),進行快速插入/刪除元素等場景,
Set
是集合,適合存無序非重復數(shù)據(jù),進行快速查找海量元素等場景
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、沒有括號的函數(shù)
下面是個函數(shù)調(diào)用
hellotheworld //無參數(shù)不括號
4、可變參數(shù)的函數(shù)
(s:*)={ s.foreach(x=>(x)) }
5、函數(shù)的奇葩定義:
(x:y:):=x+y =(x:y:)=>x+y (x:)(y:):=x+y anonymous=(x:y:)=>x+y
6、import:可以在任何地方出現(xiàn),作用范圍是直到包含該語句的塊末尾,好處是避免產(chǎn)生名稱沖突。
SparkConf(loadDefaults: Boolean) Cloneable Logging { SparkConf._
7、this:函數(shù)的末尾最后一句
setExecutorEnv(variables: Seq[(StringString)]): SparkConf = { ((kv) <- variables) { setExecutorEnv(kv) } }
該函數(shù)返回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實現(xiàn)
第一種RDD生產(chǎn)方式,就是從本地的collection生成,可以看見生成的是ParallelCollectionRDD類型的
parallelize[T: ClassTag]( seq: Seq[T]numSlices: Int = defaultParallelism): RDD[T] = withScope { assertNotStopped() ParallelCollectionRDD[T](seqnumSlicesMap[IntSeq[String]]()) }