更新时间:2023-09-07 GMT+08:00
分享

spark提交服务

  1. 服务分布:
    表1 服务分布

    服务名

    服务器

    安装目录

    端口

    data-spark-submit

    10.190.x.x

    10.190.x.x

    /app/dt/data-spark-submit

    8087

  2. 安装spark提交服务
    1. 修改配置文件application-dev.yml
      • 修改stdms.callback.url中的ip和端口,配置为CIM数据汇聚管理平台的ip和端口
      • 当使用minio存储日志时,配置log.server.enable为true,并配置日志服务(data-log-manage)的ip和端口;

      当使用本地文件存储日志时,配置log.server.enable为false

      ```yml
      # 服务端口
      server:
        port: 8087
      # 任务执行完成,回调CIM数据汇聚管理平台接口
      stdms:
        callback:
          url: http://192.168.32.89:9090/stdms/feed-back/ch-task-status?objectId=%s&status=%d
      # 是否将日志发送到日志服务并存储到minio
      log:
        service:
          enable: false
          url: http://127.0.0.1:8089/save
      # 通过minio中转传输脚本文件
      minio:
        endpoint: http://192.168.32.227:9000
        access-key: admin
        secret-key: Admin123@minio
      # 生产打开下面配置,使用jar同级config目录配置文件
      logging:
        config: config/log4j2.xml
      ```
    2. 启动、停止
      • 启动:

        进入data-spark-submit.jar所在路径,执行

        ```shell
        nohup java -jar data-spark-submit.jar &
        ```
      • 停止:
        Kill -9 进程号
    3. 服务验证
      • 服务启动验证与版本信息查询

        将以下地址中的ip和端口修改为实际部署ip和端口,请求接口,查看版本信息

        请求地址:http://localhost:8087/about

        请求方式:GET

      • 服务功能验证

        任务提交验证:将以下地址中的ip和端口修改为实际部署ip和端口,在minio中创建桶data-mining-spark,将test文件夹中的test.py脚本上传至桶data-mining-spark的根路径下,请求以下接口

        请求地址:http://localhost:8087/spark-submit

        请求方式:POST

        请求参数体:

        ```json
        {
            "taskName": "app",
            "taskId": "1",
            "fileLocation": "minio",
            "master": "local",
            "deployMode": "client",
            "appResource": "test.py",
            "jars": "",
            "mainClass": "",
            "pyFiles": "",
            "verbose": false,
            "conf": {
                "spark.driver.memory": "1g",
                "spark.executor.memory": "1g",
                "spark.executor.cores": "2",
                "spark.kryoserializer.buffer.max": "1",
                "spark.default.parallelism": "100",
                "spark.shuffle.service.enabled": "false",
                "spark.dynamicAllocation.minExecutors": "1",
                "spark.dynamicAllocation.maxExecutors": "2",
                "spark.dynamicAllocation.enabled": "false"
            },
            "appArgs": []
        }
        ```

        返回结果示例:

        ```json
        {
            "success": true,
            "message": "提交spark任务成功",
            "content": {
                "taskId": "1",
                "taskName": "app",
                "createTime": "2022-08-16 18:27:24",
                "applicationId": "local-1660645647751"
            }
        }
        ```

相关文档