点击这里观看厦门大学林子雨老师主讲《大数据技术原理与应用》授课视频

【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!

[返回Spark教程首页]

对Scala代码进行打包编译时,可以采用Maven,也可以采用sbt,相对而言,业界更多使用sbt。本教程介绍如何在 Ubuntu中使用 Eclipse 来开发 scala 程序(使用Maven工具),在Spark 2.1.0,scala 2.11.8 下验证通过。使用 Eclipse,我们可以直接运行代码,省去许多繁琐的命令。(相关文章:如何在 Ubuntu中使用 Eclipse 来开发 scala 程序(使用sbt工具))

一.运行环境介绍

Scala ide for eclipse

ubuntu 16.04

spark 2.1.0

scala 2.11

二.安装必备软件

Spark和scala安装方法可以参考,Spark安装和使用 ,Scala安装,

eclipse可以安装scala ide for eclipse,这样可以省下很多工夫去不用安装maven和scala类似的相关插件,进入scala ide for eclipse,图如下所示,选择Linux GTK 64 bit,

接下来解压安装包到/usr/local下,并测试运行eclipse

sudo tar -zxvf ~/下载/scala-SDK-4.5.0-vfinal-2.11-linux.gtk.x86_64.tar.gz -C /usr/local

cd /usr/local

./eclipse/eclipse

出现如下界面说明运行成功了。

如果各位没有安装该版本的eclipse,很可能会花费不必要的麻烦去安装相关的插件,下面笔者也介绍下安装maven和scala插件的方法,(ps:安装了scala ide for eclipse的可以直接跳过该步骤)

安装maven插件和scala插件

先进入eclipse后,点击Help–>Install New Software,在出现的install界面上输入maven插件的网址,http://download.eclipse.org/releases/neno (注意:末尾的neno是eclipse对应的版本名称,如果你用的不是neno版本,请换成自己用的eclipse版本号),然后再在下面的文本框输入maven,点击select all,点击next,接下来一直点击next或finish就可以了。

安装scala插件同样,点击Help–>Install New Software,在出现的install界面上输入scala插件的网址, http://download.scala-ide.org/sdk/helium/e38/scala211/stable/site ,摁下回车键,接着select all,然后同样一直next或finish就可以了。

在/usr/local/spark下建立目录/mycode/wordcount,然后在“/usr/local/spark/mycode/wordcount”目录下新建一个包含了一些语句的文本文件word.txt,命令如下:

cd /usr/local/spark

mkdir mycode

cd mycode

mkdir wordcount

cd wordcount

vim word.txt

你可以在文本文件中随意输入一些单词,用空格隔开,我们会编写Spark程序对该文件进行单词词频统计。然后,按键盘Esc键退出vim编辑状态,输入“:wq”保存文件并退出vim编辑器。

三.创建maven工程

打开eclipse后,在工程栏右键New–>Project,在出现的界面上双击maven文件,选择maven project,先点击右下角的Add Archetype,第一个Archetype Group id 选择net.alchim31.maven,第二个Archetype Artifact id选择scala-archetype-simple,第三个选择version是1.6,点击OK,在Catalog里选择All Catalogs,在filter里输入scala,会出现net.alchim31.maven,version为1.6版本的选项,选择它,点击next,然后在Groupid上填写dblab,在Artifact填写WordCount,package填写dblab.WordCount,点击Finish。这样就可以在maven上创建Scala类了。

四.创建scala类,运行scala程序

点击新建的WordCount工程,再选择src/main/scala,右击dblab.WordCount那个建成的包,New–>scala Class,然后在Name那个文本框中输入dblab.WordCount.WordCount,点击Finish,

然后将如下代码完全复制进去

import org.apache.spark.SparkContext

import org.apache.spark.SparkContext._

import org.apache.spark.SparkConf

object WordCount {

def main(args: Array[String]) {

val inputFile = "file:///usr/local/spark/mycode/wordcount/word.txt"

val conf = new SparkConf().setAppName("WordCount").setMaster("local[2]")

val sc = new SparkContext(conf)

val textFile = sc.textFile(inputFile)

val wordCount = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)

wordCount.foreach(println)

}

}

接下来编译pom.xml文件,把代码运行的包导入环境中,如图

然后将pom.xml里的内容清空,复制黏贴如下代码

4.0.0

dblab

WordCount

0.0.1-SNAPSHOT

2008

2.11

2.1.0

scala-tools.org

Scala-Tools Maven2 Repository

http://scala-tools.org/repo-releases

scala-tools.org

Scala-Tools Maven2 Repository

http://download.eclipse.org/releases/indigo/

org.apache.spark

spark-core_${scala.version}

${spark.version}

junit

junit

4.4

test

org.specs

specs

1.2.5

test

src/main/scala

src/test/scala

org.scala-tools

maven-scala-plugin

compile

testCompile

${scala.version}

-target:jvm-1.5

org.apache.maven.plugins

maven-eclipse-plugin

true

ch.epfl.lamp.sdt.core.scalabuilder

ch.epfl.lamp.sdt.core.scalanature

org.eclipse.jdt.launching.JRE_CONTAINER

ch.epfl.lamp.sdt.launching.SCALA_CONTAINER

org.scala-tools

maven-scala-plugin

${scala.version}

在代码处右击,Run AS–>Maven build,编译,如果在Console栏里出现Build success,说明编译成功

回到scala程序界面,你会发现左边第二个src/test/scala文件有个小红叉,这个对编译结果并没影响,但会影响后面打包,可以删除它

继续右击WordCount.scala.Run AS –>scala Application,得出结果

接着我们返回pom.xml的界面,空白处右击,Run AS–>Maven install,出现如下界面后说明打包已成功,

打开Ubuntu自带的文件夹系统,进入/home/hadoop/workspace/WordCount/target,会看到WordCount-0.0.1-SNAPSHOT.jar,就是maven打包成功的文件

然后,由于Ubuntu系统的原因,包的路径太深,运行很可能会出现找不到类的异常,所以我们可以把这个包移动到常用的较浅的目录下,

sudo cp /home/hadoop/workspace/WordCount/target/WordCount-0.0.1-SNAPSHOT.jar /usr/local #/usr/local是本人常用的目录

接着我们运行以下指令,

/usr/local/spark/bin/spark-submit --class "WordCount" /usr/local/WordCount-0.0.1-SNAPSHOT.jar

出现如下结果,就说明你在终端下已经成功运行了scala的WordCount程序

spark需要maven管理吗_使用Eclipse编写Spark应用程序(Scala+Maven)相关推荐

  1. java swing点击按钮后输出结果展示_使用Eclipse编写第一个Java程序HelloWorld

    1.打开Eclipse软件,点击File菜单,如图所示: 2.移动鼠标New--->Java Project,再点击Next按钮,如图所示: 3.然后在Project name输入框中输入项目名 ...

  2. spark的数三角形算法_数据算法 Hadoop Spark大数据处理技巧 PDF 下载

    相关截图: 资料简介: 本书介绍了很多基本设计模式.优化技术和数据挖掘及机器学习解决方案,以解决生物信息学.基因组学.统计和社交网络分析等领域的很多问题.这本书还概要介绍了MapReduce.Hado ...

  3. eclipse中run运行不了_使用Eclipse编写第一个Java程序HelloWorld

    1.打开Eclipse软件,点击File菜单,如图所示: 2.移动鼠标New--->Java Project,再点击Next按钮,如图所示: 3.然后在Project name输入框中输入项目名 ...

  4. 使用Eclipse编写Processing小程序

    更多精彩的Processing编程语言相关的资讯,可以扫码关注公众号:Processing学习部落,欣赏好玩的Processing艺术作品: 使用Processing自家的PDE进行sketch的写作 ...

  5. java需要圣魔才能安装_eclipse java怎么运行?如何使用Eclipse编写运行Java程序

    1.双击 启动. 2.选择一个空的文件夹,作为workspace工作空间,用来存放你以后用eclipse写的Java程序. 3.选择好workspace后,单击下面的ok后,稍等几分钟,就可以看到we ...

  6. spark比java快吗_为什么我的Spark DataFrame比RDD慢得多?

    这两个数字似乎都相对较高,并且不清楚如何创建 DataFrame 或测量时间,但一般来说,这样的差异可以通过与分区数量相比较少的记录来解释 . spark.sql.shuffle.partitions ...

  7. c语言课程设计运动会成绩管理,C语言课程设计要求编写一段程序题目是运动会分数..._统计师_帮考网...

    楼主你好,你看看下面这个代码吧   和你的比较相似 : #include #include #include using namespace std; class School{ private: i ...

  8. 用eclipse编写第一个程序详解(hello world)

    1.首先我们打开eclipse,显示的是下面这个画面 2.我们找到左上角的File,进行操作:File->new->Project,出现下面这个画面 3.双击Java Project,这里 ...

  9. python hello world程序编写_用Python编写一个简单程序

    按照软件行业传统习惯,当你学习一种新的编程语言如Python时,首先编写一个"Hello World! "程序. 请执行以下步骤,以创造你的"Hello World!&q ...

最新文章

  1. RFID读写器Impinj R420开发C#
  2. VMware 虚拟机的虚拟磁盘编程知识点扫盲之一
  3. svn 命令行下常用的几个命令
  4. 【Spring学习】IOC容器
  5. 手动编译 lombok_Lombok,一种编译时Java注释预处理器,可最大程度地减少代码大小...
  6. mysql 学习笔记10 常用数学函数
  7. 聘用计算机高级职称,关于咨询高级职称聘用的问题
  8. leetcode python3 简单题136. Single Number
  9. 华为荣耀8x云相册不见了_京东手机最新销量排行:荣耀、小米卖的最好
  10. 用c语言写易语言Linux库,c语言实现简单的易语言
  11. 如何弄ad装配图_AD打印装配图的细节
  12. 邮件群发平台_群发开发信不进垃圾箱的技巧
  13. 抖音为何能一夜爆火?
  14. python 函数嵌套定义平行哪个好定义_在Python中,不能在一个函数的定义中再定义一个嵌套函数。...
  15. 浅谈润乾报表与QlikView对比
  16. 你不知道的颠覆式创新者
  17. 旧款华为笔记本解锁智慧语音教程
  18. CAD看图如何在电脑上快速找到并打开指定CAD图纸
  19. locate用主动还是被动_女生在两性关系中,究竟是主动一点好,还是被动一点好?...
  20. TCP和UDP的实现

热门文章

  1. 除法运算、商、余数与取模
  2. 列表解析(list comprehension) 与三目运算符
  3. 使用 matlab 数字图像处理(十)—— 维纳滤波复原
  4. 广西2019全国计算机二级报名,广西2019年3月全国计算机二级考试报名入口已开通...
  5. 专科python应届生工资多少-应届毕业生自述面试15K月薪的Python后端开发经历,希望对你有用...
  6. python使用缩进来体现-python使用缩进来体现代码之间的逻辑关系吗?
  7. python 在线培训费用-在线Python编程培训哪家机构比较好?
  8. 学python需要什么基础-自学Python需要怎样的基础和准备
  9. python画图代码-Python实战小程序利用matplotlib模块画图代码分享
  10. 国外大神一张图学会python-没有接触过编程Python难学吗?