1)框架介紹與引入
1.1.?? 什么是 StreamPark
1.2.?? Features
1.3.????? 組成部分
StreamPark
核心由 streampark-core
和 streampark-console
組成
1.4.引入 StreamPark
之前我們寫(xiě) Flink SQL 基本上都是使用 Java 包裝 SQL,打 jar 包,提交到服務(wù)器上。通過(guò)命令行方式提交代碼,但這種方式始終不友好,流程繁瑣,開(kāi)發(fā)和運(yùn)維成本太大。我們希望能夠進(jìn)一步簡(jiǎn)化流程,將 Flink TableEnvironment 抽象出來(lái),有平臺(tái)負(fù)責(zé)初始化、打包運(yùn)行 Flink 任務(wù),實(shí)現(xiàn) Flink 應(yīng)用程序的構(gòu)建、測(cè)試和部署自動(dòng)化。StreamPark 對(duì) Flink 的支持比較完善且強(qiáng)大。
2)安裝部署
StreamPark
總體組件棧架構(gòu)如下, 由 streampark-core
和 streampark-console
兩個(gè)大的部分組成 , streampark-console
是一個(gè)非常重要的模塊, 定位是一個(gè)綜合實(shí)時(shí)數(shù)據(jù)平臺(tái),流式數(shù)倉(cāng)平臺(tái), 低代碼 ( Low Code ),F(xiàn)link & Spark 任務(wù)托管平臺(tái),可以較好的管理 Flink
任務(wù),集成了項(xiàng)目編譯、發(fā)布、參數(shù)配置、啟動(dòng)、savepoint,火焰圖 ( flame graph ),F(xiàn)link SQL,監(jiān)控等諸多功能于一體,大大簡(jiǎn)化了 Flink
任務(wù)的日常操作和維護(hù),融合了諸多最佳實(shí)踐。其最終目標(biāo)是打造成一個(gè)實(shí)時(shí)數(shù)倉(cāng),流批一體的一站式大數(shù)據(jù)解決方案
2.1.環(huán)境要求
streampark-console 提供了開(kāi)箱即用的安裝包,安裝之前對(duì)環(huán)境有些要求,具體要求如下:
目前 StreamPark 對(duì) Flink 的任務(wù)發(fā)布,同時(shí)支持 Flink on YARN
和 Flink on Kubernetes
兩種模式。
2.2.Hadoop
使用 Flink on YARN
,需要部署的集群安裝并配置 Hadoop
的相關(guān)環(huán)境變量,如你是基于CDH
安裝的 hadoop
環(huán)境, 相關(guān)環(huán)境變量可以參考如下配置:
export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop #hadoop 安裝目錄
export HADOOP_CONF_DIR=/etc/hadoop/conf
export HIVE_HOME=$HADOOP_HOME/../hive
export HBASE_HOME=$HADOOP_HOME/../hbase
export HADOOP_HDFS_HOME=$HADOOP_HOME/../hadoop-hdfs
export HADOOP_MAPRED_HOME=$HADOOP_HOME/../hadoop-mapreduce
export HADOOP_YARN_HOME=$HADOOP_HOME/../hadoop-yarn
2.3.Kubernetes
使用 Flink on Kubernetes
,需要額外部署/或使用已經(jīng)存在的 Kubernetes
集群,請(qǐng)參考條目: StreamPark Flink-K8s 集成支持。
2.4.安裝
1、下載 streampark 安裝包,解包后安裝目錄如下
.
streampark-console-service-1.2.1
├── bin
│ ├── startup.sh //啟動(dòng)腳本
│ ├── setclasspath.sh //java 環(huán)境變量相關(guān)的腳本 ( 內(nèi)部使用,用戶無(wú)需關(guān)注 )
│ ├── shutdown.sh //停止腳本
│ ├── yaml.sh //內(nèi)部使用解析 yaml 參數(shù)的腳本 ( 內(nèi)部使用,用戶無(wú)需關(guān)注 )
├── conf
│ ├── application.yaml //項(xiàng)目的配置文件 ( 注意不要改動(dòng)名稱 )
│ ├── flink-application.template //flink 配置模板 ( 內(nèi)部使用,用戶無(wú)需關(guān)注 )
│ ├── logback-spring.xml //logback
│ └── ...
├── lib
│ └── *.jar //項(xiàng)目的 jar 包
├── client
│ └── streampark-flink-sqlclient-1.0.0.jar //Flink SQl 提交相關(guān)功能 ( 內(nèi)部使用,用戶無(wú)需關(guān)注 )
├── script
│ ├── schema
│ │ ├── mysql-schema.sql // mysql的ddl建表sql
│ │ └── pgsql-schema.sql // pgsql的ddl建表sql
│ ├── data
│ │ ├── mysql-data.sql // mysql的完整初始化數(shù)據(jù)
│ │ └── pgsql-data.sql // pgsql的完整初始化數(shù)據(jù)
│ ├── upgrade
│ │ ├── 1.2.3.sql //升級(jí)到 1.2.3版本需要執(zhí)行的升級(jí)sql
│ │ └── 2.0.0.sql //升級(jí)到 2.0.0版本需要執(zhí)行的升級(jí)sql
│ │ ...
├── logs //程序 log 目錄
├── temp //內(nèi)部使用到的臨時(shí)路徑,不要?jiǎng)h除
2、初始化表結(jié)構(gòu)
目前支持 mysql、pgsql、h2(默認(rèn),不需要執(zhí)行任何操作),sql 腳本目錄如下:
├── script
│ ├── schema
│ │ ├── mysql-schema.sql // mysql的ddl建表sql
│ │ └── pgsql-schema.sql // pgsql的ddl建表sql
│ ├── data
│ │ ├── mysql-data.sql // mysql的完整初始化數(shù)據(jù)
│ │ └── pgsql-data.sql // pgsql的完整初始化數(shù)據(jù)
│ ├── upgrade
│ │ ├── 1.2.3.sql //升級(jí)到 1.2.3版本需要執(zhí)行的升級(jí)sql
│ │ └── 2.0.0.sql //升級(jí)到 2.0.0版本需要執(zhí)行的升級(jí)sql
如果是初次安裝,需要連接對(duì)應(yīng)的數(shù)據(jù)庫(kù)客戶端依次執(zhí)行 schema
和 data
目錄下對(duì)應(yīng)數(shù)據(jù)庫(kù)的腳本文件即可,如果是升級(jí),則執(zhí)行對(duì)應(yīng)的版本號(hào)的sql即可。
3、修改配置
安裝解包已完成,接下來(lái)準(zhǔn)備數(shù)據(jù)相關(guān)的工作
- 修改連接信息
進(jìn)入到 conf
下,修改 conf/application.yml
,找到 spring 這一項(xiàng),找到 profiles.active 的配置,修改成對(duì)應(yīng)的信息即可,如下:
spring:
profiles.active: mysql #[h2,pgsql,mysql]
application.name: StreamPark
devtools.restart.enabled: false
mvc.pathmatch.matching-strategy: ant_path_matcher
servlet:
multipart:
enabled: true
max-file-size: 500MB
max-request-size: 500MB
aop.proxy-target-class: true
messages.encoding: utf-8
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
main:
allow-circular-references: true
banner-mode: off
在修改完 conf/application.yml
后, 還需要修改 config/application-mysql.yml
中的數(shù)據(jù)庫(kù)連接信息:
Tips: 由于Apache 2.0許可與Mysql Jdbc驅(qū)動(dòng)許可的不兼容,用戶需要自行下載驅(qū)動(dòng)jar包并放在 $STREAMPARK_HOME/lib 中,推薦使用8.x版本,下載地址 apache maven repository
spring:
datasource:
username: root
password: xxxx
driver-class-name: com.mysql.cj.jdbc.Driver # 請(qǐng)根據(jù)mysql-connector-java版本確定具體的路徑,例如:使用5.x則此處的驅(qū)動(dòng)名稱應(yīng)該是:com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/streampark?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
- 修改workspace
進(jìn)入到 conf
下,修改 conf/application.yml
,找到 streampark 這一項(xiàng),找到 workspace 的配置,修改成一個(gè)用戶有權(quán)限的目錄
streampark:
# HADOOP_USER_NAME 如果是on yarn模式( yarn-prejob | yarn-application | yarn-session)則需要配置 hadoop-user-name
hadoop-user-name: hdfs
# 本地的工作空間,用于存放項(xiàng)目源碼,構(gòu)建的目錄等.
workspace:
local: /opt/streampark_workspace # 本地的一個(gè)工作空間目錄(很重要),用戶可自行更改目錄,建議單獨(dú)放到其他地方,用于存放項(xiàng)目源碼,構(gòu)建的目錄等.
remote: hdfs:///streampark # support hdfs:///streampark/ 、 /streampark 、hdfs://host:ip/streampark/
2.5.啟動(dòng)
進(jìn)入到 bin 下直接執(zhí)行 startup.sh 即可啟動(dòng)項(xiàng)目,默認(rèn)端口是10000,如果沒(méi)啥意外則會(huì)啟動(dòng)成功,打開(kāi)瀏覽器 輸入http://$host:10000
即可登錄
cd streampark-console-service-1.0.0/bin
bash startup.sh
相關(guān)的日志會(huì)輸出到 streampark-console-service-1.0.0/logs/streampark.out 里
2.6.系統(tǒng)登錄
經(jīng)過(guò)以上步驟,即可部署完成,可以直接登錄系統(tǒng)
提示:
默認(rèn)密碼: admin / streampark
2.7.系統(tǒng)配置
進(jìn)入系統(tǒng)之后,第一件要做的事情就是修改系統(tǒng)配置,在菜單**/StreamPark/Setting** 下,操作界面如下:
主要配置項(xiàng)分為以下幾類:
System Setting
Alert Setting
Flink Home
Flink Cluster
2.7.1.System Setting
當(dāng)前系統(tǒng)配置包括:
-
Maven配置
-
Docker環(huán)境配置
-
警告郵箱配置
-
k8s Ingress 配置
2.7.2.Alert Setting
Alert Email 相關(guān)的配置是配置發(fā)送者郵件的信息,具體配置請(qǐng)查閱相關(guān)郵箱資料和文檔進(jìn)行配置
2.7.3.Flink Home
這里配置全局的 Flink Home,此處是系統(tǒng)唯一指定 Flink 環(huán)境的地方,會(huì)作用于所有的作業(yè)
提示:
特別提示: 最低支持的 Flink 版本為 1.12.0, 之后的版本都支持
2.7.4.Flink Cluster
Flink 當(dāng)前支持的集群模式包括:
-
Standalone 集群
-
Yarn 集群
-
Kubernetes 集群文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-784919.html
3)StreamPark 使用
詳細(xì)使用請(qǐng)參考 StreamPark 中文官網(wǎng)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-784919.html
到了這里,關(guān)于【Apache-StreamPark】Flink 開(kāi)發(fā)利器 StreamPark 的介紹、安裝、使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!