歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> IDEA下用SBT搭建Spark Helloworld

IDEA下用SBT搭建Spark Helloworld

日期:2017/2/28 13:45:42   编辑:Linux教程

沒用過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插件

新建sbt工程

這裡需要注意,如果選擇Spark2.0以上,那麼Scala要選2.11以上。因為我用的是Spark2.0.2,所以就選擇2.11.1,選擇JDK版本後確認。

工程創建成功後的目錄

編輯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可在官網查詢

Helloworld


在project下 src/scala包下創建一個scala.class

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”在文件中出現多少次。

運行代碼

可能出現的錯誤:

java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

原因是缺少了winutils.exe文件,這個而且沒有設置HADOOP_HOME

1. 下載hadoop到本機並添加bin目錄到環境變量

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

2. 下載winutils.exe文件,下載後放到hadoop的bin目錄下

Linux公社資源站下載:

------------------------------------------分割線------------------------------------------

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /2016年資料/12月/22日/IDEA下用SBT搭建Spark Helloworld/

下載方法見 http://www.linuxidc.com/Linux/2013-07/87684.htm

------------------------------------------分割線------------------------------------------

Copyright © Linux教程網 All Rights Reserved