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)

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

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

相关文章

租用服务器到底能干什么呢

越来越多的企业会选择服务器的租用,它能够为客户提供高性能、高可用性和灵活性的服务,可以提供远程管理工具,方便管理员对应用程序进行监控和管理,同时可以实现多个应用程序共存的需求,让企业在提供业务的时候无需自己…

Centos服务器安装Certbot以webroot的方式定时申请SSL免费证书

最近发现原先免费一年的SSL证书都改为3个月的有效期了,原先一年操作一次还能接受,现在3个月就要手动续期整的太慢烦了,还是让程序自动给处理下吧, 安装 Certbot yum install epel-release -y yum install certbot -yEPEL是由 Fe…

【AI视野·今日Sound 声学论文速览 第三十七期】Tue, 31 Oct 2023

AI视野今日CS.Sound 声学论文速览 Tue, 31 Oct 2023 Totally 11 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers DCHT: Deep Complex Hybrid Transformer for Speech Enhancement Authors Jialu Li, Junhui Li, Pu Wang, Youshan Zhang当前大多数基于深…

掌握 Postman Newman:快速启动 API 测试自动化

Postman 中的 Newman 是什么? Newman 是一个 CLI(命令行界面)工具,用于运行 Postman 中的集合(Collection)和环境(Environment)来进行自动化测试。它允许直接从命令行运行 Postman …

秋招复习之树

目录 前言 1 二叉树 二叉树常见术语 二叉树基本操作 初始化二叉树 插入与删除节点 常见二叉树类型 1. 完美二叉树 2. 完全二叉树 3. 完满二叉树 4. 平衡二叉树 二叉树的退化 2 二叉树遍历 层序遍历 代码实现 复杂度分析 前序、中序、后序遍历 复杂度分析 3 二叉树数组表示 表…

【面试高频算法解析】算法练习6 广度优先搜索

前言 本专栏旨在通过分类学习算法,使您能够牢固掌握不同算法的理论要点。通过策略性地练习精选的经典题目,帮助您深度理解每种算法,避免出现刷了很多算法题,还是一知半解的状态 专栏导航 二分查找回溯(Backtracking&…

开源字符识别 OCR 引擎推荐

Tesseract 开源 OCR 引擎(主存储库) github地址 https://github.com/tesseract-ocr/tesseract 官方网址 tesseract-ocr.github.io/ Tesseract 是一个开源的光学字符识别(OCR)引擎,它能够从图像文件中识别和提取文…

Protobuf 安装与使用

Protobuf 安装与使用 1 环境2 安装 [apt安装]2 安装 [源码安装]1 依赖2 下载 protobuf3 解压4 编译安装5 配置环境 2 命令查看版本卸载 3 使用书写 .proto 文件编译 .proto 文件生成 cpp 文件编写 cpp 文件编译运行 参考 1 环境 ubuntn 20.04 protobuf v3.6.1 2 安装 [apt安装…

package-info.java delete

package-info.java delete

监控oracle表空间是否超过80%

先点赞后观看&#xff0c;养成好习惯 1.监控脚本 oracle_cron.sh source /home/oracle/.bash_profile sqlplus -s / as sysdba > /tmp/tablespace.log<<EOF CLEAR COLUMNS BREAKS COMPUTES set lines 134 pages 200 COLUMN STATUS …

如何实现安卓端与苹果端互通的多种方案

随着移动设备用户的爆炸性增长&#xff0c;跨平台应用开发变得尤为重要。在Android与iOS之间实现互通对于推广应用、增加用户覆盖面和提升用户体验有至关重要的作用。以下是实现Android与iOS互通的多种方案&#xff0c;以及每种方案的实现方法、细节注意点、适合团队的规模和建…

普通BUG

IDEA包折叠 如果自动紧凑包名,则有些时候创建新包或类的时候不能达到想要的摆放层级关系,此时右上角搜索按钮搜hide middle,关掉紧凑即可,然后既可以每层一个包不折叠. 效果: 20240105println输出多个参数 int a 10;int b 20;报错println是可以输出多个参数的,但不支持直接用…

CentOS安装Redis7(Alibaba Cloud Linux兼容)

安装Redis7 下载redis的linux版本压缩包 redis-7.0.11.tar.gz 安装gcc编译环境 yum install -y gcc-c解压redis压缩包&#xff0c;并进入 [rootiZ2ze6psmhg970tbycgrbpZ ~]# tar -zxvf redis-7.0.11.tar.gz [rootiZ2ze6psmhg970tbycgrbpZ ~]# cd redis-7.0.11/查看redis源码…

WEB 3D技术 three.js 顶点旋转

我们来说说几何体顶点的旋转 官网搜索 BufferGeometry 这里 我们有 x y z 三个轴的旋转 例如 我们这样的代码 import ./style.css import * as THREE from "three"; import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js"; i…

vue+springboot项目上传部署tomcat

下载及安装Tomcat 进入tomcat官网&#xff0c;Tomcat官网 选择需要下载的版本&#xff0c;点击下载下载路径一定要记住&#xff0c;并且路径中尽量不要有中文 下载后是压缩包 .zip&#xff0c;解压后 tomcat系统各个文件夹目录是什么意义&#xff1a; bin&#xff1a;放置的是…

【MATLAB】CEEMD_LSTM神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 CEEMD-LSTM神经网络时序预测算法是一种结合了完全扩展经验模态分解&#xff08;CEEMD&#xff09;和长短期记忆神经网络&#xff08;LSTM&#xff09;的时间序列预测方法。 CEEMD是一种改…

全程云OA ajax.ashx SQL注入漏洞复现

0x01 产品简介 全程云OA为企业提供日常办公管理、公文管理、工作请示、汇报、档案、知识体系、预算控制等26个功能,超过100多个子模块。为企业内部提供高效、畅通的信息渠道,同时也能大力推动公司信息系统发展,提高企业的办公自动化程度和综合管理水平,加快企业信息的流通…

python版本控制-pyenv

前言 日常开发中&#xff0c;我喜欢开发环境比实际运行环境高一个版本。因为这似乎有助于&#xff0c;让程序不断适应高版本的运行环境。 但是&#xff0c;今天遇到一个例外 — python。我系统默认的python版本是3.9&#xff0c;但是CI上的版本是3.6。众所周知&#xff0c;py…

TikTok需要的原生IP是什么?海外独享原生IP地址如何获取?

相信很多做跨境店铺或者TikTok直播的小伙伴都听说过”原生IP”,网络上关于它的判定方法也五花八门&#xff0c;今天小编以自身跨境经验来为大家介绍原生IP是什么?有什么好处&#xff1f;如何获取&#xff0c;感兴趣请继续看下去&#xff01; 一、什么是原生IP/非原生IP? 原生…

OpenCV-16图像的基本变换

一、图像的放大与缩小 1. 对小狗图片进行缩放 使用API----resize&#xff08;src, dsize, [,dst,[fx[,fy[,interpolation]]]]&#xff09; src&#xff1a;要缩放的图像。 dsize&#xff1a;缩放之后的图像大小&#xff0c;元组和列表表示都可以。 dst&#xff1a;可选参数…