本地Spark程序調試需要使用local提交模式,即將本機當做運行環(huán)境,Master和Worker都為本機,運行時直接加斷點調試即可。
1、斷點調試

尖叫提示:如果本機操作系統(tǒng)是windows,如果在程序中使用了hadoop相關的東西,比如寫入文件到HDFS,則會遇到異常 “Java.io.IOException:Could not locate executable null\bin\winutils.exe in the Hadoop binaries”,出現(xiàn)這個問題的原因,并不是程序的錯誤,而是用到了hadoop相關的服務,解決辦法是將附加里面的hadoop-common-bin-2.7.3-x64.zip解壓到任意目錄,在IDEA中配置Run Configuration,添加HADOOP_HOME變量
2、解壓

3、配置Run Configuration 添加HADOOP_HOME
(1)Run -> Edit Configurations ...

(2)Environment Variables -> + -> HADOOP_HOME -> ok

4、編寫程序
package com.victor.spark
import org.apache.spark.{SparkConf, SparkContext}
object Application extends App{
// 1、 聲明一個spark conf 對象,用于配置spark連接
val sparkconf = new SparkConf().setAppName("wordcount").setMaster("local[*]")
// 2、創(chuàng)建一個spark context 用于連接spark 集群
val sparkContext = new SparkContext(sparkconf)
// 3、加載需要處理的數(shù)據(jù)文件
val textfile = sparkContext.textFile("hdfs://hadoop102:9000/README")
// 4、處理數(shù)據(jù)
val result = textfile.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_)
// 5、輸出數(shù)據(jù)文件的結果
result.saveAsTextFile("hdfs://hadoop102:9000/out")
//result.collect().foreach(println _)
// 6、關閉spark集群的連接
sparkContext.stop()
}