
# 算子服务
1. 服务分布：
   表1服务分布 
   | 服务名            | 服务器                                              | 安装目录                   | 端口   |
   |:---|:---|:---|:---|
   | data-wrangling | 10.190.x.x 10.190.x.x | /app/dt/data-wrangling | 8085 |
      
   
2. 安装算子服务
   1. 修改配置文件application-dev.yml
      1. 修改stdms.callback.url中的ip和端口，配置为CIM数据汇聚管理平台的ip和端口
      
      2. 当使用minio存储日志时，配置log.server.enable为true，并配置日志服务（data-log-manage）的ip和端口； 当使用本地文件存储日志时，配置log.server.enable为false
         
      
      3. 当采用local模式运行时，data-wrangling-worker.cluster-mode配置为local；当采用集群模式运行时，data-wrangling-worker.cluster-mode配置为yarn，此时，需要将hadoop集群的core-site.xml、yarn-site.xml、hdfs-site.xml、mapred-site.xml等四个文件拷入config文件夹，同时，如果data-wrangling服务部署机器不在hadoop集群内的话，需要在部署机器上的/etc/hosts中配置集群服务器的ip和hostname
         ```
         ```yml
         # 服务端口
         server:
           port: 8085
         # spark任务提交模式
         data-wrangling-worker:
           cluster-mode: local
         # 任务执行完成，回调CIM数据汇聚管理平台接口
         stdms:
           callback:
             url: http://192.168.32.89:9090/stdms/feed-back/ch-task-status?objectId=%s&status=%d
         # 是否将日志发送到日志服务并存储到minio
         log:
           service:
             enable: true
             url: http://127.0.0.1:8089/save
         ```
         ```
         
       
   
   2. 启动、停止
      - 启动： 进入bin路径，执行
        ```
        ```shell
        ./start.sh
        ```
        ```
        
      
      
      
      - 停止：
        ```
        Kill -9 进程号
        ```
        
       
   
   3. 服务验证
      1. 服务启动验证与版本信息查询 将以下地址中的ip和端口修改为实际部署ip和端口，请求接口，查看版本信息
         请求地址：http://localhost:8085/about
         请求方式：GET
         
      
      2. 服务功能验证 任务提交验证：将以下地址中的ip和端口修改为实际部署ip和端口，配置正确的数据库连接信息，在数据库中创建user表，并填入任意测试数据，如下述案例表示查询本地mysql的demo库中的user表，并将user表中的数据同步到user1表。
         请求地址：http://localhost:8085/data-wrangling
         请求方式：POST
         请求参数体：
         ```
         ```json
         {
             "taskId": "7fdbcc680a4f4e929bc72d89856b00d3",
             "taskName": "lz-test",
             "nodes": [
                ……
             ],
             "lines": [
                 {
                     "from": "1",
                     "to": "2"
                 }
             ]
         }
         ```
         ```
         返回结果示例：
         ```
         ```json
         {
             "success": true,
             "message": "提交spark任务成功",
             "content": {
                 "taskId": "7fdbcc680a4f4e929bc72d89856b00d3",
                 "taskName": "lz-test",
                 "createTime": "2022-08-16 17:12:14",
                 "level": "INFO",
                 "applicationId": "local-1660641128001"
             }
         }
         ```
         ```
         
       
    
 
