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

news2024/9/24 7:20:06

🚀 什么是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)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在云服务器ECS上用Python写一个搜索引擎

在云服务器ECS上用Python写一个搜索引擎 一、场景介绍二、搜索引擎的组成2.1 网页的爬取及排序2.2 用户使用搜索引擎进行搜索 三、操作步骤3.1 环境准备3.2 安装Anaconda3.3 安装Streamlit3.4 下载搜索引擎代码3.5 运行搜索引擎 四、常见问题4.1 运行setup.py时可能的问题4.2 如…

oracle 补齐数字长度 to_char踩坑

oracle的to_char网上找到的说明如下 (1)用作日期转换: to_char(date,格式); select to_date(2005-01-01 ,yyyy-MM-dd) from dual; select to_char(sysdate,yyyy-MM-dd HH24:mi:ss) from dual; (2)处理数字&#xf…

unity PDFRender Curved UI3.3

【PDF】PDFRender 链接:https://pan.baidu.com/s/1wSlmfiWTAHZKqEESxuMH6Q 提取码:csdn 【曲面ui】 Curved UI3.3 链接:https://pan.baidu.com/s/1uNZySJTW0-pPwi2FTE6fgA 提取码:csdn

【软件测试】2024年准备中/高级测试岗技术面试...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、软件测试基础知…

Netplan介绍

1 介绍 1.1 简介 Netplan是一个抽象网络配置描述器。通过netplan命令,你只需用一个 YAML文件描述每个网络接口所需配置。netplan并不关系底层管理工具是NetworkManager还是networkd。 它是一个在 Linux 系统上进行网络配置的实用程序。您创建所需接口的描述并定义…

【动态规划】【字符串】132.分割回文串 II

作者推荐 【动态规划】【字符串】扰乱字符串 本文涉及的基础知识点 动态规划 字符串 LeetCode132. 分割回文串 II 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文。 返回符合要求的 最少分割次数 。 示例 1: 输入&#x…

阿里云服务器配置jupyter(新手入门,详细全面)

设置安全组 1.租好服务器后在阿里云服务器平台上打开控制台(右上角) 2.点开自己的云服务器控制台,在左栏“安全组”部分添加安全规则,点击“管理规则” 单击“手动添加”,将安全组设为如下格式,端口范围…

wsl(ubuntu)创建用户

我们打卡ubuntu窗口,如果没有创建用户,那么默认是root用户 用户的增删改查 查 查询所有的用户列表 cat /etc/passwd | cut -d: -f1cat /etc/passwd: 这个命令用于显示 /etc/passwd 文件的内容。/etc/passwd 文件包含了系统上所有用户的基本信息。每一…

UG装配-沿线运动

如果希望图中圆柱销沿着槽运动,直接约束面是困难的,我们可以画出圆弧的中心线和圆柱销的中心点,约束点在线上,进行移动 需要注意的是,我们在零件中画点和线的时候,在装配体默认加载模型引用集的时候是无法显…

如何通过HACS+Cpolar实现远程控制米家和HomeKit等智能家居设备

文章目录 基本条件一、下载HACS源码二、添加HACS集成三、绑定米家设备 ​ 上文介绍了如何实现群晖Docker部署HomeAssistant,通过内网穿透在户外控制家庭中枢。本文将介绍如何安装HACS插件商店,将米家,果家设备接入 Home Assistant。 基本条件…

leetcode:908. 最小差值 I

一、题目 二、函数原型 int smallestRangeI(int* nums, int numsSize, int k) 三、思路 本题题目有些绕口,但是无伤大雅。本质就是可以对数组中的每个元素进行加/减 k 的操作,然后求数组中的最大、最小元素的最小差值。 分为几种情况: …

【数据库系统概论】数据库并发控制机制——并发操作带来的数据不一致性问题有哪些

系统文章目录 数据库的四个基本概念:数据、数据库、数据库管理系统和数据库系统 数据库系统的三级模式和二级映射 数据库系统外部的体系结构 数据模型 关系数据库中的关系操作 SQL是什么?它有什么特点? 数据定义之基本表的定义/创建、修改和…

若依前后端分离版关联字典值查询数据工具类使用

场景 若依管理系统导出Excel时添加没有的列和关联码表显示中文进行导出: 若依管理系统导出Excel时添加没有的列和关联码表显示中文进行导出_若依的导出添加额外的字段信息-CSDN博客 上面通过关联表的方式实现查询字典值,若依本身提供了查询redis中缓存…

【数据库原理】(10)数据定义功能

SQL 数据定义功能包括定义模式、定义表、定义索引和定义视图,其语句如表所示。 一.创建、删除模式 1.创建模式 (Create Schema) 用途:创建模式是为了在数据库中定义一个新的命名空间,它可以包含多个数据库对象。 语法: CREATE SCHEMA &…

建站指南,如何将拥有的域名自定义链接到wordpress

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 在Dynadot上,我们可已经账户中管理的…

Simply简洁博客主题源码 | EmlogPro主题模版

Simply是一款简约风格的Emlog博客模板,响应式布局、界面简单大方,实用性强! 支持夜间模式,采用localStorage存储配置。IOS系统下支持随系统自动切换浅/深色模式。 文章页支持显示文章字数及阅读时间。 支持http/https 响应式主…

Python+Yolov5+Qt交通标志特征识别窗体界面相片视频摄像头

程序示例精选 PythonYolov5Qt交通标志特征识别窗体界面相片视频摄像头 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《PythonYolov5Qt交通标志特征识别窗体界面相片视频摄像头》编写代码&a…

RocketMQ MQClientInstance、生产者实例启动源码分析

🔭 嗨,您好 👋 我是 vnjohn,在互联网企业担任 Java 开发,CSDN 优质创作者 📖 推荐专栏:Spring、MySQL、Nacos、Java,后续其他专栏会持续优化更新迭代 🌲文章所在专栏&…

【机器学习】循环神经网络(一)

一、网络结构 RNN 处理输入序列时的信息流。 粗体箭头为各时间点信息流的活跃路径,虚线箭头显示当时不活动的连接。 一个简单RNN例子 RNN 不是一类网络,而是适用于不同问题的拓扑结构的集合。循环网络的一个有趣的方面是,有了足够的层和节点&…

手写视频裁剪框

<!-- 截取框 --><divv-show"isShow"class"crop-box":style"{width: cropWidth px,height: cropHeight px,left: cropX px,top: cropY px,}"ref"cropBox"mousedown"startInteraction"><!-- 内容在这里 --…