【Spark】五、Maven编写WordCount

1.Maven工程【父子结构搭建】

  • 打开IDEA,新建Maven Project【spark】,填写Maven的GAV

【Spark】五、Maven编写WordCount_第1张图片

  • 创建好maven项目之后,点击Enable Auto-Import

【Spark】五、Maven编写WordCount_第2张图片

  • 修改spark的pom.xml文件

pom
--------------------------
src就没用了,可以删除
  • 在spark project下 new module:添加子项目【spark-core】

【Spark】五、Maven编写WordCount_第3张图片

  • 修改spark-core的pom.xml文件

pom
--------------------------
src就没用了,可以删除
  • 在spark-core模块下 new module:新建子项目【spark-wordcount】

注意:第三层级创建时注意location,手动更改为spark-core下面

【Spark】五、Maven编写WordCount_第4张图片

spark的pom.xml中
应该有spark-core
---------------------------------------------------------------------
spark-core的pom.xml中
是spark
应该有spark-wordcount
---------------------------------------------------------------------
spark-wordcount的pom.xml中
是spark-core
  •  至此,Maven项目的父子结构基本完成

2.修改spark的pom.xml

  • 对于开发过程中所需要的文件进行配置
  • 声明公有的属性
    
    
        2.1.1
        2.11.8
        1.2.17
        1.7.22
    
  • 声明并引入公有的依赖【日志和scala】
    
    
        
        
            org.slf4j
            jcl-over-slf4j
            ${slf4j.version}
        
        
            org.slf4j
            slf4j-api
            ${slf4j.version}
        
        
            org.slf4j
            slf4j-log4j12
            ${slf4j.version}
        
        
            log4j
            log4j
            ${log4j.version}
        
        
        
            org.scala-lang
            scala-library
            ${scala.version}
            
        
    
  • 仅声明公有的依赖【spark-core】
    
    
        
            
            
                org.apache.spark
                spark-core_2.11
                ${spark.version}
                
                
            
        
    
  • 配置构建信息
    
    
        
        
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.6.1
                
                    1.8
                    1.8
                
            
            
            
                net.alchim31.maven
                scala-maven-plugin
                3.2.2
                
                    
                        
                            compile
                            testCompile
                        
                    
                
            
        
        
        
            
                
                    org.apache.maven.plugins
                    maven-assembly-plugin
                    3.0.0
                    
                        
                            make-assembly
                            package
                            
                                single
                            
                        
                    
                
            
        
    

3.修改spark-core的pom.xml

  • 声明并引入公有的依赖
    
    
        
            org.apache.spark
            spark-core_2.11
        
    

4.编写WordCount代码

  • 新建一个package

【Spark】五、Maven编写WordCount_第5张图片

  • 新建Scala Class文件【WordCount object】

【Spark】五、Maven编写WordCount_第6张图片

  • 将scala设为源代码目录

【Spark】五、Maven编写WordCount_第7张图片

  • 编码
import org.apache.spark.{SparkConf, SparkContext}

object WordCount extends App {
//  声明配置
  val sparkConf = new SparkConf().setAppName("WordCount").setMaster("local[*]")
//  创建SparkContext
  val sc = new SparkContext(sparkConf)
//  业务逻辑
  val file = sc.textFile("hdfs://192.168.1.10:9000/user/lsy/README.txt")
  val words = file.flatMap(_.split(" "))
  val word2count = words.map((_,1))
  val result = word2count.reduceByKey((_+_))
  result.saveAsTextFile("hdfs://192.168.1.10:9000/user/lsy/result1")
//  关闭Spark连接
  sc.stop()
}

注意:安装完IDEA的scala插件之后,还是不能创建scala相关文件时,需要检查Scala sdk

安装Scala sdk【File--Project Structure--Global Libraries】

  • 1.确定IDEA所需scala插件版本

【Spark】五、Maven编写WordCount_第8张图片

  • 2.到 https://plugins.jetbrains.com/plugin/1347-scala 下载对应的插件

  • 3.下载完成后,将scala插件放到IDEA安装目录下的plugins目录
  • 4.手动安装scala-intellij-bin-2019.3.23.zip插件

【Spark】五、Maven编写WordCount_第9张图片

【Spark】五、Maven编写WordCount_第10张图片

  • 5.成功之后,需要重启IDEA
  • 6.下载scala【https://www.scala-lang.org/download/2.11.8.html】

【Spark】五、Maven编写WordCount_第11张图片


  • 7.解压到指定目录
  • 8.安装scala sdk,并将sdk添加到所需要的module中

【Spark】五、Maven编写WordCount_第12张图片

注意:project structure中添加的sdk版本与项目依赖的scala版本保持一致 


 5.修改spark-wordcount的pom.xml

  • 配置构建信息
    
    
        
            
                org.apache.maven.plugins
                maven-assembly-plugin
                
                    
                        
                            edu.lsy.wordcount.WordCount
                        
                    
                    
                        jar-with-dependencies
                    
                
            
        
    

 

你可能感兴趣的:(Spark)