
1、构建sbt标准的项目工程结构:SBT项目工程结构图其中:~/build.sbt文件用来配置项目的基本信息(项目名、组织名、项目版本、使用的scala版本或者再次配置些项目所需的依赖包);project/build.properties文件配置你要使用什么版本的sbt对项目 *** 作;project/plugins.sbt文件是给项目添加所需的插件;project/Build.scala文件是对项目进行些复杂的高级配置;详细的sbt安装配置实用参见博文:
2、到相应目录下编写程序,spark程序必须要创建一个SparkContext实例。SparkContext("master", "projectName", "SPARK_HOME", "yourProject.jar path")
3、sbt compile命令编译程序无错后,sbt package命令将程序打包。默认打包的jar文件存放路径为:项目根目录/target/scala-xx.xx.xx/your-project-name_xx.xx.xx-xx.jar
4、将打包好的jar问价添加到SPAK_CLASSPATH中(在linux中根据作用范围的不同有多种更改环境变量的方式,这里只说我的配置方式:spark根目录下的conf/spark-env.sh文件添加SPARK_CLASSPATH:xxxxxxxx)
5、配置好环境变量后就可以在spark的根目录下使用./run脚本运行你的程序了例如:./run spark.examples.SparkPi spark://masterIP:port注意,如果程序涉及IO *** 作起默认路径为SPARK_HOME;至于如何修改这个路径,有待研究
转载,仅供参考。
基于eclipse的Spark IDE以WordCount为例:
package com.lxw.test
import org.apache.spark.{SparkConf, SparkContext}
import SparkContext._
object WordCount {
def main (args: Array[String]) {
if(args.length <2) {
println("Usage: WordCount ")
System.exit(1)
}
val hdfsIn = args(0)
val hdfsOut = args(1)
val sc = new SparkContext(new SparkConf().setAppName("WordCount"))
val srcData = sc.textFile(hdfsIn)
val result = srcData.flatMap(_.split("\\s+")).map((_,1)).reduceByKey(_+_)
result.saveAsTextFile(hdfsOut)
}
}
在eclipse中将程序打成普通的Java jar包即可。
在Spark的一台Client机器上使用spark-submit来提交运行jar包:
$SPARK_HOME/bin/spark-submit \ --name "lxw1234-wordcount" \ --master spark://192.168.1.130:7077 \ --executor-memory 1G \ --class com.lxw.test.WordCount \ /home/lxw1234/lxw-spark.jar /logs/site/2015-05-14/ /tmp/lxwoutput
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)