首页 理论教育 使用SBT编译Spark应用程序

使用SBT编译Spark应用程序

时间:2023-06-20 理论教育 版权反馈
【摘要】:SBT是一个代码编译工具,可以用来编译Scala、Java等语言编写的应用程序,SBT在使用时需要得到JDK1.6以上的支持。下面我们使用SBT编译一个简单的Spark应用程序。4)在编译的过程中,SBT需要上网下载依赖的工具包,编译完成后可以在~/spark_ wordcount/target/scala-2.10/目录下找到打包好的jar文件。至此,我们就简单介绍了如何使用SBT编译Spark应用程序,SBT工具在Spark中还是比较常用的,希望读者在自己的机器上实践用SBT编译Spark应用程序。

使用SBT编译Spark应用程序

SBT是一个代码编译工具,可以用来编译Scala、Java等语言编写的应用程序,SBT在使用时需要得到JDK1.6以上的支持。SBT编译应用程序时需要固定的目录格式,并且需要联网,SBT会将依赖的jar包下载到用户的home/.ivy2/cache目录下面。

下面我们使用SBT编译一个简单的Spark应用程序。这里的应用程序我们选取Spark官方提供的单词计数(WordCount)的案例代码,在这个应用案例中,我们统计一个文件中单词的数量。

在编译这个Spark应用程序之前,必须准备:

(1)下载Spark-1.1.0的安装包和Scala 2.10.4的安装包,然后进行解压安装,并配置它们各自的PATH路径到到~/.bashrc文件中去。

(2)下载并安装SBT,同时配置SBT的PATH环境变量,保证在Shell控制台中可以使用SBT命令。为了使用SBT成功编译Spark,我们需要SBT 0.13.0或其以后版本必须首先已经安装就绪,笔者这里使用的SBT的版本是0.13.8,可以在Shell控制台输入sbt sbt-ver-sion命令来查看已安装的SBT的版本,运行结果如下:

完成以上准备工作以后,我们开始建立用SBT进行Spark应用程序编译的案例,步骤如下:

(1)构建一个SBT环境的项目,项目名称为spark_wordcount,并创建SBT编译时需要的固定的目录结构格式,可以在Shell控制台输入以下命令来完成此步骤。

通过以上的命令,我们在系统的Home目录下创建了一个spark_wordcount目录,在spark_wordcount目录中是SBT需要的一些目录结构:lib/(该目录下存储与编译相关的jar文件)、project/、src/main/scala/、src/main/test/scala、/target。

(2)复制Spark安装包的lib目录下的jar文件spark-assembly-1.1.0-ha-doop2.4.0.jar到~/spark_wordcount/lib目录下,需要在Shell控制台输入命令如下:

(3)在Shell控制台的~/spark_wordcount目录下输入cat build.sbt来新建一个build.sbt配置文件,在该文件中输入以下的一些配置信息,这里需要注意各行配置内容之间需要有一个空行来进行分割。

配置完成后,保存并退出该文件。(www.xing528.com)

(4)WordCount程序编写及编译,具体步骤如下。

1)建立WordCount.scala源代码文件,假设需要包为spark.example,在Shell控制台输入命令如下:

然后复制以下的具体实现代码到该WordCount.scala源代码文件中,并保存该文件。

2)进入spark_wordcount目录,对其执行编译操作。在Shell控制台输入以下内容:

3)编译过后,在spark_wordcount目录下输入./sbt package命令把负责单词计数的WordCount文件打成jar包。

4)在编译的过程中,SBT需要上网下载依赖的工具包,编译完成后可以在~/spark_ wordcount/target/scala-2.10/目录下找到打包好的jar文件。

5)使用Spark集群运行已经编译并打包好的jar文件,进入Spark的bin目录下,使用spark-submit工具来完成任务的提交,在Shell控制台输入的命令如下:

其中<input>指的是需要被单词计数的文件的地址,<output>指的是进行完单词计数的操作后所产生的结果要保存的地址。

至此,我们就简单介绍了如何使用SBT编译Spark应用程序,SBT工具在Spark中还是比较常用的,希望读者在自己的机器上实践用SBT编译Spark应用程序。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈