Spark1.6.0 Hadoop2.6.0 单机win7下配置(Intellij IDEA)

来源:互联网 发布:js定义数组长度 编辑:程序博客网 时间:2024/05/02 01:00

1. 首先需要注意的

Scala版本要与Spark相应版本对应
比如Spark1.6.0,官网上给出了依赖
Spark runs on Java 7+, Python 2.6+ and R 3.1+. For the Scala API, Spark 1.6.0 uses Scala 2.10. You will need to use a compatible Scala version (2.10.x).

否则会报错

Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/mutable/ArrayOps;

2. 下载Intellij IDEA

下载后只需要注意两点

  1. 安装scala插件
  2. 新建工程的时候,选择正确的scala版本,如果如果没有,creat一个

3. 下载spark-1.6.0-bin-hadoop2.6

下载地址:Spark官网下载

4. 下载win下编译版

The official release of Apache Hadoop 2.6.0 does not include the required binaries (e.g., winutils.exe) necessary to run hadoop. In order to use Hadoop on Windows, it must be compiled from source.
网上充斥着2.2.0版本的,今天找到了2.6.0的
附上下载地址:
Hadoop 2.6.0 Windows 64-bit Binaries

5. 配置环境变量

  1. 在系统变量(也可以是用户变量)里,创建变量HADOOP_HOME,值为上面第4步下载的Binaries的路径;
  2. 在path后加上,%HADOOP_HOME%\bin

6. Intellij IDEA依赖添加

在工程的External Libraries里面添加上面第3步spark-1.6.0-bin-hadoop2.6中的lib文件夹下的spark-assembly-1.6.0-hadoop2.6.0.jar

7. 测试

测试可以选择下载的Spark文件中自带的example,此次选择SparkPI。
在工程中新建一个Scala Object, SparkPi, 如下:

package basicimport scala.math.randomimport org.apache.spark._/**  * Created by *** on 2016/11/24.  */object SparkPi {  def main(args: Array[String]): Unit = {    val conf = new SparkConf().setMaster("local").setAppName("Spark Pi")    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()  }}

输出结果

这里写图片描述

1 0