StreamPark + PiflowX 打造新一代大数据计算处理平台

🚀 什么是PiflowX

PiFlow 是一个基于分布式计算框架 Spark 开发的大数据流水线系统。该系统将数据的采集、清洗、计算、存储等各个环节封装成组件,以所见即所得方式进行流水线配置。简单易用,功能强大。它具有如下特性:

  1. 简单易用:可视化配置流水线,实时监控流水线运行状态,查看日志;

  2. 功能强大:提供 100 + 的数据处理组件, 包括 Hadoop 、Spark、MLlib、Hive、Solr、Redis、MemCache、ElasticSearch、JDBC、MongoDB、HTTP、FTP、XML、CSV、JSON 等,同时集成了微生物领域的相关算法;

  3. 扩展性强:支持自定义开发数据处理组件;

  4. 性能优越:基于分布式计算引擎 Spark 开发。

Piflow架构图:
在这里插入图片描述

在实时化的大趋势下,Flink 已经成为实时计算行业的事实标准。我们看到,不光是阿里巴巴,国内外各个领域的头部厂商,都把 Flink 做为实时计算的技术底座,国内有字节跳动、腾讯、华为,国外有 Netflix、Uber 等等。

为了流水线处理系统支持flink引擎,PiflowX应运而生,PiflowX基于Piflow二次开发(在此,向piflow作者和全体开发人员致敬!!!),对核心框架进行了重构,使算子组件接口抽象与计算引擎完全解耦,组件实现侧则完全由spark或flink API实现。采用这种架构虽然实现代价高,后期维护困难,但好处也是显而易见的,首先,组件完全由引擎自身API构成,天然可插拔,天然支持多版本。其次,可最大化和自由的使用引擎各自的特性,不会因为为了统一实现而不得不舍弃某些高级特性或功能。最后不会因为数据抽象和转换而造成性能损失,毕竟PilfowX是一款大数据处理系统!

下图是改造后spark和flink分别实现的组件算子模块。

在这里插入图片描述

PiflowX架构图:

在这里插入图片描述

任务侧添加了引擎类型(engineType)字段,这样便可识别底层实现组件。目前flink实现了大约40种组件,spark则是piflow原生实现的100+种组件。

在这里插入图片描述

flink类型任务:
在这里插入图片描述

spark类型任务:
在这里插入图片描述

PiflowX任务运行DEMO:

67bf2a930f51a536212ba5c442271bfb

在二开的过程中,也发现了piflow存在的一些问题:

  1. 由于piflow原生是基于spark的,现在增加了flink的实现,flink工作模式众多,因此任务运维这块工作量和难度都比较大!!!

  2. piflow webui美观度上还是欠缺一点(纯属个人意见,没有别的意思,望piflow各位开发者见谅),技术栈基于vue2,组件实现上代码量偏大。如果在原有基础上迁移到vue3和其他ui框架上,工作量无疑是个天文数字!!!

基于以上两点,便考虑在开源产品中寻找一款基于flink开发的产品,UI美观又大气的产品进行整合。不出意外的很轻松的找到了StreamPark

🚀 什么是StreamPark

实时即未来,在实时处理流域 Apache SparkApache Flink 是一个伟大的进步,尤其是 Apache Flink 被普遍认为是下一代大数据流计算引擎, 我们在使用 Flink & Spark 时发现从编程模型, 启动配置到运维管理都有很多可以抽象共用的地方, 我们将一些好的经验固化下来并结合业内的最佳实践, 通过不断努力诞生了今天的框架 —— StreamPark, 项目的初衷是 —— 让流处理更简单, 使用 StreamPark 开发流处理作业, 可以极大降低学习成本和开发门槛, 让开发者只用关心最核心的业务,StreamPark 规范了项目的配置,鼓励函数式编程,定义了最佳的编程方式,提供了一系列开箱即用的Connectors,标准化了配置、开发、测试、部署、监控、运维的整个过程, 提供了scalajava两套 Api, 并且提供了一个一站式的流处理作业开发管理平台, 从流处理作业开发到上线全生命周期都 做了支持, 是一个一站式的流处理计算平台.

简言之,Streampark是流处理极速开发框架,支持流批一体 & 湖仓一体的云原生平台,一站式流处理计算平台。
在这里插入图片描述

目前,PiflowX后端已全部整合到streampark-console-service模块,前端流水线相关功能也基本迁移。

在这里插入图片描述

以下是整合后的相关图片:

登录页

在这里插入图片描述

首页

在这里插入图片描述

流水线首页

在这里插入图片描述

创建flink类型任务

在这里插入图片描述

设计flink类型流水线

在这里插入图片描述

当然,纯flinksql组件算子已经实现,可以直接在节点上编写flinksql脚本

在这里插入图片描述
在这里插入图片描述

创建spark类型任务

在这里插入图片描述

设计spark类型流水线

在这里插入图片描述

目前整合进度刚刚开始,二者功能完全割裂,接下来,还需继续努力,争取早日实现无缝连接,完美糅合,打造新一代大数据计算处理平台!!!

参考资料:

cas-bigdatalab/piflow: πflow is a big data flow engine with spark support (github.com)

框架介绍 | Apache StreamPark (incubating)

Flink学习笔记(一):为什么选择flink_fink替代rabbitmq-CSDN博客

Flink 执行引擎:流批一体的融合之路 (baidu.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/295332.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

群晖Docker部署HomeAssistant容器结合内网穿透远程控制家中智能设备

目录 一、下载HomeAssistant镜像 二、内网穿透HomeAssistant,实现异地控制智能家居 三、使用固定域名访问HomeAssistant 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站 Ho…

树低级(C语言版)

一.树基本计算规则 关于树的大部分知识点我们都讲过了,那么如果我给你树的节点,你可以算出叶子节点个数吗? 下面我们总结下一些计算规则: 1.父子计算规则: parent(child-1)/2; leftchildparent*21,rightchildpare…

设计循环队列——oj题622

. 个人主页:晓风飞 专栏:LeetCode刷题|数据结构|Linux 路漫漫其修远兮,吾将上下而求索 文章目录 题目要求:应该支持如下操作:示例:提示: 结构体定义队列的创建基本操作判断队列是否为空&#xf…

python 数据容器

数据容器概念 一个可以存储多个元素的python数据类型 python有的数据容器 list(列表) tuple(元组) str(字符串) set(集合) dct(字典) 列表 python的列表的数据类型可以是不同的 my_list ["1",123,True,[123,"3333",d,False]]for item in my_list:p…

第三部分使用脚手架:vue学习(61-65)

文章目录 61 创建vue脚手架![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f71d4324be0542209e690ab9e886d199.png)62 分析脚手架结构63 render函数64 修改默认配置65 ref 属性 61 创建vue脚手架 写完vue文件,没有脚手架做翻译,浏览器不认识…

数据结构:图详解

图的存储方式 邻接矩阵 首先先创建图,这一个我们可以使用邻接矩阵或者邻接链 表来进行存储,我们要实现的无向图的创建,我们先创建 一个矩阵尺寸为n*n,n为图中的节点个数如图所示 可以看出图中有5个结点,那我们创建…

PostGIS学习教程十七:线性参考

PostGIS学习教程十七:线性参考 线性参考是一种表示要素的方法,这些要素可以通过引用一个基本的线性要素来描述。使用线性参照建模的常见示例包括: 公路资产,这些资产使用公路网络沿线的英里来表示。 道路养护作业,指…

AOP(面向切面编程)基于XML方式配置

概念解释:(理解基本概念方可快速入手) 连接点(joinpoint) 被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法。 切入点(pointcut&#x…

主题-----读微信公众号

1.SOA 面向服务的架构(Service-Oriented Architecture,SOA)还没有一个公认的定义。许多组织从不同的角度和不同的侧面对 SOA 进行了描述,较为典型的有以下三个: (1)W3C 的定义:SOA 是…

MySQL-DCL

DCL是数据控制语言,用来管理数据库用户,控制数据库的访问权限。 管理用户:管理哪些用户可以访问哪些数据库 1.查询用户 USE mysql; SELECT * FROM user; 注意: MySQL中用户信息和用户的权限信息都是记录在mysql数据库的user表中的…

D-Link DES-108 交换机

D-Link DES-108 交换机 1. 百兆交换机 8 口References ​ D-Link Corporation is a Taiwanese multinational networking equipment manufacturing corporation headquartered in Taipei, Taiwan. Taiwanese:adj. 台湾的 n. 台湾人 headquarter [hedkwɔ:tə]&#…

深入理解Python中的二分查找与bisect模块

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

数据采集:获取有价值信息的关键步骤

在当今数据驱动的时代,数据已成为企业、组织和个人做出明智决策的重要依据。而数据采集作为数据分析和应用的第一步,其重要性不言而喻。本文将探讨数据采集的概念意义、方法工具、面临的挑战和应对策略以及注意事项。 一、数据采集的定义和重要性 &…

HTTP基础知识总结

目录 一、什么是HTTP? 二、与HTTP有关的协议 三、HTTP请求特征 四、HTTP组成格式 五、HTTP标头 1.通用标头 2.实体标头 3.请求标头 4.响应标头 六、HTTP状态码分类 我们在日常测试过程中,也可以通过浏览器F12简单定位是前端问题还是后端问题&a…

css学习之路:sass学习基础篇

SCSS 一、动态的样式语言 让CSS有变量的概念css有很多的缺点 语法不够强大,没有变量和合理的样式复用机制,导致难以维护,我们就可以使用动态样式语言,赋予CSS新的特性。常见的动态样式语言 scss/sass(scss兼容sass&am…

厚积薄发11年,鸿蒙究竟有多可怕

12月20日中国工程院等权威单位发布**《2023年全球十大工程成就》。本次发布的2023全球十大工程成就包括“鸿蒙操作系统”在内。入围的“全球十大工程成就”,主要指过去五年由世界各国工程科技工作者合作或单独完成且实践验证有效的,并且已经产生全球影响…

云尚办公项目学习

完整的笔记可以参考这个专栏,写的挺详细的:云尚办公课件笔记,come on boy form-create前端组件 formProps记录了表单有哪些表单项,分别是哪些类型(下拉,单选,输入框) formOptions记…

周鸿祎分享大模型十大趋势:2024将出现杀手级应用

1月5日,“2023年风马牛年终秀”上,三六零(601360.SH,下称“360”)集团创始人周鸿祎分享了对2024年大模型发展趋势的十大预测,呼吁企业树立AI信仰,All in AI。他认为,创新才能破局&am…

shell脚本实现九九乘法表

9*9乘法表 判断服务是否开启 1.查看80端口是否被监听 [rootlocalhost ~]# ss -an | grep 80 tcp LISTEN 0 128 *:80 *:* 2.查看80端口/httpd服务是否开启 [rootlocalhost ~]# n…

【Python学习】Python学习2

目录 【Python学习】Python学习2 1.前言2.基本语法2.1标识符2.2保留字2.3行和缩进2.4多行语句2.5 Python 引号2.6 Python注释2.7 Python空行2.8 等待用户输入2.9 print 输出2.10 多个语句构成代码组2.11 命令行参数 参考 文章所属专区 Python学习 1.前言 主要是Python基本语…