Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序

学习用Eclipse+Maven来构建并打包一个简单的单词统计的例程。
本项目源码已托管于Github –>【Spark-wordcount】

第一步 在EclipseIDE中安装Scala插件

在Eclipse中安装Scala插件
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第1张图片
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第2张图片
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第3张图片

第二步 创建Scala Project

创建Scala 项目
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第4张图片
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第5张图片
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第6张图片

第三步 给Scala项目注入maven依赖

将Scala 项目 转为 Maven 项目
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第7张图片
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第8张图片
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第9张图片
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第10张图片
pom.xml


    4.0.0
    com.elon33.scala
    WordCount
    0.0.1-SNAPSHOT

    
        
            org.apache.spark
            spark-core_2.11
            2.2.1
            provided
        
    

    
        src
        
            
                maven-compiler-plugin
                3.5.1
                
                    1.8
                    1.8
                
            

            
                net.alchim31.maven
                scala-maven-plugin
                3.3.1
            
        
    

第四步 设置Scala Compiler 以及修改Scala Libarary Container版本

当设置完pom.xml,我们可以看到有一些错误出些,主要错误来源于编译器交叉编译,Scala源码包版本不对引起的。
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第11张图片
在这个项目中,从pom.xml中可以观察到spark版本是spark-core_2.11,因此Maven Dependencies中已经集成了Scala2.11,因此可以通过指定编译器版本和源码包版本解决Errors。
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第12张图片
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第13张图片

第五步 Maven 编译打包

通过对项目进行 Maven Install 可以得到可运行的jar包
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第14张图片
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第15张图片
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第16张图片
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第17张图片
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第18张图片
编译好的jar包中包含的class文件
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序_第19张图片

第六步 Spark 集群上运行

将jar包发送到Spark集群上运行

spark-submit --class com.elon33.wordcount WordCount-0.0.1-SNAPSHOT.jar ../opt/modules/spark-2.2.1-bin-hadoop2.7/README.md ./wordcounts

第七步 计数结果

单词程序的统计结果

[elon@hadoop scala]$ cd wordcounts/
[elon@hadoop wordcounts]$ ls
part-00000  _SUCCESS
[elon@hadoop wordcounts]$ cat part-00000 
(package,1)
(For,3)
(Programs,1)
(processing.,1)
(Because,1)
(The,1)
(page](http://spark.apache.org/documentation.html).,1) 
......

参考资料:
[1].Using Scala IDE on Maven projects http://scala-ide.org/docs/tutorials/m2eclipse/

转载请注明出处:http://blog.csdn.net/coder__cs/article/details/79047053
本文出自【elon33的博客】

你可能感兴趣的:(【编程语言】➣,Scala,【大数据】➣,Spark)