《Spark Streaming实时流式大数据处理实战》 ——2.3.3 IDE配置
2.3.3 IDE配置
前面提到,Spark目前已经支持了包括Java、Scala、Python和R语言在内的多种编程语言,不同的编程语言都有比较好用的IDE。当然,我们也可以直接使用Vim和Sublime等文本编辑器和插件。
本书在Spark实战中,选择使用Scala作为示例程序,毕竟Spark的源生语言是Scala。工欲善其事,必先利其器,那么下面我们简单介绍Scala Eclipse和Maven的部署及使用(在附录A中讲解Scala时,还会提到另一个IDE Intellij)。
熟悉Java开发的读者都知道Java的“开发神器”Eclipse,该IDE很好地集成了Java的代码提示、编译、运行等,并且提供了丰富的插件模式,使开发者能够通过安装插件的方式开发各种不同的语言,如C++、Python等。
打开Eclipse官网,我们会发现各种版本的Eclipse,都是针对不同的语言。Eclipse官方做了一些整合优化,其中便有我们需要的Scala Eclipse,我们可以在http://scala-ide.org/上下载。下载界面如图2.7所示。
图2.7 Scala Eclipse下载
下载、解压并安装后(一定要预先安装好Java和Scala),便可以打开Scala Eclipse进行一些简单的尝试了。首先新建一个Scala工程,如图2.8所示。
图2.8 新建Scala工程
我们新建一个HellloScala的项目,如图2.9所示。
图2.9 HelloScala项目
可以指定项目的位置,以及一些其他设置,单击Finish按钮后会得到工程目录,如图2.10所示。
Scala工程会将Scala和Java的jar库都引用进来,并且提供了一个src目录,我们依照Java的命名习惯新建一个Package和Scala Object,如图2.11所示。
图2.10 HelloScala工程目录 图2.11 新建Package和Scala Object
这里需要说明的是,在Scala中新加了Object的抽象概念,相当于一个单例对象,基本的Scala语法会在本书附录中给出,有一定Java经验的读者如想快速上手Scala,可以参考附录内容。之后我们来写一个经典的开场白程序:
package com.sparkstreaming.action.main
object Main {
def main(args: Array[String]) {
// Scala打印函数为println
println("hello scala")
}
}
然后需要配置Scala的编译过程,在Run Configuration中,进行如下配置,如图2.12所示。
图2.12 配置Scala编译运行
我们需要新建一个Scala Application,然后配置工程目录及工程对应的主类,单击Run按钮便能看到Console中会出现hello scala的字样。
以上简单熟悉了一下Scala IDE,其实在实际的开发过程中,往往会用到大量的第三方库,毕竟站在巨人的肩膀上摘苹果是通向成功的捷径。而当工程非常大的时候,就会遇到第三方jar包难于管理的问题,尤其是进行多个工程开发时,我们不得不将需要用到的jar包一次又一次地来回复制,并且会出现版本问题。
这时候就需要用到类似Maven的项目管理及自动构建工具了。Maven是Apache下的一个顶级开源项目,利用远程库、镜像库和本地库的方式,能够帮助我们对jar包进行管理,并对整个项目进行构建。
当然,除了Maven,还有Scala自带的SBT也可以对项目进行管理和构建,不过对于Java语系而言,Maven的使用频度和广度更加高效。笔者在使用Maven进行Scala工程项目构建时,包括Java和Scala混合构建时还是一切顺利的,这里就以Maven进行Spark Streaming实战演练,读者如果感兴趣,也可以尝试SBT方式。我们可以在官网下载最新版本的Maven:https://maven.apache.org/,下载完成后解压到相应目录,配置一下环境变量,在终端执行mvn –v,得到结果如下:
$ mvn -v
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-
04T03:39:06+08:00)
Maven home: /Users/xiaolitao/Tools/apache-maven-3.5.0
Java version: 1.8.0_40, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/
Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.1", arch: "x86_64", family: "mac"
表示我们已经将Maven安装成功,Maven会在用户目录建立.m2目录作为本地镜像库,用于存放曾经使用过的第三方库。如果Maven下载第三方库不顺畅,可以尝试配置第三方镜像库,这里比较偏离主题,就不再赘述了,感兴趣的读者可以到官网查看相关配置信息,在Maven安装目录的conf/setting.xml进行全局配置,或者在工程配置文件的pom.xml中进行配置。
- 点赞
- 收藏
- 关注作者
评论(0)