基于SpringBoot+Spark搭建本地计算引擎服务

1. 项目背景

  上一篇文章我们讲解了搭建数据挖掘可视化系统(大数据数据挖掘系统可视化设计艺术-CSDN博客)的主要内容,通过构建算子工作流可以完成数据挖掘的工作。这时这里的算子可以提交到本地计算请求,也可以提交大数据集群做计算,本文将详细介绍搭建本地计算请求的过程。

2.拓扑排序核心算法

2.1算法描述

拓扑排序是针对有向无环图(DAG)的一种排序方法,它可以用来解决任务调度、依赖关系等问题。

核心算法逻辑描述如下:
1. 初始化一个数组inDegree,用来记录每个顶点的入度数(即有多少其他顶点指向该顶点)。
2. 遍历图的所有顶点,统计每个顶点的入度数,并将其存入inDegree数组中。
3. 初始化一个队列queue,并将所有入度为0的顶点放入队列中。
4. 初始化一个空数组result,用于存储排序后的顶点。
5. 当队列不为空时,执行以下操作:
   - 取出队首顶点v,并将其放入result数组中。
   - 遍历v的所有邻接顶点u:
     - 将u的入度减1。
     - 若u的入度变为0,将u放入队列中。
6. 当队列为空时,如果result数组的长度等于图的顶点数,说明拓扑排序成功,返回result;否则,说明图中存在环,拓扑排序失败。

拓扑排序的时间复杂度为O(V+E),其中V为顶点数,E为边数。

2.2代码实现
/**
     * @param links    节点关系
     * @param opMapper 算子id -> Operator映射
     * @param flag
     * @return
     */
    private List<String> splitLinks(JSONArray links, HashMap<String, Operator> opMapper, boolean flag) {
        List<String> flow = new ArrayList<>();
        List<String> fullFlow = new ArrayList<>();
        HashMap<String, Integer> fromMap = new HashMap<>();
        HashMap<String, Integer> toMap = new HashMap<>();
        for (Object obj : links) {
            JSONObject link = (JSON

相关推荐

  1. 基于SpringBoot+Spark本地计算引擎服务

    2024-06-16 12:52:04       40 阅读
  2. springboot + easyRules 规则引擎服务

    2024-06-16 12:52:04       30 阅读
  3. json-server 快速本地服务器

    2024-06-16 12:52:04       52 阅读
  4. NTP服务并读取本地时间

    2024-06-16 12:52:04       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-16 12:52:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-16 12:52:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-16 12:52:04       87 阅读
  4. Python语言-面向对象

    2024-06-16 12:52:04       96 阅读

热门阅读

  1. Pytorch-Padding Layers

    2024-06-16 12:52:04       27 阅读
  2. windows11键盘失灵

    2024-06-16 12:52:04       29 阅读
  3. ssl安全证书免费申请方法,非自签证书

    2024-06-16 12:52:04       28 阅读
  4. 服务和协议的关系?

    2024-06-16 12:52:04       35 阅读
  5. 【DevOps】Logstash详解:高效日志管理与分析工具

    2024-06-16 12:52:04       26 阅读
  6. 285. 二叉搜索树中的中序后继

    2024-06-16 12:52:04       26 阅读
  7. vue学习(一)

    2024-06-16 12:52:04       28 阅读
  8. vue相关的前端知识回顾

    2024-06-16 12:52:04       31 阅读
  9. vue中的组件通信

    2024-06-16 12:52:04       48 阅读