spark3.0教程:打包、提交服务器、运行

代码

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Test_jar {
  def main(args: Array[String]): Unit = {
    // 注意:不要有 .setMaster("local[*]"),会报错:User did not initialize spark context!
    val sparConf = new SparkConf().setAppName("RDD")
    val sc = new SparkContext(sparConf)
    val rdd:RDD[Int] = sc.makeRDD( List( 1,2,3,4,5,6 ),2 )

    val resRDD: RDD[Int] = rdd.map(_ * 2)
    resRDD.saveAsTextFile("/test_spark2")
    sc.stop()
  }
}

注意1

因为是 YARN 集群部署,所以运行模式必须由提交命令决定,不能写死在代码里

不要有 .setMaster("local[*]"),会报错如下:

User did not initialize spark context!

注意2

设置分区,SparkSQL 默认分区是 200,如果数据量小,会导致性能差

打包

上传服务器

略

运行

yarn cluster

spark-submit \
--class Test_jar \
--master yarn \
--deploy-mode cluster \
std_spark-1.0-SNAPSHOT.jar

更多 spark-submit 参数详见 链接