win7下eclipse+spark+scala+maven环境搭建及实例

来源:互联网 发布:筑巢网络 编辑:程序博客网 时间:2024/06/05 07:27

1. hadoop和spark的配置

(1)hadoop和spark的版本需对应,使用hadoop-2.6.0 和spark-1.6.0-bin-hadoop2.6,JDK1.8版本。

(2)环境变量配置:HADOOP_HOME和SPARK_HOME,分别对应它们的解压路径。在path中添加%HADOOP_HOME%\bin;%SPARK_HOME%\bin。

       检测是否安装成功,cmd中分别依次输入hadoop -version以及spark -shell,能看到各自的版本信息则说明安装成功。

2.scala安装

    官方下载:http://www.scala-lang.org/download/。该贴使用的scala版本是2.10.6,window版本文件名scala.msi。

    参考链接:http://blog.csdn.net/yuanguangyu1221/article/details/50889522。

3.eclipse配置scala插件

   eclipse -> help -> install new SoftWare中add:

   命名为m2e-scala的插件链接 http://alchim31.free.fr/m2e-scala/update-site,等待安装完成重启。

   参考链接:http://blog.csdn.net/bingduanlbd/article/details/50991635。

   命名为scala-support的插件链接 http://download.scala-ide.org/sdk/e38/scala29/stable/site,等待安装完成重启。

   找对应的版本安装:

   参考链接:http://scala-ide.org/download/milestone.html  (新版),http://scala-ide.org/download/prev-stable.html(旧版)。


  

4.maven项目

   新建一个普通的maven项目:New Maven Project中选择的是maven-archetype-quickstart,快速创建一个maven工程。然后项目右键configure选择Add scala Nature,这样      就转换成了maven-scala项目。 pom.xml中新增如下配置,注意版本号! 保存之后会自动下载依赖的包。

<dependency>        <groupId>org.apache.spark</groupId>        <artifactId>spark-core_2.10</artifactId>        <version>1.5.1</version>    </dependency>        <dependency>         <groupId>org.apache.spark</groupId>         <artifactId>spark-mllib_2.10</artifactId>         <version>1.5.1</version>    </dependency>

5.demo小例

  例子很简单,测试环境是否搭建成功。

package com.scala.SparkScalaimport org.apache.spark.SparkContextimport org.apache.spark.SparkContext._import org.apache.spark.SparkConfobject scalaTes {  def main(args: Array[String]){     println("---123----");          //计数a和b     val logFile = "D://TxtData//tmp.log" // Should be some file on your system     val conf = new SparkConf().setAppName("Simple Application").setMaster("local[2]");     val sc = new SparkContext(conf);     val logData = sc.textFile(logFile, 2).cache();     val numAs = logData.filter(line => line.contains("a")).count();     val numBs = logData.filter(line => line.contains("b")).count();     println("Lines with a: %s, Lines with b: %s".format(numAs, numBs));  }}
编译之前,scala的版本号要换成2.10,否则编译会报错(依赖的jar包版本不一致造成的)。

tem.log中的数据自己随意造的,结果:Lines with a: 3, Lines with b: 2。至此环境搭建结束!

 

后语:Eclispe对scala等插件的兼容性相比Idea不是很好,会出现一些莫名其妙的问题,比如Eclipse启动后会出现加载不到项目的问题,如果你主要从事spark等开发,强烈建议用Intellij Idea。