代码
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 参数详见 链接
