Spark+IntelliJ IDEA创建项目

创建scala项目

1.选择scala:

image

2.scalaSdk版本选择,我选择的是如下图:

image

3.新建Module,选择scala,Simple module with attached Scala SDK。

image

4.创建src.main.scala目录,

image

标记scala包为sources

image

5.创建scala文件

image

6.导入scala依赖,点Scala SDK

image

7.导入spark依赖,点Java

image

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中

image

image

将META-INF生成在src下:

image

将其他包去除,加快build速度,见如下图注:仅限此demo,其他项目有依赖则无需去除,去除会报错,找不到依赖库

image

2.编译生成jar文件,build artifact

image

成功后

image

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

image

name就是咱们代码中设置的AppName了

val conf = new SparkConf().setAppName("Test")

接下来就可以尽情的体验spark的乐趣了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值