使用Eclipse+scala计算Pi

这里主要介绍用Eclipse IDEA计算Pi值的具体操作过程

前提环境条件

  1. 安装Eclipse Scala IDEA
  2. 下载并配置JAVA 1.8

创建项目

创建Maven项目

用Eclipse创建Maven项目
这里写图片描述

选择默认地址
这里写图片描述

选择快速开始项
这里写图片描述

Group id: org.test
Artifact id: SparkCalPi
这里写图片描述

修改pom.xml

双击pom.xml, 点击dependencies,点击添加按钮,添加dependency。
Group ID: org.apache.spark
Artifact ID: spark-core_2.11
Version: 2.1.0
这里写图片描述

添加scala特性
这里写图片描述

解决java报错

错误为:
Description Resource Path Location Type
Archive for required library: ‘/Users/liuqi/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.6.5/jackson-databind-2.6.5.jar’ in project ‘SparkCalPi’ cannot be read or is not a valid ZIP file SparkCalPi Build path Build Path Problem

这里写图片描述

到对应文件夹下,删除黄色框部分:
这里写图片描述

发现都不成功,最后发现是版本不对应,修改pom.xml

<dependencies>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.11</artifactId>
        <version>1.2.0</version>
    </dependency>
  </dependencies>

更改后成功

修改scala配置

点击项目(右键)->属性,删除Scala Library container[2.11.8]
这里写图片描述

删除Scala-Library-Container
这里写图片描述

可选:改变scala编译器环境,点击属性->项目配置->修复scala安装(Fix scala installation 2.10.4)

将java包都改为scala
更改 src/main/java 到 src/main/scala
更改 src/test/java 到 src/test/scala
点击包(右键)->重命名,将java改为scala
这里写图片描述
这里写图片描述

创建scala程序

创建scala对象

创建新的包org.test.spark
点击包src/main/scala(右键)->新建->包 org.test.spark
这里写图片描述
这里写图片描述

创建新的scala对象 SparkPi
点击包org.test.spark(右键)->新建->scala对象,命名为 SparkPi
这里写图片描述
这里写图片描述

计算Pi的源程序

源代码

package org.test.spark 

import scala.math.random
import org.apache.spark._

object SparkPi {
  def main(args: Array[String]) {
    val conf = new SparkConf().setAppName("Spark Pi") .setMaster("local")
    val spark = new SparkContext(conf)
    val slices = if (args.length > 0) args(0).toInt else 2
    val n = math.min(100000L * slices, Int.MaxValue).toInt 
    // avoid overflow 
    val count = spark.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 is roughly " + 4.0 * count / n)
    spark.stop()
  }

}

运行scala对象

运行scala对象
点击scala对象(右键)->运行->Java应用程序
这里写图片描述

查看最后结果,报错 ERROR ActorSystemImpl: Uncaught fatal error from thread [sparkDriver-akka.remote.default-remote-dispatcher-8] shutting down ActorSystem [sparkDriver]
这里写图片描述

由于集群较小,只有4台机器,在其中master上面提交了任务,结果出现上述异常。即driver 内存不足,因此使用Spark-sumbit脚本时,提供–executor-memory –driver-memory选项,来相应的设置内存。
(暂时还没有解决,暂缓)

理论结果如下:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值