Spark----在 IDEA 中编写 WordCount 程序

Spark Shell 仅在测试和验证我们的程序时使用的较多,在生产环境中,通常会在 IDEA 中编写程序,然后打成 jar 包,然后提交到集群,最常用的是创建一个 Maven 项目,利用 Maven 来管理 jar 包的依赖。 

1、创建一个 IDEA 的 maven 项目 

Spark----在 IDEA 中编写 WordCount 程序_第1张图片

2、选择 Maven 项目,然后点击 next 

Spark----在 IDEA 中编写 WordCount 程序_第2张图片

3、填写 maven 的 GAV,然后点击 next 

Spark----在 IDEA 中编写 WordCount 程序_第3张图片

4、填写项目名称,然后点击 finish 

Spark----在 IDEA 中编写 WordCount 程序_第4张图片

5、创建好 maven 项目后,点击 Enable Auto-Import 

Spark----在 IDEA 中编写 WordCount 程序_第5张图片

6、配置 maven 的 pom.xml 文件 



    4.0.0

    com.mazh.spark
    Spark_WordCount
    1.0-SNAPSHOT

    
        1.8
        1.8
        UTF-8
        2.11.8
        2.3.0
        2.7.5
        2.11
    

    
        
            org.scala-lang
            scala-library
            ${scala.version}
        

        
            org.apache.spark
            spark-core_2.11
            ${spark.version}
        

        
            org.apache.spark
            spark-sql_2.11
            ${spark.version}
        

        
            org.apache.spark
            spark-streaming_2.11
            ${spark.version}
        

        
            org.apache.hadoop
            hadoop-client
            ${hadoop.version}
        
    

    
        
            
                
                    net.alchim31.maven
                    scala-maven-plugin
                    3.2.2
                
                
                    org.apache.maven.plugins
                    maven-compiler-plugin
                    3.5.1
                
            
        
        
            
                net.alchim31.maven
                scala-maven-plugin
                
                    
                        scala-compile-first
                        process-resources
                        
                            add-source
                            compile
                        
                    
                    
                        scala-test-compile
                        process-test-resources
                        
                            testCompile
                        
                    
                
            

            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    
                        compile
                        
                            compile
                        
                    
                
            

            
                org.apache.maven.plugins
                maven-shade-plugin
                2.4.3
                
                    
                        package
                        
                            shade
                        
                        
                            
                                
                                    *:*
                                    
                                        META-INF/*.SF
                                        META-INF/*.DSA
                                        META-INF/*.RSA
                                    
                                
                            
                        
                    
                
            
        
    

7、将 src/main/java 和 src/test/java 分别修改成 src/main/scala 和 src/test/scala,与 pom.xml 中的配置保持一致 

Spark----在 IDEA 中编写 WordCount 程序_第6张图片

8、新建一个 Scala Class 类型为 Object,编写 WordCount 程序 

package com.mazh.spark 
 
import org.apache.spark.{SparkConf, SparkContext} 
 
object WordCount { 

  def main(args: Array[String]): Unit = { 
 
    // 创建一个 SparkConf对象,并设置程序的名称 
    val conf = new SparkConf().setAppName("WordCount") 
 
    // 创建一个 SparkContext对象 
    val sc = new SparkContext(conf) 
 
    // 读取 HDFS上的文件构建一个 RDD 
    val fileRDD = sc.textFile(args(0)) 
 
    // 构建一个单词 RDD 
    val wordAndOneRDD = fileRDD.flatMap(_.split(" ")).map((_, 1)) 
 
    // 进行单词的聚合     
    val resultRDD = wordAndOneRDD.reduceByKey(_+_) 
 
    // 对 resultRDD进行单词出现次数的降序排序,然后写出结果到 HDFS 
    resultRDD.sortBy(_._2, false).saveAsTextFile(args(1)) 
 
    sc.stop() 
  } 
}

 9、使用 maven 进行打包 点击右侧的 maven project 选项。先点击 clean 再点击 package 进行打包 

Spark----在 IDEA 中编写 WordCount 程序_第7张图片

10、上传打好的 jar 包到 spark 集群中的用来提交任务的节点 

执行命令: 

$SPARK_HOME/bin/spark-submit \ 
--class com.mazh.spark.WordCount \ 
--master spark://hadoop02:7077 \ 
--executor-memory 512m \ 
--total-executor-cores 4 \ 
/home/hadoop/Spark_WordCount-1.0-SNAPSHOT.jar \ 
hdfs://myha01/spark/wc/input \ 
hdfs://myha01/spark/wc/output_11 

验证结果 

Spark----在 IDEA 中编写 WordCount 程序_第8张图片

你可能感兴趣的:(Spark)