已有环境hdfs+spark+yarn
一.环境准备 JDK+Scala+Spark
二.WordCount单词计数
进入spark-shell
val lines=sc.textFile("../README.md",2)
val words=lines.flatMap(line=>line.split(" "))
val ones=words.map(w=>(w,1))
val counts=ones.reduceByKey(_+_)
第一步,将文件读取,处理成RDD[String]类型。其中textFile(path,minpartition),path可以写成hdfs上的路径,否则在执行4的时候,会报错找不到文件。因为文件存储在hdfs上,会根据block的大小将文件拆分成相应的分区,minpartition参数传给spark,那么spark读取文件的时候,会使用相应数目的线程进行处理?(minpartition的具体含义)
第二,三步,将单词分割,并将每个单词map成(Word,1)
第四步,执行reduce统计每个单词的个数
如下图
三.spark-shell
saprk-shell打开spark的人机交互界面repl,在界面输入scala代码,可以进行对数据的处理
spark-shell处理交互内容的过程:
指令->spark-shell->spark-submit->spark-class->启动SparkSubmit进程
SparkSubmit进程:SparkSubmit.main->repl.Main->SparkILoop.process->initializeSpark->createSparkContext->SparkConf,SparkContext
SparkConf 接收处理配置参数
SparkContext 为要处理的内容,返回RDD