1) 安装JDK 6或者JDK 7
2) 安装scala 2.10.x (注意版本)
2)下载Intellij IDEA最新版(本文以IntelliJ IDEA Community Edition 13.1.1为例说明,不同版本,界面布局可能不同):http://www.jetbrains.com/idea/download/
3)将下载的Intellij IDEA解压后,安装scala插件,流程如下:
依次选择“Configure”–>“Plugins”–>“Browse repositories”,输入scala,然后安装即可
(2)搭建Spark源码阅读环境(需要联网)
一种方法是直接依次选择“import project”–>选择spark所在目录 –>“SBT”,之后intellij会自动识别SBT文件,并下载依赖的外部jar包,整个流程用时非常长,取决于机器的网络环境(不建议在windows下 *** 作,可能遇到各种问题),一般需花费几十分钟到几个小时。注意,下载过程会用到git,因此应该事先安装了git。
第二种方法是首先在linux *** 作系统上生成intellij项目文件,然后在intellij IDEA中直接通过“Open Project”打开项目即可。在linux上生成intellij项目文件的方法(需要安装git,不需要安装scala,sbt会自动下载)是:在spark源代码根目录下,输入sbt/sbt gen-idea
注:如果你在windows下阅读源代码,建议先在linux下生成项目文件,然后导入到windows中的intellij IDEA中。
(3)搭建Spark开发环境
在intellij IDEA中创建scala project,并依次选择“File”–>“project structure” –>“Libraries”,选择“+”,将spark-hadoop 对应的包导入,比如导入spark-assembly_2.10-0.9.0-incubating-hadoop2.2.0.jar(只需导入该jar包,其他不需要),如果IDE没有识别scala 库,则需要以同样方式将scala库导入。之后开发scala程序即可:
一、编写第一个用scala写的spark应用:仿照spark的 quick-start的Self-Contained Applications写出第一个scala完整程序
链接如下:
即:
/* SimpleApp.scala */import org.apache.spark.SparkContextimport org.apache.spark.SparkContext._import org.apache.spark.SparkConfobject SimpleApp {
def main(args: Array[String]) {
val logFile = "YOUR_SPARK_HOME/README.md" // Should be some file on your system
val conf = new SparkConf().setAppName("Simple Application")
val sc = new SparkContext(conf)
val logData = sc.textFile(logFile, 2).cache()
val numAs = logData.filter(line =>line.contains("a")).count()
val numBs = logData.filter(line =>line.contains("b")).count()
println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
}}
整个程序作用是:找到这个文件
YOUR_SPARK_HOME/README.md
中有几个a和几个b。
二、用sbt进行打包成jar:
命令:sbt package
具体步骤见
中的Self-Contained Applications
打包时候几点注意:
1、
目录结构一定要对
目录结构可以通过find .来看
有点类似cmake的感觉
2、
总时间,近30分钟,开始打开会terminal没现象10分钟,然后开始要各种resolve,之后要下载很多库,我这边网速超慢
sbt是个联网编译器,
Spark的应用用到了很多RDD的变换,来编译这些库都得去网上下相应的包
最后显示,编译时间11s
这时成功完成SimpleApp
三、在本机上测试:
命令为:
YOUR_SPARK_HOME/bin/spark-submit \
--class "SimpleApp" \
--master local[4] \
target/scala-2.10/simple-project_2.10-1.0.jar
我对jar的理解就是一个可执行文件了,这个可执行文件在JVM上就可以跑了,local中4是指设置成4个线程,但具体原因我也不知道
注意submit的参数:
--class中 SimpleApp是包名
上传的的jar的地址别写错
一、编写第一个用scala写的spark应用:
仿照spark的 quick-start的Self-Contained Applications写出第一个scala完整程序
链接如下:
即:
/* SimpleApp.scala */import org.apache.spark.SparkContextimport org.apache.spark.SparkContext._import org.apache.spark.SparkConfobject SimpleApp {
def main(args: Array[String]) {
val logFile = "YOUR_SPARK_HOME/README.md" // Should be some file on your system
val conf = new SparkConf().setAppName("Simple Application")
val sc = new SparkContext(conf)
val logData = sc.textFile(logFile, 2).cache()
val numAs = logData.filter(line =>line.contains("a")).count()
val numBs = logData.filter(line =>line.contains("b")).count()
println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
}}
整个程序作用是:找到这个文件
YOUR_SPARK_HOME/README.md
中有几个a和几个b。
二、用sbt进行打包成jar:
命令:sbt package
具体步骤见
中的Self-Contained Applications
打包时候几点注意:
1、
目录结构一定要对
目录结构可以通过find .来看
有点类似cmake的感觉
2、
总时间,近30分钟,开始打开会terminal没现象10分钟,然后开始要各种resolve,之后要下载很多库,我这边网速超慢
sbt是个联网编译器,
Spark的应用用到了很多RDD的变换,来编译这些库都得去网上下相应的包
最后显示,编译时间11s
这时成功完成SimpleApp
三、在本机上测试:
命令为:
YOUR_SPARK_HOME/bin/spark-submit \
--class "SimpleApp" \
--master local[4] \
target/scala-2.10/simple-project_2.10-1.0.jar
我对jar的理解就是一个可执行文件了,这个可执行文件在JVM上就可以跑了,local中4是指设置成4个线程,但具体原因我也不知道
注意submit的参数:
--class中 SimpleApp是包名
上传的的jar的地址别写错
阅读全文
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)