一.需要的软件:
- eclipse
- 相应版本的scalaIDE
- 与集群一样的spark安装包,主要是要用到spark中的jar包
- 与集群一样的hadoop安装包
- 与hadoop版本对应的winutil.exe,hadoop.dll(只要版本差距不大不一样也没关系)
二.步骤
(一)在eclipse中安装对应版本的ScalaIDE,具体安装见网上。
(二)复制winutil.exe,hadoop.dll到hadoop的bin文件下,并设置hadoop的环境变量,具体设置方法也可以在网上找到。
(三)在eclipse中建立scala工程,与java工程类似,在src下建立package和相应的scala object文件。
代码示例:
import org.apache.spark.SparkContext._
import org.apache.spark.{SparkConf,SparkContext}
object RemoteDebug {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("Spark Pi").setMaster("spark://your-hadoop-master:7077")
.setJars(List("file:///E:/scalatest.jar"))
System.setProperty("hadoop.home.dir", "D:/Program Files/hadoop-2.6.5");
val spark = new SparkContext(conf)
val slices = if (args.length > 0) args(0).toInt else 2
val n = 100000 * slices
val count = spark.parallelize(1 to n, slices).map { i =>
val x = Math.random * 2 - 1
val y = Math.random * 2 - 1
if (x * x + y * y < 1) 1 else 0
}.reduce(_ + _)
println("Pi is roughly " + 4.0 * count / n)
spark.stop()
}
}
(四)build path
将spark安装包下的jars文件夹下的jar包导入scala project中。
(五)run as Scala Application
运行结果:
(六)出现的错误:
错误一:
Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 1