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

第一步 在EclipseIDE中安装Scala插件
在Eclipse中安装Scala插件

第二步 创建Scala Project
创建Scala 项目

第三步 给Scala项目注入maven依赖
将Scala 项目 转为 Maven 项目

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.elon33.scala</groupId>
<artifactId>WordCount</artifactId>
<version>0.0.1-SNAPSHOT</version> <dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
</dependencies> <build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin> <plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.3.1</version>
</plugin>
</plugins>
</build>
</project>

第四步 设置Scala Compiler 以及修改Scala Libarary Container版本
当设置完pom.xml,我们可以看到有一些错误出些,主要错误来源于编译器交叉编译,Scala源码包版本不对引起的。

在这个项目中,从pom.xml中可以观察到spark版本是spark-core_2.11,因此Maven Dependencies中已经集成了Scala2.11,因此可以通过指定编译器版本和源码包版本解决Errors。

第五步 Maven 编译打包
通过对项目进行 Maven Install 可以得到可运行的jar包

编译好的jar包中包含的class文件

第六步 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/
---------------------
作者:longshilin.com
来源:CSDN
原文:https://blog.csdn.net/coder__cs/article/details/79047053
版权声明:本文为博主原创文章,转载请附上博文链接!

Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序的更多相关文章

  1. Eclipse+maven+scala+spark环境搭建

    准备条件 我用的Eclipse版本 Eclipse Java EE IDE for Web Developers. Version: Luna Release (4.4.0) 我用的是Eclipse ...

  2. 使用阿里云的Maven仓库加速Spark编译过程

    前言 在国内编译Spark项目需要从Maven源下载很多依赖包,官方源在国内大环境下的下载速度大家都懂得,那个煎熬啊,简直是浪费生命. 如果你的下载速度很快,你现在就可以无视这篇文章了. 阿里云给国内 ...

  3. Spark练习之通过Spark Streaming实时计算wordcount程序

    Spark练习之通过Spark Streaming实时计算wordcount程序 Java版本 Scala版本 pom.xml Java版本 import org.apache.spark.Spark ...

  4. (三)配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序

    配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序 一.   需求部分 在ubuntu上用Eclipse IDE进行hadoop相关的开发,需要在Eclip ...

  5. Spark编译与打包

    编译打包 Spark支持Maven与SBT两种编译工具,这里使用了Maven进行编译打包: 在执行make-distribution脚本时它会检查本地是否已经存在Maven还有当前Spark所依赖的S ...

  6. Maven01 环境准备、maven项目结构、编译/测试/打包/清除、安装、

    0 前提准备 0.1 安装java开发环境 0.2 安装maven工具 1 maven项目基本结构 如图所示,整个maven项目有业务文件.测试文件.POM依赖管理文件:其实还有一个资源文件resou ...

  7. spark学习12(Wordcount程序之spark-shell)

    在目录/home/hadoop/2016113012下有文件words.txt hello scala hello java hello python hello wujiadong 上传该文件到hd ...

  8. spark学习11(Wordcount程序-本地测试)

    wordcount程序 文件wordcount.txt hello wujiadong hello spark hello hadoop hello python 程序示例 package wujia ...

  9. idea16使用maven命令clean、编译、打包jar或者war

    项目环境:idea16+jdk1.7+maven-3.3.9 项目说明:编写简单的java类,使用maven命令生成jar包,然后执行------->"java  -classpath ...

随机推荐

  1. git rest 的相关操作

    git rest [parameter] 1. --soft 如果想撤销commit,并且只回退commit的信息  git diff返回空 git diff –cached 和 git diff H ...

  2. centos7.5固定局域网ip

    有点时候,比如像我们单位,没事干就停一次网,结果ip变了,还得重新看ip,重新配置,很麻烦,所以干脆把自己ip固定,以不变应万变!!! 1.首先查看自己的ip是什么: $ ifconfig eno1: ...

  3. Spring框架的第三天

    ## Spring框架的第三天 ## ---------- **课程回顾:Spring框架第二天** 1. IOC的注解方式 * @Value * @Resource(name="" ...

  4. HTML基础教程

    <!DOCTYPE html><html> <head> <title></title> </head> <body> ...

  5. Java代码走查具体考察点

    代码走查具体考察点 一.参数检验 公共方法都要做参数的校验,参数校验不通过,需要明确抛出异常或对应响应码. 在接口中也明确使用验证注解修饰参数和返回值,作为一种协议要求调用方按注解约束传参,返回值验证 ...

  6. EasyUI中使用textbox赋值,setValue和setText顺序问题

    注意两点: 当text和value的值不同时,一定要先赋值Value,然后赋值Text,否则text和value全部为Value的值. 如果只setValue,则使用getText和getValue得 ...

  7. Linux如何编写自启动shell脚本

    1.需求分析 在很多情况下,程序员都做着重复枯燥的工作,虽然这些工作也是必须的,其实这些重复性的工作可以执行脚本替代:今天笔者就如何编写自启动shell脚本减少程序员开启服务器后的环境开启工作: 2. ...

  8. 分配swap分区

    1.free命令 用来查看swap分区的使用情况[root@localhost ~]#free#查看内存与swap分区使用状况◆cached(缓存):是指把读取出来的数据保存在内存当中,当再次 读取时 ...

  9. Docker Kubernetes 服务发现原理详解

    Docker Kubernetes  服务发现原理详解 服务发现支持Service环境变量和DNS两种模式: 一.环境变量 (默认) 当一个Pod运行到Node,kubelet会为每个容器添加一组环境 ...

  10. loj2353. 「NOI2007」 货币兑换

    loj2353. 「NOI2007」 货币兑换 链接 https://loj.ac/problem/2353 思路 题目不重要,重要的是最后一句话 提示 输入文件可能很大,请采用快速的读入方式. 必然 ...