zoukankan      html  css  js  c++  java
  • Idea下用SBT搭建Spark Helloworld

    没用过IDEA工具,听说跟Eclipse差不多,sbt在Idea其实就等于maven在Eclipse。Spark运行在JVM中,所以要在Idea下运行spark,就先要安装JDK 1.8+ 然后加入Scala和Spark的依赖包就可以进行开发了,不要安装低版本的JDK。

    先下载Idea的社区版

    https://www.jetbrains.com/idea/download/download-thanks.html?platform=windows&code=IIC

    Scala、Spark环境


    安装完后下载Scala插件

    PJU5N~%]$3}$@Q8XAQX6}$B

    新建sbt工程

    1{7Z[O9RYO5RR]1TN{T%CI7

    这里需要注意,如果选择Spark2.0以上,那么Scala要选2.11以上。因为我用的是Spark2.0.2,所以就选择2.11.1,选择JDK版本后确认。

    063C]RYBWUU[4N3R08BD6SF

    工程创建成功后的目录

    7MAKRFV(($)T`G~NECWXH}T

    编辑build.sbt文件,添加Spark依赖

    name := "Scala"
    
    version := "1.0"
    
    scalaVersion := "2.11.1"
    
    libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.0.2"

    保存,等待下载完依赖的包。

    PS: Scala版本对应的Spark可在官网查询

    W`~H5U]]ELBR}S{WBK8%ANP

    Helloworld


    在project下 src/scala包下创建一个scala.class

    image

    helloworld.scala

    import org.apache.spark.{SparkConf, SparkContext}
    
    /**
      * Created by Jan on 2016/12/19.
      */
    object Helloworld {
    
        def main(args: Array[String]) {
          val logFile = "./README.md"  // Should be some file on your server.
          val conf = new SparkConf().setAppName("Simple Application").setMaster("local")
          val sc = new SparkContext(conf)
          val logData = sc.textFile(logFile, 2).cache()
          val numAs = logData.filter(line => line.contains("h")).count()
          val numBs = logData.filter(line => line.contains("j")).count()
          println("Lines with h: %s, Lines with j: %s".format(numAs, numBs))
        }
    
    }

    上面代码目的是:在本地读取一个叫README.md的文件,通过Spark内存分析,计算字母“h”和字母“j”在文件中出现多少次。

    运行代码

    image

    可能出现的错误:

    java.io.IOException: Could not locate executable nullinwinutils.exe in the Hadoop binaries.

    原因是缺少了winutils.exe文件,这个而且没有设置HADOOP_HOME

    解决办法

    1. 下载hadoop到本机并添加bin目录到环境变量

    http://hadoop.apache.org/releases.html

    2. 网上搜下winutils.exe文件,下载后放到hadoop的bin目录下

    http://download.csdn.net/detail/u014313009/7671379

  • 相关阅读:
    @override报错
    idea快捷键
    java中getAttribute与getParameter的区别
    localStorage基于浏览器的本地存储
    js画布组件(<canvas></canvas>)
    easyui
    关于Bootstrap
    使用layUI美化的登录功能
    EXT JS
    ★一些文章链接
  • 原文地址:https://www.cnblogs.com/yongjian/p/6211007.html
Copyright © 2011-2022 走看看