Spark提交代码到集群中运行

一、将Spark代码提交到集群:

        1、将setMaster注释:

        2、注意输入和输出的路径,必须是HDFS存在的某个路径

        3、使用maven将代码打成jar包并上传

        4、构建提交命令(使用的是cluster):

spark-submit --master yarn --deploy-mode cluster --class com.spark.core.WordCountDemo01  spark-1.0.jar


import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.{FileSystem, Path}
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object WordCountDemo01 {
  def main(args: Array[String]): Unit = {
    //第一个代码:spark:wordcount
    //构建Spark的配置文件
    val conf: SparkConf = new SparkConf()
    //配置spark的运行模式
    //conf.setMaster("local")
    //配置spark的任务名称
    conf.setAppName("WordCountDemo01")
    //搭建spark的环境,此处的命名方式需要确定sc表示的时spark的运行环境
    val sc: SparkContext = new SparkContext(conf)
    val wordsRDD: RDD[String] = sc.textFile("/data/words.txt")
    val words1RDD: RDD[String] = wordsRDD.flatMap(kv => kv.split(","))
    val words2RDD: RDD[(String, Iterable[String])] = words1RDD.groupBy(word => word)
    val words3RDD: RDD[String] = words2RDD.map(kv => s"${kv._1},${kv._2.size}")
    val system: FileSystem = FileSystem.get(new Configuration())


    /**
     * 可以使用HDFS的Java API提前将目录删除避免出错
     */


    if(system.exists(new Path("/data1"))){
    system.delete(new Path("/data1"),true)
    }
    words3RDD.saveAsTextFile("/data1/")
    

  }

}

        

你可能感兴趣的:(Spark,spark,大数据,分布式)