赞
踩
本文为Streampark的阅读笔记,旨在快速了解该项目的功能、用法等。
Streapark是 流处理极速开发框架,支持流批一体 & 湖仓一体的云原生平台,一站式流处理计算平台。
相关资料如下:
安装教程可以参考:
如果是docker下安装,可以参考博主之前写的博客:
系统管理页面似乎和我们普通的管理系统没什么区别,,主要就是做隔离和权限控制。这里不再细讲,直接贴图:
设置中心主要分为了如下几类:
分类 | 截图 |
---|---|
系统设置 | ![]() |
告警设置 | ![]() |
flink版本 | ![]() |
flink集群 | ![]() |
扩展链接 | ![]() |
yarn队列 | ![]() |
功能描述:
功能 | 子功能 | 描述 |
---|---|---|
系统设置 | maven配置 | 系统内置了maven,通过上传settings.xml到指定目录,便可以读取该文件来下载项目的依赖 |
docker环境配置 | flink on k8s时使用,需要配置目标k8s集群所使用的 Docker 容器服务的连接信息,主要用于做镜像的pull和push | |
邮箱配置 | 主要配置发送人的邮箱账号密码、告警邮箱的host/port等,因为推送告警消息需要指定具体的发送人和使用的邮件服务器 | |
k8s Ingress配置 | 配置ingress域名地址 | |
告警设置 | 配置告警组,以及接受告警的对象,支持电子邮箱、钉钉、微信、飞书 | |
flink版本 | 指的就是flink sdk解压后的路径,需要配置其路径 | |
flink集群 | 最终都是部署flink集群到某个机器、yarn或k8s,都会有一个JobManager的url | |
独立集群 | 配置flink版本、JobManager URL即可,容器安装时已经自动也安装好了 | |
yarn session集群 | 这里应该只能固定一个,写死的yarn集群。需要配置flink版本、yarn队列、还有其它的flink配置、需要export hadoop_home | |
k8s session集群 | 需要指定kube文件,使程序有权限部署指定镜像的flink session至k8s。需要配置flink版本、flink基础镜像标签、flink配置等 | |
扩展链接 | 主要就是配置外链地址,点击作业详情,可以通过传入jobid来注入进预置的地址,然后就能跳转到指定的外链,如跳转到grafana页面查看flink的指标详情等 | |
yarn队列 | 主要就是配置当前配置hadoop集群,能使用的队列名 |
Streampark模块是最核心的部分,前面的配置都为它做基础,我们来看看其界面。
分类 | 截图 |
---|---|
项目管理 | ![]() |
作业管理 | ![]() |
变量管理 | ![]() |
功能 | 子功能 | 描述 |
---|---|---|
项目管理 | 可以理解为一个小jenkis 吧,可以通过指定仓库地址、账号密码以及指定分支来构建相关的项目,打包出来的jar直接就可以在作业管理使用(备注:不知道对项目是否有要求,未确认) | |
作业管理 | Custom Code | 就是从项目管理编译打包后的文件夹里面获取打包后的jar,然后通过指定程序的参数、还有配置相关的flink参数,提交到前面创建的flink集群(或Application模式),可以理解为jar模式 |
FlinkSQL | flink sql就很容易理解了,就是写flink sql来提交作业,应该会有一个特定的主程序去执行的(备注:还没看代码),它还有一个特点,就可以通过写maven的依赖或上传jar包来对该作业添加依赖,只是不明白为什么Custom Code不给它添加依赖的jar。 |
使用docker安装,一键式部署,很容易忽略了其环境,我们看看项目里面的 DockerFile 的内容,便知道整个镜像用到了什么环境了,里面已添加注释。
# Step1. 把当前项目生成的安装包复制到基础镜像的当前目录 FROM alpine:3.16 as deps-stage COPY . / WORKDIR / RUN tar zxvf dist/apache-streampark*-*-bin.tar.gz \ && mv apache-streampark*-*-bin streampark FROM docker:dind WORKDIR /streampark COPY --from=deps-stage /streampark /streampark ENV NODE_VERSION=16.1.0 ENV NPM_VERSION=7.11.2 # Step2. 镜像安装jdk、maven、以及插件(wget、vim、bash、curl) RUN apk add openjdk8 \ && apk add maven \ && apk add wget \ && apk add vim \ && apk add bash \ && apk add curl # Step3. Export环境变量(JAVA_HOME、MAVEN_HOME) ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk ENV MAVEN_HOME=/usr/share/java/maven-3 ENV PATH $JAVA_HOME/bin:$PATH ENV PATH $MAVEN_HOME/bin:$PATH # Step4. 下载前端环境(nodejs)、kubectl命令工具并把它们复制到bin目录,直接就能使用 RUN wget "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz" \ && tar zxvf "node-v$NODE_VERSION-linux-x64.tar.gz" -C /usr/local --strip-components=1 \ && rm "node-v$NODE_VERSION-linux-x64.tar.gz" \ && ln -s /usr/local/bin/node /usr/local/bin/nodejs \ && curl -LO https://dl.k8s.io/release/v1.23.0/bin/linux/amd64/kubectl \ && install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl # Step5. 创建kube目录,主要用于存放认证config RUN mkdir -p ~/.kube EXPOSE 10000
也就是streampark的镜像,里面已经包含了jdk、nodejs、maven等环境了,就是官网的截图:
总体来说,Streampark功能是挺全的,也使用了不少的技术,它拆分之后的自我描述如下:
StreamPark
开发;StreamPark
规范了项目的配置,鼓励函数式编程,定义了最佳的编程方式;Connectors
;scala
和java
两套api
;个人使用之后,如果能在以下方面能做得更好,就很nice了:
hadoop
集群可支持多个,不要写死,指的是界面可以上传,做集群测试,但是可能要安装多一个oss
服务;flink
版本也支持多个,指的是界面可以上传sdk
,当然也可以指定链接下载解压;Prometheus
这套就更完美了,因为这已经是监控标准了;Custom Code
模式似乎不支持依赖jar的添加,一般打的包都是源码的,如果是shade打包方式,类容易出现无法加载的问题;以上是博主对Streampark
使用的初体验,难免会有一些纰漏错误之处,欢迎大家的评论与留言,谢谢大家的阅读,本文完!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。