您的位置:首页 > 其它

Spark-Scala-IntelliJ开发环境搭建和编译Jar包流程

2017-07-23 20:25 761 查看
   使用Scala编写Spark脚本的话,可以直接在spark-shell中运行,如果要提交整个脚本的话,就必须将scala脚本编译成Jar包,然后通过spark-submit
提交Jar包给spark集群,当需要重复利用脚本的话一般是需要编译成Jar包的,所以后面会介绍下怎么将scala编译成Jar包,前面则会介绍下怎么搭建spark-scala的开发环境,同时使用IntelliJ Idea编写scala脚本。

一 环境搭建

平台:Mac book 64位 OS X ver10.11.3 (windows和Linux可借鉴,可能有点小区别)

依次安装如下软件:

1、Java

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
任选一个即可,本文选用的版本

JDK8ver 1.8都可以

将下载文件解压即可,在控制台输入Java –version出现如下字样安装成功。

如果安装了控制台却出不来以上结果,可按照第3步scala的环境配置操作一样添加Java环境变量。

 

2、spark

下载地址:http://spark.apache.org/downloads.html

本文选用的版本

1.5.1(Oct 02 2015)

Pre-Built forHadoop 1.X

将下载文件解压即可,pre-build已经事先编译好了

3、Scala

下载地址:http://www.scala-lang.org/download/all.html

本文选用的版本

2.10.6(为避免编译错误,最好不要选取2.11以上的,存在冲突)

解压到合适文件夹,记得将scala添加到环境变量里,如下:

首先在控制台输入 open~/.bash_profile,添加如下文本:

# 根据自己的scala地址修改下添加

export SCALA_HOME=/Users/krzhou/software/scala-2.10.6

export PATH=$SCALA_HOME/bin:$PATH

 

添加完后在控制台输入 source ~/.bash_profile 重新读入环境生效

4、IntelliJ IDEA

下载地址:https://www.jetbrains.com/idea/

选用free版本,按流程安装即可,当到了需要选装插件的环节,添加scala插件即可。

其中不激活的话就先选evaluate for free

在default plugins的时候默认即可,feature plugins的时候记得选scala插件安装

 


二 构建项目

要使用Idea编写spark脚本需要在scala项目中添加spark/scala的Jar包。

首先创建项目

点击菜单栏File-New-project…-scala-scala,点击next,修改参数如下:



Project SDK是java文件夹的lib,Scala SDK是scala文件夹的lib。

 

导入Jar包:

① 导入scala 包

点击File-Project Structure-Libraries,点击+号-scala SDK,添加scala文件夹里lib里的scala-compiler.jar/scala-library.jar/scala-reflect.jar(这一步貌似不是必须的,因为前一步里已经导入了scala的SDK了)

② 导入spark包

点击+号-Java,添加spark文件夹lib里的spark-assembly-1.5.1-hadoop1.2.1.Jar

 


创建脚本

右键SparkPi_Test里的src, 创建Scala class



添加如下文本:(scala脚本):

[java]

view plain
copy

<span style="font-size:14px;">/** Computes an approximation to pi*/  
import scala.math.random  
  
import org.apache.spark._  
  
object SparkPi {  
  defmain(args:Array[String]){  
    valconf = newSparkConf().setAppName("Spark Pi").setMaster("local")  
    valspark = newSparkContext(conf)  
    valslices = if(args.length > 0) args(0).toInt else 2  
    valn = math.min(100000L * slices,Int.MaxValue).toInt // avoid overflow  
    valcount = spark.parallelize(1 until n, slices).map { i =>  
      valx = random * 2 - 1  
      valy = random * 2 - 1  
      if(x*x + y*y < 1) 1 else0  
    }.reduce(_+ _)  
    println("Pi is roughly " + 4.0 * count / n)  
    spark.stop()  
  }</span><span id="transmark"></span>  

点击菜单栏的Run-run SparkPi运行,

出现如下结果表示运行成功,显示Pi的值约为3.14598



三 编译Jar包

接下来将第二步编写的项目编译成可执行的Jar包。 

点击File-project structure-Artifacts,点击+号添加如下

 


输入Main class名字SparkPi(跟运行的主程序名字保持一致),点击ok



勾选所有的Extracted的Jar包,点击—号去掉,并勾选build on make



点击菜单栏build-build Artifacts-build,当左边目录下出现如下的SparkPi_Test.jar的jar包时,编译成功。



最后在控制台使用

/Users/krzhou/spark-Hadoop/bin/spark-submit
 SparkPi_Test.jar --class SparkPi

提交查看运行结果:



如图:Pi is roughly 3.14828,运行成功。

以上只是介绍了一种编译Jar包的方式,应该还有使用sbt等辅助工具的方式,暂时还不是很了解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: