Windows下使用IDEA開發(fā)Spark應(yīng)用程序配置說明(使用sbt構(gòu)建)。
軟件環(huán)境
- Hadoop 2.7.7
- Spark 2.4.0
- Scala 2.11
- Java 8
配置Hadoop
Windows環(huán)境下需要先配置Hadoop環(huán)境變量股耽,如圖所示:
同時(shí)在PATH環(huán)境變量中添加Hadoop信息:
之后需要下載一個(gè)winutils.exe工具鼠锈,將該文件放到Hadoop的bin目錄下。
打開命令行,輸入echo %PATH%
命令,如果輸出中包含Hadoop路徑信息,說明配置成功筋现。
創(chuàng)建SBT項(xiàng)目
使用IDEA創(chuàng)建SBT項(xiàng)目,項(xiàng)目名為sparkDemo:
由于Spark2.4.0默認(rèn)使用的Scala版本是2.11,這里需要選擇Scala的版本:
創(chuàng)建完畢后矾飞,項(xiàng)目結(jié)構(gòu)如下:
在build.sbt
中添加Spark依賴文件:
name := "sparkDemo"
version := "0.1"
scalaVersion := "2.11.12"
val sparkVersion = "2.4.0"
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % sparkVersion,
"org.apache.spark" %% "spark-sql" % sparkVersion,
"org.apache.spark" %% "spark-streaming" % sparkVersion,
"org.scalatest" %% "scalatest" % "3.0.5"
)
編寫Spark應(yīng)用程序
一切準(zhǔn)備完畢彻犁,可以開始編碼,這里使用的示例是Spark官方程序凰慈,本地運(yùn)行時(shí)需要設(shè)置運(yùn)行模式為local
:
package com.sparkdemo.app
import org.apache.spark.sql.SparkSession
object SimpleApp {
def main(args: Array[String]): Unit = {
val logFile = "d://tools//spark-2.4.0-bin-hadoop2.7//README.md" // Should be some file on your system
val spark = SparkSession.builder.appName("Simple Application").master("local[2]").getOrCreate()
val logData = spark.read.textFile(logFile).cache()
val numAs = logData.filter(line => line.contains("a")).count()
val numBs = logData.filter(line => line.contains("b")).count()
println(s"Lines with a: $numAs, Lines with b: $numBs")
spark.stop()
}
}
接下來就可以在本地運(yùn)行調(diào)試Spark程序了汞幢。