创建scala项目
1.选择scala:
2.scalaSdk版本选择,我选择的是如下图:
3.新建Module,选择scala,Simple module with attached Scala SDK。
4.创建src.main.scala目录,
标记scala包为sources
5.创建scala文件
6.导入scala依赖,点Scala SDK
7.导入spark依赖,点Java
8.导入成功后编辑Test.scala文件
import org.apache.log4j.{Level, Logger}
import org.apache.spark._
import scala.math.random
/**
* Created by maxi on 2017/3/23.
*/
object Test {
def main(args: Array[String]) {
/**
* 对于所有的spark程序所言,要进行所有的操作,首先要创建一个spark上下文。
* 在创建上下文的过程中,程序会向集群申请资源及构建相应的运行环境。
* 设置spark应用程序名称
* 创建的 sarpkContext 唯一需要的参数就是 sparkConf,它是一组 K-V 属性对。
*/
val conf = new SparkConf().setAppName("Test")
val sc = new SparkContext(conf)
Logger.getRootLogger.setLevel(Level.WARN)
val slices = if (args.length > 0) args(0).toInt else 2
val n = math.min(100000L * slices, Int.MaxValue).toInt // avoid overflow
val count = sc.parallelize(1 until n, slices).map { i =>
val x = random * 2 - 1
val y = random * 2 - 1
if (x*x + y*y < 1) 1 else 0
}.reduce(_ + _)
println("Pi slices " + slices)
println("Pi count " + count)
println("Pi n " + n)
println("Pi is roughly " + 4.0 * count / n)
sc.stop()
}
}
至此该项目创建完毕。
打包运行
1.创建Artifacts,在project structure中
将META-INF生成在src下:
将其他包去除,加快build速度,见如下图注:仅限此demo,其他项目有依赖则无需去除,去除会报错,找不到依赖库
2.编译生成jar文件,build artifact
成功后
3.spark本地运行该jar
将spark启动,用spark-submit上传jar并执行:
./bin/spark-submit --class Test --master spark://localhost:7077 sparktest.jar
将–class后修改为自己的class名
域名端口号都改为自己的
后面的jar包路径也改为自己的
执行后:
在浏览器打开spark的web界面:本地的话是localhost:8080
name就是咱们代码中设置的AppName了
val conf = new SparkConf().setAppName("Test")
接下来就可以尽情的体验spark的乐趣了。