Spark2.x学习笔记:6、在Windows平台下搭建Spark开发环境(Intellij IDEA)

Spark2.x学习笔记

6、 在Windows平台下搭建Spark开发环境(Intellij IDEA+Maven)

6.1 集成开发环境IDE

为了方便应用程序开发与测试,提高开发效率,一般使用集成开发工具IDE。同样,为了方便Spark应用程序编写和测试,可以选择集成开发工具Intellij IDEA或Eclipse。由于Intellij IDEA对Scala更好的支持,大多Spark开发团队选择了Intellij IDEA作为开发环境。

6.2 安装JDK

在Linux下安装配置JDK8,请参见http://blog.csdn.net/chengyuqiang/article/details/77671748。 在实际生产环境下,首先是在Windows平台进行应用程序编写和调试,然后,程序编译后发布到服务器端运行。所以,这里需要介绍的是Windows平台下JDK8的安装与配置。 (1)下载 登录Oracle官网http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,接受协议,选择对应版本。因为我的本机是64位Windows,所以需要下载64位(Windows x64)JDK安装包。

(2)安装JDK Windows下安装JDK非常方便,双击安装程序后,直接单击下一步即可,默认安装到C:\Program Files\Java目录下。其间会安装JRE,默认一下步即可。 (3)设置环境变量 右键单击桌面上的“计算机”图标(在Windows10下是“此电脑”),在弹出的右键快捷菜单中选择最后一个“属性”选项;在弹出的系统窗口中,单击左侧“高级系统设置”选项,弹出“系统属性”对话框,如下图。

然后单击中间的“高级”选项卡,再单击下方的“环境变量(N)…”按钮。在弹出的环境变量对话框中,首先单击下方的“新建(W)…”按钮,然后在弹出的新建环境变量中输入对应的值。

6.3 安装Scala

(1)下载 通过Spark官网下载页面http://spark.apache.org/downloads.html 可知“Note: Starting version 2.0, Spark is built with Scala 2.11 by default.”,建议下载Spark2.2对应的 Scala 2.11。

登录Scala官网http://www.scala-lang.org/,单击download按钮,然后再“Other Releases”标题下找到“Last 2.11.x maintenance release - Scala 2.11.11”链接

进入http://www.scala-lang.org/download/2.11.11.html页面,下拉找到如下图内容,下载msi格式的安装包即可。

(2)安装 默认安装到C:\Program Files (x86)\scala目录下

(3)环境变量 与设置Java环境变量类型, SCALA_HOME=C:\Program Files (x86)\scala Path环境变量在最后追加;%SCALA_HOME%\bin

6.4 安装Maven

Maven的安装与配置请参考: http://blog.csdn.net/chengyuqiang/article/details/72082149

6.5 Intellij IDEA下载与配置

(1)下载与安装 登录官网https://www.jetbrains.com/idea/download/,按照自己的需求下载(ultimate,旗舰版)或者(Community,社区版)。比如这里直接下载ultimate

下载得到ideaIU-2017.2.3.exe可执行文件,双击即可安装。 (2)启动 安装完成后,单击周末IntelliJ IDEA图标即可启动IntelliJ IDEA. (3)导入设置 由于是第一次安装,所以不需要导入配置。默认选项即可。

(4)接受协议

(5)激活IntelliJ IDEA 2017.2.3(重要) 对于旗舰版的IntelliJ IDEA需要激活。如下图所示,首先选中“License server”,然后再输入框中输入http://idea.imsxm.com(注意,输入是这个地址,不是图中地址),最后单击“Activate”按钮激活即可。

(6)选中风格 为了保护眼睛,我倾向于选中Darcula风格。

(7)单击“Next:Default plugins”–>Featured plugins,单击“Install”下载Scala插件

6.6 设置

(1)单击“Create New Project”

6.7 创建Maven项目

选中scala–>右键快捷菜单–>Mark Directory as –>Sources root

File–>Project Structure–>Global Libaries

单击“Browse”按钮,选中Scala安装目录

6.8 编辑代码

(1)pom.xml

Spark2.2 Maven库请参见 http://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10/2.2.0

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>cn.hadron</groupId>
  <artifactId>simpleSpark</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <properties>
    <spark.version>2.2.0</spark.version>
  </properties>

  <repositories>
    <repository>
      <id>nexus-aliyun</id>
      <name>Nexus aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </repository>
  </repositories>

  <dependencies>
    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10 -->
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_2.10</artifactId>
      <version>${spark.version}</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <classifier>dist</classifier>
          <appendAssemblyId>true</appendAssemblyId>
          <descriptorRefs>
            <descriptor>jar-with-dependencies</descriptor>
          </descriptorRefs>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

保存pom.xml文件后,如果Intellij IDEA右下角出现如下提示,请单击“Enable Auto-Import”

(2)WordCount.scala 新建Scala Class类WordCount.scala,Scala源文件后缀名是.scala。

package cn.hadron

import org.apache.spark._

object WordCount {
  def main(args: Array[String]) {
    var masterUrl = "local[1]"
    var inputPath = "D:\\data\\Hamlet.txt"
    var outputPath = "D:\\output"

    if (args.length == 1) {
      masterUrl = args(0)
    } else if (args.length == 3) {
      masterUrl = args(0)
      inputPath = args(1)
      outputPath = args(2)
    }

    println(s"masterUrl:${masterUrl}, inputPath: ${inputPath}, outputPath: ${outputPath}")

    val sparkConf = new SparkConf().setMaster(masterUrl).setAppName("WordCount")
    val sc = new SparkContext(sparkConf)

    val rowRdd = sc.textFile(inputPath)
    val resultRdd = rowRdd.flatMap(line => line.split("\\s+"))
        .map(word => (word, 1)).reduceByKey(_ + _)

    resultRdd.saveAsTextFile(outputPath)
  }
}

6.9 数据文件

从网络上下载一部文本格式的小说,比如Hamlet.txt,存放到D:\data目录。

6.10 运行

在源文件代码中右键单击–>Run “WordCount”

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端儿

前端代码乱糟糟?是时候引入代码质量检查工具了

为了统一团队的代码规范,除了一纸规范说明之外,还需要引入工具进行限制。虽说工具并不能完全实现规范中的规则,但至少能够在一定程度上缓解代码不统一的局面。

1381
来自专栏流柯技术学院

Eclipse安装SVN插件及使用说明

1、下载Eclipse,如果没有安装的请到这里下载安装:http://eclipse.org/downloads/ ,关于Eclipse的下载安装不再赘述。 ...

1181
来自专栏青玉伏案

iOS逆向工程之Hopper+LLDB调试第三方App

LLDB是Low Level Debugger的简称,在iOS开发的调试中LLDB是经常使用的,LLDB是Xcode内置的动态调试工具。使用LLDB可以动态的调...

2839
来自专栏漫漫全栈路

Python爬虫学习之旅-从基础开始

知其然,知其所以然。使用爬虫,必须要先理解爬虫的原理,先说下爬虫的基本流程和基本策略。

23410
来自专栏Laoqi's Linux运维专列

LAMP环境搭建小结

1. 为什么下载源码包需要到官网上去下载? 简单说就是为了安全,如果是非官方下载的源码包,有可能被别有用心的人动过手脚,毕竟是源码的,任何人都可以修改代码。 ...

3346
来自专栏企鹅号快讯

11个让你吃惊的Linux终端命令

我已经用了十年的linux了,通过今天这篇文章我将向大家展示一系列的命令、工具和技巧,我希望一开始就有人告诉我这些,而不是曾在我成长道路上绊住我。 ? 1. 命...

1799
来自专栏格子的个人博客

Tomcat目录文件列表功能和定制化

先说一下背景。 某天,产品小伙伴过来提了一个需求:能不能把公司的需求文档以列表的方式展示出来,当开发者需要哪个的时候,自己在目录中寻找并点击进入(需要哪个点哪...

1363
来自专栏小古哥的博客园

gulp的安装和使用

安装nodejs -> 全局安装gulp -> 项目安装gulp以及gulp插件 -> 配置gulpfile.js -> 运行任务 1、去nodejs官网安装n...

2745
来自专栏菩提树下的杨过

intellij idea 高级用法之:集成JIRA、UML类图插件、集成SSH、集成FTP、Database管理

之前写过一篇IntelliJ IDEA 13试用手记 ,idea还有很多高大上的功能,易用性几乎能与vs.net媲美,反正我自从改用idea后,再也没开过ecl...

2825
来自专栏木头编程 - moTzxx

rsync error(1503)分析:@ERROR: auth failed on module xxxx rsync error: error starting client-server

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

662

扫码关注云+社区