1. 介绍

make stream processing easier~

一个神奇的框架,让流处理更简单

1.1 概念

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

1.2 特性

  • Apache Flink & Apache Spark 应用程序开发脚手架
  • 支持多个版本的 Flink & Spark
  • 一系列开箱即用的connectors
  • 一站式流处理运营平台
  • 支持catalog、olap、streaming-warehouse等

1.3 组成部分

Apache StreamPark 核心由streampark-corestreampark-console 组成

StreamPark Archite

  • streampark-core

streampark-core 定位是一个开发时框架,关注编码开发,规范了配置文件,按照约定优于配置的方式进行开发,提供了一个开发时 RunTime Content和一系列开箱即用的Connector,扩展了DataStream相关的方法,融合了DataStreamFlink sql api,简化繁琐的操作,聚焦业务本身,提高开发效率和开发体验

  • streampark-console

streampark-console 是一个综合实时数据平台,低代码(Low Code)平台,可以较好的管理Flink任务,集成了项目编译、发布、参数配置、启动、savepoint,火焰图(flame graph),Flink SQL, 监控等诸多功能于一体, 大大简化了 Flink 任务的日常操作和维护,融合了诸多最佳实践。旧时王谢堂前燕,飞入寻常百姓家,让大公司有能力研发使用的项目,现在人人可以使用, 其最终目标是打造成一个实时数仓,流批一体的一站式大数据解决方案,该平台使用但不仅限以下技术:

2. 安装(物理机部署-不配置数据源)

2.1 目前软硬件环境

linux的版本:3.10.0-693.el7.x86_64

软件要求:

机器 ip java mysql hadoop2.7.2 flink1.14.3 Streampark
hadoop101 192.168.100.200 1.8.0_144 5.6.24 nm、nn、dn、JobHistoryServer standaloneSessionCluster StreamParkConsoleBootstrap
hadoop102 192.168.100.201 1.8.0_144 / dn、rm、nm taskManagerRunner
hadoop103 192.168.100.202 1.8.0_144 / dn、nm、sn taskManagerRunner

主要组件依赖关系:

2_main_components_dep

StreamPark是单机版本,hadoop101-hadoop103部署了flink集群

2.2 下载Apache StreamPark

1
2
3
4
5
wget https://dlcdn.apache.org/incubator/streampark/2.0.0/apache-streampark_2.12-2.0.0-incubating-bin.tar.gz
tar -zxvf apache-streampark_2.12-2.0.0-incubating-bin.tar.gz
mv apache-streampark_2.12-2.0.0-incubating-bin /opt/module
cd /opt/module
mv apache-streampark_2.12-2.0.0-incubating-bin streampark

2.3 初始化系统数据

streamlib配置mysql的连接器jar包

1
2
3
4
cd /opt/module/streampark/srcipts/schema/
source mysql-schema.sql
cd /opt/module/streampark/srcipts/data/
source mysql-data.sql

2.4 配置Apache StreamPark

1
2
3
4
5
6
7
8
9
10
vi /opt/module/streampark/conf/application.yml
vi /opt/module/streampark/conf/application-mysql.yml

# application-mysql.yml配置
spring:
datasource:
username: "root"
password: "000000"
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.100.200:3306/streampark?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT

2.5 启动Apache Streampark

1
./opt/module/streampark/bin/startup.sh

3. 快速上手

1_config_flink_home

2_add_flink_home_info

点击”OK”,保存

3_display_flink_home_config

根据flink 部署模式 以及 资源管理方式,StreamPark 支持以下6种作业模式

  • Standalone Session
  • Yarn Session
  • Yarn Per-job
  • Yarn Application
  • K8s Session
  • K8s Application

本次选取较为简单的 Standalone Session 模式(下图绿色连线),快速上手。

4_flink_deployment_execute_model

  • 服务器启动 flink Standalone Session
1
start-cluster.sh

5_start_flink_standalone_session_service

6_flink_standalone_session_web_ui

  • 配置Flink Cluster

7_config_flink_cluster_menu.png

8_add_flink_cluster_info.png

9_add_flink_cluster_successfully

10_display_flink_cluster_list

3.3 创建作业

11_add_flink_job_menu

13_add_flink_job_param_2

1
2
3
4
5
6
7
8
9
10
11
12
13
drop table if exists StreamSourceTable;
drop table if exists StreamSinkTable;
CREATE TABLE StreamSourceTable (
content STRING
) WITH (
'connector'='datagen'
);
CREATE TABLE StreamSinkTable (
content STRING
) WITH (
'connector'='blackhole'
);
INSERT INTO StreamSinkTable SELECT content FROM StreamSourceTable;

3.4 构建作业

点击 蓝色“Submit”按钮,提交作业

15_save_flink_job

16_display_flink_job_list

3.5 启动作业

19_start_flink_job

3.6 查询作业状态

  • 查看StreamPark dashboard

23_flink_job_dashboard

查看作业详情

24_display_flink_job_details

25_display_flink_job_details_page

  • 查看flink web ui

26_display_native_flink_job_web_ui

27_display_native_flink_job_web_ui_2

28_streampark_process_workflow

3.8 系统设置

菜单模块

flink部署模式

设置作业参数

告警策略

cp/sp

作业状态

作业详情

如何与第三方系统集成


本站由 卡卡龙 使用 Stellar 1.29.1主题创建

本站访问量 次. 本文阅读量 次.