Spark设置setMaster=local,不提交集群,在本地启用多线程模拟运行

object SparkUtil {
  
  private val logger = Logger.getLogger(getClass.getName, true)
  
  def getSparkContext(appName:String, local:Boolean=false, threadNum:Int=4):SparkContext = {
    
      val conf = new SparkConf().setAppName(appName)
      if(local)
        conf.setMaster(s"""local[$threadNum]""")
      val sc = new SparkContext(conf)
      return sc
  }
}

SparkUtil.getSparkContext("testApp",true)  // 本地启4个线程模拟运行


本地模式运行可以测试主要的程序逻辑,并不能一定在集群中正确运行.