StreamX 使用手冊(cè) - 安裝部署篇

摘要:本文介紹了 StreamX 的部署安裝,內(nèi)容主要分為以下幾個(gè)部分:

  1. 系統(tǒng)架構(gòu)
  2. 部署環(huán)境要求
  3. 平臺(tái)部署
  4. 系統(tǒng)配置
  5. 開(kāi)發(fā)部署應(yīng)用
  6. 結(jié)束語(yǔ)

1. 系統(tǒng)架構(gòu)

StreamX 的初衷是讓流處理更簡(jiǎn)單, 可能你還沒(méi)遇到她, 也許第一眼就命中注定的戀愛(ài)了, 來(lái), 讓我們一塊走進(jìn) StreamX 的世界! 這會(huì)是一個(gè)系列的文章, 為你詳細(xì)講述關(guān)于 StreamX 的故事。

StreamX 總體組件棧架構(gòu)如下, 由 streamx-core 和 streamx-console 兩個(gè)大的部分組成 , streamx-console 是一個(gè)非常重要的模塊, 定位是一個(gè) 綜合實(shí)時(shí)數(shù)據(jù)平臺(tái),流式數(shù)倉(cāng)平臺(tái), 低代碼 ( Low Code ), Flink & 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ù)解決方案。

StreamX 架構(gòu)圖

2. 部署環(huán)境要求

streamx-console提供了開(kāi)箱即用的安裝包,安裝之前對(duì)環(huán)境有些要求,具體要求如下:

環(huán)境要求

StreamX的環(huán)境要求

Linux

選擇 centos 7.5

JDK


選擇1.8

Maven


選擇3.8.5

cd /opt/software 
wget https://dlcdn.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz --no-check-certificate
tar -xzvf apache-maven-3.8.5-bin.tar.gz -C /opt/module
sudo ln -s /opt/module/apache-maven-3.8.5/bin/mvn /usr/bin/mvn

Node.js


前端部分采用vue開(kāi)發(fā),需要nodejs環(huán)境,下載安裝最新的nodejs即可。

sudo yum install -y nodejs

查看nodejs版本。

node --versionv16.13.2

MySQL


選擇5.7.16

Flink


選擇 1.13.6并且需要配置FLINK_HOME環(huán)境變量:

export FLINK_HOME=/opt/module/flink-1.13.6

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

特別注意: 如果是 Hadoop 3.x 系列, 除了正常的配置外, 需要在 core-site.xml 中特別指定下以下配置:

<property>    
  <name>dfs.client.datanode-restart.timeout</name>    
  <value>30</value>
</property>

3. 平臺(tái)部署

本次基于 1.2.2 穩(wěn)定版本進(jìn)行安裝部署,如果是本地編譯部署安裝的話(huà), 請(qǐng)看下面的操作演示:

也可以直接下載發(fā)行包進(jìn)行安裝部署, 此方式也是推薦的安裝部署方式, 簡(jiǎn)單, 快捷。

cd /opt/software
wget https://github.com/streamxhub/streamx/releases/download/v1.2.2/streamx-console-service-1.2.2-bin.tar.gz
tar -zxvf streamx-console-service-1.2.2-bin.tar.gz -C /opt/module
  1. 創(chuàng)建數(shù)據(jù)庫(kù)
CREATE DATABASE `streamx` CHARACTER SET utf8 COLLATE utf8_general_ci;
  1. 初始化表
use streamx;
source /opt/module/streamx-console-service-1.2.2/script/final.sql
  1. 配置連接信息

進(jìn)入到 conf 下,修改 application.yml, 找到 datasource 這一項(xiàng),找到 mysql 的配置,修改成對(duì)應(yīng)的信息即可,如下:

datasource:
 dynamic:
   # 是否開(kāi)啟 SQL 日志輸出,生產(chǎn)環(huán)境建議關(guān)閉,有性能損耗
   p6spy: false
   hikari:
     connection-timeout: 30000
     max-lifetime: 1800000
     max-pool-size: 15
     min-idle: 5
     connection-test-query: select 1
     pool-name: HikariCP-DS-POOL
   # 配置默認(rèn)數(shù)據(jù)源
   primary: primary
   datasource:
     # 數(shù)據(jù)源-1,名稱(chēng)為 primary
     primary:
       username: $user
       password: $password
       driver-class-name: com.mysql.cj.jdbc.Driver
       url: jdbc: mysql://$host:$port/streamx?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
  1. 配置workspace

同樣進(jìn)入到 conf 下,修改 application.yml,找到 streamx 這一項(xiàng),找到 workspace 的配置,修改成一個(gè)用戶(hù)有權(quán)限的目錄。

streamx:
 # 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/streamx_workspace # 本地的一個(gè)工作空間目錄(很重要),用戶(hù)可自行更改目錄,建議單獨(dú)放到其他地方,用于存放項(xiàng)目源碼,構(gòu)建的目錄等.
   remote: hdfs:///streamx   # support hdfs:///streamx/ 、 /streamx 、hdfs://host:ip/streamx/

注意:其中,數(shù)據(jù)庫(kù)用戶(hù)名密碼及JDBC連接URL需要修改為自己數(shù)據(jù)庫(kù)的相關(guān)屬性,hadoop-user-name及workspace需要根據(jù)自己的實(shí)際情況進(jìn)行修改。其他情況可以暫時(shí)使用默認(rèn)配置。

  1. 啟動(dòng)服務(wù)

進(jìn)入到 bin 下直接執(zhí)行 startup.sh 即可啟動(dòng)項(xiàng)目,默認(rèn)端口是10000,如果沒(méi)啥意外則會(huì)啟動(dòng)成功,相關(guān)的日志會(huì)輸出到streamx-console-service-1.2.2/logs/streamx.out 里。

/opt/module/streamx-console-service-1.2.2/bin/startup.sh

啟動(dòng)成功之后使用jps可以看到如下進(jìn)程

進(jìn)程查看
  1. 瀏覽器登錄系統(tǒng)

打開(kāi)瀏覽器輸入 http://ip:10000 即可登錄系統(tǒng):

Web UI登錄界面

默認(rèn)用戶(hù)名:admin 默認(rèn)密碼:streamx

StreamX UI 主界面

4. 系統(tǒng)配置

進(jìn)入系統(tǒng)之后,第一件要做的事情就是修改系統(tǒng)配置,在菜單 StreamX/Setting 下,這里可以添加一個(gè)Flink HOME 和 Flink Cluster。

  1. 配置 Flink Cluster

StreamX 做到了靈活的支持Flink 多版本的能力, 在任務(wù)里指定一個(gè)Flink 版本即可完成, 因此需要先添加一個(gè)或多個(gè)(如果你的任務(wù)依賴(lài)多個(gè)不同版本的Flink) 部署機(jī)器上安裝的 Flink 到系統(tǒng), 操作頁(yè)面如下:


image.png

打開(kāi) Flink Home 標(biāo)簽頁(yè)直接添加即可。

配置Flink HOME
  1. 配置 Flink Cluster

StreamX 做到了 Remode (standalone) 模式的任務(wù)提交 (將Flink 任務(wù)提交到一個(gè)指定的集群), 如果有這類(lèi)部署需求,就先需要在系統(tǒng)里添加一個(gè)或多個(gè)已經(jīng)存在的 Flink standalone 集群。


image.png

5. 開(kāi)發(fā)部署應(yīng)用

千呼萬(wàn)喚始出來(lái), 以上準(zhǔn)備工作和系統(tǒng)環(huán)境設(shè)置都完成了, 到這一步, 終于可以在 streamx-console 平臺(tái)上開(kāi)發(fā)啟動(dòng)任務(wù)了, Let's go~

Flink SQL 任務(wù)

  1. 指定Flink版本

StreamX 支持 Flink 多版本(1.12+), 具體使用的時(shí)候非常簡(jiǎn)單,編輯自帶的 Flink SQL 示例任務(wù), 直接指定任務(wù)里對(duì)應(yīng)的Flink 版本即可。

編輯任務(wù)

指定任務(wù)運(yùn)行的Flink 版本

2. 指定Flink Cluster
運(yùn)行模式選擇remote

remote模式選擇之后,會(huì)出現(xiàn)Flink cluster 選項(xiàng),為必填項(xiàng), 選擇添加已有的Flink Cluster 即可:
選擇 Flink Cluster

更多使用參數(shù)可查看官網(wǎng)文檔和 Flink 參數(shù)相關(guān)說(shuō)明,以上操作都完成之后,直接點(diǎn)擊保存任務(wù)。

  1. 上線(xiàn)任務(wù)

所有的任務(wù)添加和修改之后,都必須經(jīng)過(guò)上線(xiàn)這一步。這一步內(nèi)部會(huì)做很多準(zhǔn)備工作,對(duì)于用戶(hù)來(lái)說(shuō)直接點(diǎn)擊上線(xiàn)按鈕即可完成此步驟。


上線(xiàn)任務(wù)

注意:上線(xiàn)這一步不是任務(wù)啟動(dòng),而是一個(gè)準(zhǔn)備工作的步驟,內(nèi)部會(huì)做很多工作。如: 如果是 yarn-application的模式會(huì)將相關(guān)的 jar 上傳到hdfs,如果是 on k8s 會(huì)打鏡像等...

  1. 啟動(dòng)任務(wù)

上面的步驟都完成之后,就會(huì)看到有個(gè)啟動(dòng)按鈕,點(diǎn)擊啟動(dòng)任務(wù),稍等一會(huì)就會(huì)看到任務(wù)處于運(yùn)行狀態(tài),點(diǎn)擊任務(wù)名 就會(huì)直接跳轉(zhuǎn)到Flink WebUI中。

Datastream 任務(wù):

StreamX 在開(kāi)發(fā)之初就完整的支持了 Flink SQL 任務(wù) 和 Datastream 任務(wù),關(guān)于 Datastream任務(wù),F(xiàn)link 版本的指定, Flink Cluster 的指定(如果是 remote 模式) 和上面的 Flink SQL 任務(wù)一樣,這里不做贅述

6. 結(jié)束語(yǔ)

這將是一個(gè)系列的文章,本文是第一篇,詳細(xì)介紹了 StreamX 平臺(tái)的編譯部署安裝到運(yùn)行的整個(gè)過(guò)程。每個(gè)環(huán)節(jié)圖文并茂,相信很多小伙伴已經(jīng)躍躍欲試了,快去試試吧 ~ 更多精彩的地方等你來(lái)發(fā)掘 ??

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容