spark:spark-submit 提交任务及参数说明(yarn)

Spark:对于提交命令的理解:

https://blog.csdn.net/weixin_38750084/article/details/106973247

spark-submit 可以提交任务到 spark 集群执行,也可以提交到 hadoop 的 yarn 集群执行。

代码中配置:

util:


import org.apache.spark.serializer.KryoSerializer
import org.apache.spark.sql.SparkSession

object SparkContextUtil {
  /**
    * 封装创建sparkContext实例
    *
    * @param appName
    * @param params
    * @return
    */
  def createSparkContext(appName: String, params: Map[String, String] = Map.empty) = {
    // 入口
    val spark: SparkSession = SparkSession.builder()
      .appName(appName)
      .config("spark.sql.warehouse.dir", "/user/hive/warehouse")
      .master("local[*]")
      .config("spark.serializer",classOf[KryoSerializer].getName)
      .config("spark.debug.maxToStringFields", "100")
      .enableHiveSupport().getOrCreate()


    // 封装用户传递进来的参数
    params.foreach { case (key, value) => spark.conf.set(key, value) }

    spark
  }
}

使用: 

object BusinessDataCombineErpJobs {

  Logger.getLogger("org").setLevel(Level.WARN)
  val logger = LoggerFactory.getLogger(BusinessDataCombineErpJobs.getClass.getSimpleName)


  def main(args: Array[String]): Unit = {

    val spark = SparkContextUtil.createSparkContext(TestSparkSql.getClass.getSimpleName)
    //返回基础sparkContext,用于创建RDD以及管理群集资源
    val sc = spark.sparkContext
    println("---数据处理开始---")
    test(spark)
    println("---数据处理结束---")
    spark.close()
  }
}

1. 例子

一个最简单的例子,部署 spark standalone 模式后,提交到本地执行。

./bin/spark-submit \
--master spark://localhost:7077 \
examples/src/main/python/pi.py

如果部署 hadoop,并且启动 yarn 后,spark 提交到 yarn 执行的例子如下。

注意,spark 必须编译成支持 yarn 模式,编译 spark 的命令为:

build/mvn -Pyarn -Phadoop-2.x -Dhadoop.version=2.x.x -DskipTests clean package

 其中, 2.x 为 hadoop 的版本号。编译完成后,可执行下面的命令,提交任务到 hadoop yarn 集群执行。

./bin/spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 1 \
--queue thequeue \
examples/target/scala-2.11/jars/spark-examples*.jar 10

注意:后边的数字10是传入的一个参数

线上实操:

spark2-submit --class bi.tag.TSimilarTagsTable --master yarn-client --executor-memory 6G --num-executors 5 --executor-cores 2 /var/lib/hadoop-hdfs/seijing/ble/tag/spark-sql/pf-spark-master/pi/target/pi-1.0.1-SNAPSHOT.jar


spark2-submit --class resume.mlib.RcoAID \
--master yarn \
--deploy-mode client  \
--num-executors 4  \
--executor-memory 10G \
--executor-cores 3 \
--driver-memory 10g \
--conf "spark.executor.extraJavaOptions='-Xss512m'" \
--driver-java-options "-Xss512m" \
/var/lib/hadoop-hdfs/als_ecommend/reserver-1.0-SNAPSHOT.jar  $1 $2 >> /var/lib/hadoop-hdfs/als_ecommend/logs/log_spark_out_`date +\%Y\%m\%d`.log

注意:
(1)
$1 $2 是 上一层,执行这个脚本传进来的参数
如:
/bin/bash
  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值