Win10 64位系统上搭建Spark开发环境(sbt构建)

最近想学习Spark。这样就开始Spark的旅程。在本地搭建一个Spark开发环境,Spark本身是使用Scala语言编写的,当然也可以使用java来开发Spark项目,但使用Scala语言来开发更加简洁,本文在IDEA开发工具中使用sbt来创建Scala工程

1:安装Java SDK,Scala,Hadoop及IDEA 集成开发环境

JDK下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Scala下载地址:https://www.scala-lang.org/download/all.html

Hadoop下载地址:http://hadoop.apache.org/releases.html

Intellij IDEA下载地址: https://www.jetbrains.com/idea/download/#section=windows

以下是我自己环境版本:

IDEA使用的是Ultimate版本 如果不想购买可以使用Community版本

2:Hadoop的安装与配置

下载Hadoop:http://hadoop.apache.org/releases.html,选择相应的版本,这里选择了3.0.3,并解压缩到制定的目录,添加环境变量:

HADOOP_HOME: D:\hodoop-3.0.3

并添加以下路径到Path变量中: %HADOOP_HOME%\bin

在Windows上运行Hadoop需要使用winutils.exe修改文件权限

下载winuitls: https://github.com/steveloughran/winutils

下载对应版本的bin目录直接替换本地bin目录即可

3:Spark的安装

下载Spark: https://spark.apache.org/downloads.html,选择相应的版本,这里选择了2.3.1版本 spark-2.3.1-bin-hadoop2.7,并解压缩到制定的目录,添加环境变量:

SPARK_HOME: D:\spark

并添加以下路径到Path变量中:%SPARK_HOME%\bin

这样可以在命令行中启动命令:spark-shell

4:Scala插件的安装

在IDEA Settings中选择 Plugins,搜索scala,点击安装:

5:使用sbt来创建Scala工程

File -> new -> Project -> Scala -> sbt

点击Next 输入项目名称及选择sbt,scala版本

6:添加对spark的支持,用spark做一个测试文件单词统计

1. 修改build.sbt

我本地不知道为啥选择scala2.12.6版本不能执行。后来改成了2.11.8就可以了。这里留一个疑惑下次解决

添加以下命令到build.sbt

libraryDependencies += "org.apache.spark" %% "spark-core" % "2.3.1"

修改scalaVersion 为 “2.11.8”

2. 在d盘新建一个名为testspark.txt的文件

添加以下内容

Hello World 
Hello

3. 新建一个名字叫WordCount 的scala object类

import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.apache.log4j.{Level,Logger}

object WordCount {
  def main(args: Array[String]) {
    //屏蔽日志
    Logger.getLogger("org.apache.spark").setLevel(Level.WARN)
    Logger.getLogger("org.eclipse.jetty.server").setLevel(Level.OFF)
    val inputFile =  "D://testspark.txt"
    val conf = new SparkConf().setAppName("WordCount").setMaster("local[2]")
    val sc = new SparkContext(conf)
    val textFile = sc.textFile(inputFile)
    val wordCount = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)
    wordCount.foreach(println)
  }
}

4. 鼠标右键运行WordCount 得到以下结果

由于我本地另外一个spark任务监听了4040接口。这里就新建了一个4041接口。

  到这里spark 环境就完全搭建好了。Spark 更多知识还需要我们继续的学习和练习。

猜你喜欢

转载自www.cnblogs.com/carl-coding/p/9283142.html