StreamX 使用手册 - 安装部署篇

摘要:本文介绍了 StreamX 的部署安装,内容主要分为以下几个部分:

  1. 系统架构
  2. 部署环境要求
  3. 平台部署
  4. 系统配置
  5. 开发部署应用
  6. 结束语

1. 系统架构

StreamX 的初衷是让流处理更简单, 可能你还没遇到她, 也许第一眼就命中注定的恋爱了, 来, 让我们一块走进 StreamX 的世界! 这会是一个系列的文章, 为你详细讲述关于 StreamX 的故事。

StreamX 总体组件栈架构如下, 由 streamx-core 和 streamx-console 两个大的部分组成 , streamx-console 是一个非常重要的模块, 定位是一个 综合实时数据平台,流式数仓平台, 低代码 ( Low Code ), Flink & Spark 任务托管平台,可以较好的管理 Flink 任务,集成了项目编译、发布、参数配置、启动、savepoint ,火焰图 ( flame graph ),Flink SQL,监控等诸多功能于一体,大大简化了 Flink 任务的日常操作和维护,融合了诸多最佳实践。其最终目标是打造成一个实时数仓,流批一体的一站式大数据解决方案。

StreamX 架构图

2. 部署环境要求

streamx-console提供了开箱即用的安装包,安装之前对环境有些要求,具体要求如下:

环境要求

StreamX的环境要求

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开发,需要nodejs环境,下载安装最新的nodejs即可。

sudo yum install -y nodejs

查看nodejs版本。

node --versionv16.13.2

MySQL


选择5.7.16

Flink


选择 1.13.6并且需要配置FLINK_HOME环境变量:

export FLINK_HOME=/opt/module/flink-1.13.6

Hadoop

这里使用的是 Flink on Yarn, 需要部署的集群安装并配置 Hadoop的相关环境变量,如你是基于 CDH 安装的 Hadoop 环境,相关环境变量可以参考如下配置:

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. 平台部署

本次基于 1.2.2 稳定版本进行安装部署,如果是本地编译部署安装的话, 请看下面的操作演示:

也可以直接下载发行包进行安装部署, 此方式也是推荐的安装部署方式, 简单, 快捷。

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. 创建数据库
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. 配置连接信息

进入到 conf 下,修改 application.yml, 找到 datasource 这一项,找到 mysql 的配置,修改成对应的信息即可,如下:

datasource:
 dynamic:
   # 是否开启 SQL 日志输出,生产环境建议关闭,有性能损耗
   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
   # 配置默认数据源
   primary: primary
   datasource:
     # 数据源-1,名称为 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

同样进入到 conf 下,修改 application.yml,找到 streamx 这一项,找到 workspace 的配置,修改成一个用户有权限的目录。

streamx:
 # HADOOP_USER_NAME 如果是on yarn模式( yarn-prejob | yarn-application | yarn-session)则需要配置 hadoop-user-name
 hadoop-user-name: hdfs
 # 本地的工作空间,用于存放项目源码,构建的目录等.
 workspace:
   local: /opt/streamx_workspace # 本地的一个工作空间目录(很重要),用户可自行更改目录,建议单独放到其他地方,用于存放项目源码,构建的目录等.
   remote: hdfs:///streamx   # support hdfs:///streamx/ 、 /streamx 、hdfs://host:ip/streamx/

注意:其中,数据库用户名密码及JDBC连接URL需要修改为自己数据库的相关属性,hadoop-user-name及workspace需要根据自己的实际情况进行修改。其他情况可以暂时使用默认配置。

  1. 启动服务

进入到 bin 下直接执行 startup.sh 即可启动项目,默认端口是10000,如果没啥意外则会启动成功,相关的日志会输出到streamx-console-service-1.2.2/logs/streamx.out 里。

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

启动成功之后使用jps可以看到如下进程

进程查看
  1. 浏览器登录系统

打开浏览器输入 http://ip:10000 即可登录系统:

Web UI登录界面

默认用户名:admin 默认密码:streamx

StreamX UI 主界面

4. 系统配置

进入系统之后,第一件要做的事情就是修改系统配置,在菜单 StreamX/Setting 下,这里可以添加一个Flink HOME 和 Flink Cluster。

  1. 配置 Flink Cluster

StreamX 做到了灵活的支持Flink 多版本的能力, 在任务里指定一个Flink 版本即可完成, 因此需要先添加一个或多个(如果你的任务依赖多个不同版本的Flink) 部署机器上安装的 Flink 到系统, 操作页面如下:


image.png

打开 Flink Home 标签页直接添加即可。

配置Flink HOME
  1. 配置 Flink Cluster

StreamX 做到了 Remode (standalone) 模式的任务提交 (将Flink 任务提交到一个指定的集群), 如果有这类部署需求,就先需要在系统里添加一个或多个已经存在的 Flink standalone 集群。


image.png

5. 开发部署应用

千呼万唤始出来, 以上准备工作和系统环境设置都完成了, 到这一步, 终于可以在 streamx-console 平台上开发启动任务了, Let's go~

Flink SQL 任务

  1. 指定Flink版本

StreamX 支持 Flink 多版本(1.12+), 具体使用的时候非常简单,编辑自带的 Flink SQL 示例任务, 直接指定任务里对应的Flink 版本即可。

编辑任务

指定任务运行的Flink 版本

2. 指定Flink Cluster
运行模式选择remote

remote模式选择之后,会出现Flink cluster 选项,为必填项, 选择添加已有的Flink Cluster 即可:
选择 Flink Cluster

更多使用参数可查看官网文档和 Flink 参数相关说明,以上操作都完成之后,直接点击保存任务。

  1. 上线任务

所有的任务添加和修改之后,都必须经过上线这一步。这一步内部会做很多准备工作,对于用户来说直接点击上线按钮即可完成此步骤。


上线任务

注意:上线这一步不是任务启动,而是一个准备工作的步骤,内部会做很多工作。如: 如果是 yarn-application的模式会将相关的 jar 上传到hdfs,如果是 on k8s 会打镜像等...

  1. 启动任务

上面的步骤都完成之后,就会看到有个启动按钮,点击启动任务,稍等一会就会看到任务处于运行状态,点击任务名 就会直接跳转到Flink WebUI中。

Datastream 任务:

StreamX 在开发之初就完整的支持了 Flink SQL 任务 和 Datastream 任务,关于 Datastream任务,Flink 版本的指定, Flink Cluster 的指定(如果是 remote 模式) 和上面的 Flink SQL 任务一样,这里不做赘述

6. 结束语

这将是一个系列的文章,本文是第一篇,详细介绍了 StreamX 平台的编译部署安装到运行的整个过程。每个环节图文并茂,相信很多小伙伴已经跃跃欲试了,快去试试吧 ~ 更多精彩的地方等你来发掘 😁

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容