全部产品
云市场

通过脚本创建和执行Spark任务

更新时间:2019-08-15 21:39:31

DLA Spark支持在VPC环境机器上通过命令行运行dla-spark-submit.py脚本,通过脚本创建和执行Spark任务。

注意事项

  • 目前仅支持使用DLA主账号或者子账号通过脚本方式创建和管理Spark任务。

  • 暂不支持使用RAM子账号通过脚本方式创建和管理Spark任务。

创建和执行Spark任务

创建Spark任务时,需要调用dla-spark-submit.py脚本。

脚本格式

说明:1个CU=1CPU+4GB。

  1. dla-spark-submit.py
  2. ## 登录DLA控制台 > 账号管理获取账号信息。
  3. --user "用户名。" --password "用户密码。"
  4. ## 登录DLA控制台 > Spark > 配置管理获取Spark连接地址。
  5. --master "Spark连接地址即VPC内访问链接,包含端口号,例如http://***-sp-be***ec.vpc.cn-hangzhou.datalakeanalytics.aliyuncs.com:10000。"
  6. --name "Spark任务名。"
  7. --class-name "应用主类名称,如:org.apache.spark.example.SparkPi。"
  8. --conf "所有key=value形式的Spark配置选项。"
  9. --driver-cu "以用户所选择cu为单位的driver资源配置,如果设置了该参数,则无需设置driver-cores和driver-memory。"
  10. --driver-cores "driver所需CPU数量,该参数只有在未设置driver-cu时才会生效。"
  11. --driver-memory "driver所需内存数量,该参数只有在未设置driver-cu时才会生效。"
  12. --num-executors "executor数量。"
  13. --executor-cu "以用户所选择cu为单位的executor资源配置,如果设置了该参数,则无需设置executor-cores和executor-memory。"
  14. --executor-cores "executor所需要CPU数量,该参数只有在未设置executor-cu时才会生效"
  15. --executor-memory "executor所需内存量,该参数只有在未设置executor-cu时才会生效。"
  16. --jars "除主jar包之外,程序依赖的其它jar包。"
  17. application-jar "主程序jar包。"
  18. application-args "主程序参数,如SparkPi中的迭代次数100。"

示例

  • 通过DLA主账号创建Spark任务

    1. dla-spark-submit.py
    2. --master 127.0.0.1:8080
    3. --user 'oa_xxx' --password 'xxx'
    4. --name 'test-submit'
    5. --class-name org.apache.spark.examples.SparkPi
    6. --conf spark.driver.cu=1
    7. --conf spark.executor.cu=1
    8. --conf spark.executor.instances=1
    9. ## 存储Jar包的OSS地址
    10. oss://bucket_name/spark-examples_2.11-2.4.3.jar 100
    11. ## 打印结果,
    12. {'status_code': 200, 'job_id': u'****7111512bja3b320****'}
  • 通过DLA子账号创建Spark任务

    AccessKey(简称AK)是指访问身份验证中用到的AccessKeyId和AccessKeySecret。OSS通过使用AccessKeyId和AccessKeySecret对称加密的方法来验证某个请求的发送者身份。AccessKeyId用于标识用户,AccessKeySecret是用户用于加密签名字符串和OSS用来验证签名字符串的密钥。

    通过DLA子账号创建Spark任务时,需要在命令中指定访问OSS的EndpointAK信息。

    1. dla-spark-submit.py
    2. --master 127.0.0.1:8080
    3. --user 'oa_xxx' --password 'xxx'
    4. --name 'test-submit'
    5. --class org.apache.spark.examples.SparkPi
    6. --conf "spark.hadoop.fs.oss.endpoint=xxx"
    7. --conf "spark.hadoop.fs.oss.accessKeyId=xxx"
    8. --conf "spark.hadoop.fs.oss.accessKeySecret=xxx"
    9. --conf spark.driver.cu=1
    10. --conf spark.executor.cu=1
    11. --conf spark.executor.instances=1
    12. oss://bucket_name/spark-examples_2.11-2.4.3.jar 100
    13. ## 打印结果。
    14. {'status_code': 200, 'job_id': u'****7111512bja3b320****'}