您当前的位置: 首页 >  ar

181 Spark IDEA中编写WordCount程序

杨林伟 发布时间:2019-08-14 15:31:55 ,浏览量:0

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

1.创建一个项目 在这里插入图片描述 2.选择Maven项目,然后点击next 在这里插入图片描述 3.填写maven的GAV,然后点击next 在这里插入图片描述

4.填写项目名称,然后点击finish 在这里插入图片描述 5.创建好maven项目后,点击Enable Auto-Import 在这里插入图片描述 6.配置Maven的pom.xml



    4.0.0

    cn.itcast.spark
    spark-mvn
    1.0-SNAPSHOT

    
        1.7
        1.7
        UTF-8
        2.10.6
        2.10
    

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

        
            org.apache.spark
            spark-core_2.10
            1.5.2
        

        
            org.apache.spark
            spark-streaming_2.10
            1.5.2
        

        
            org.apache.hadoop
            hadoop-client
            2.6.2
        
    

    
        src/main/scala
        src/test/scala
        
            
                net.alchim31.maven
                scala-maven-plugin
                3.2.0
                
                    
                        
                            compile
                            testCompile
                        
                        
                            
                                -make:transitive
                                -dependencyfile
                                ${project.build.directory}/.scala_dependencies
                            
                        
                    
                
            
            
                org.apache.maven.plugins
                maven-surefire-plugin
                2.18.1
                
                    false
                    true
                    
                        **/*Test.*
                        **/*Suite.*
                    
                
            

            
                org.apache.maven.plugins
                maven-shade-plugin
                2.3
                
                    
                        package
                        
                            shade
                        
                        
                            
                                
                                    *:*
                                    
                                        META-INF/*.SF
                                        META-INF/*.DSA
                                        META-INF/*.RSA
                                    
                                
                            
                            
                                
                                    cn.itcast.spark.WordCount
                                
                            
                        
                    
                
            
        
    

7.将src/main/java和src/test/java分别修改成src/main/scala和src/test/scala,与pom.xml中的配置保持一致 在这里插入图片描述 在这里插入图片描述 8.新建一个scala class,类型为Object 在这里插入图片描述 9.编写spark程序

package cn.itcast.spark

import org.apache.spark.{SparkContext, SparkConf}

object WordCount {
 
  def main(args: Array[String]) {
   
    //创建SparkConf()并设置App名称
    val conf = new SparkConf().setAppName("WC")
  
    //创建SparkContext,该对象是提交spark App的入口
    val sc = new SparkContext(conf)
  
    //使用sc创建RDD并执行相应的transformation和action
    sc.textFile(args(0)).flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_, 1).sortBy(_._2, false).saveAsTextFile(args(1))
  
    //停止sc,结束该任务
    sc.stop()
  }
}

10.使用Maven打包:首先修改pom.xml中的main class 在这里插入图片描述 点击idea右侧的Maven Project选项 在这里插入图片描述 点击Lifecycle,选择clean和package,然后点击Run Maven Build 在这里插入图片描述 11.选择编译成功的jar包,并将该jar上传到Spark集群中的某个节点上 在这里插入图片描述

12.首先启动hdfs和Spark集群 启动hdfs

/usr/local/hadoop-2.6.1/sbin/start-dfs.sh

启动spark

/usr/local/spark-1.5.2-bin-hadoop2.6/sbin/start-all.sh

13.使用spark-submit命令提交Spark应用(注意参数的顺序)

/usr/local/spark-1.5.2-bin-hadoop2.6/bin/spark-submit \
--class cn.itcast.spark.WordCount \
--master spark://node1.itcast.cn:7077 \
--executor-memory 2G \
--total-executor-cores 4 \
/root/spark-mvn-1.0-SNAPSHOT.jar \
hdfs://node1.itcast.cn:9000/words.txt \
hdfs://node1.itcast.cn:9000/out

查看程序执行结果

hdfs dfs -cat hdfs://node1.itcast.cn:9000/out/part-00000
(hello,6)
(tom,3)
(kitty,2)
(jerry,1)

关注
打赏
1688896170
查看更多评论

杨林伟

暂无认证

  • 0浏览

    0关注

    3183博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0544s