来源:安瑞哥是码农
早早就听说了这么个玩意,也看到有些小伙伴已经用它作为自己的开发工具了。
那么基于好奇心驱使,我也决定把这个 streampark 下载下来试试,一来看看它的部署成本高不高;二来也看下它所宣称的一体化流式计算平台,是否对得起它在官网吹的牛逼。
既然自诩是一个能实现低代码,完成从配置、开发、测试、部署、监控、运维于一体的智能化平台,那我们一会就从这几个方面着手去考察和验证,它到底好不好使。
0. 准备
一般来说,任何一款新的软件,想要其能正常运行起来,必须要满足一定的环境要求,对于 streampark 来说,它需要你部署的机器要满足以下要求:
1. 必须是Linux(貌似版本不限),目前Windows 不支持;
2. JDK1.8及以上环境;
3. 只能支持 Flink1.12 以上版本;
4. 存储 streampark 的元数据,如果用MySQL的话,版本必须不低于5.6(验证过5.5,建表确实会报错);
5. 如果用 Flink on yarn 的话,必须得有 hdfs 以及 yarn 环境。
确认完上述基础环境依赖之后,接下来就是要下载 streampark。
既然是一款软件,那么第一步就是要先把它下载下来,下载地址为:https://streampark.apache.org/zh-CN/download/。
这款软件比较有意思的地方在于,人家一上来,就是2.0的版本(半天没有找到更早的版本了),难怪当我下载到它最新的2.1.1版本时还在疑惑,怎么都2.x了,还在孵化(incubating)呢,这么难产的吗。
仔细一看,原来是人家一开始把调子起高了(上来就2.0),其实这个项目,是今年年初才进入孵化阶段的,这样一来就好解释了。

为了体验最新的功能,我下载了它最新的版本2.1.1 (这里我用的普通服务器部署,网上很多文章都是基于docker的)。

这里官网会提供两个版本,其中区别就是上图所看到的,基于Scala2.11,跟Scala2.12.
怎么选?需要贴合你的开发需求,以及部署的Flink、Spark环境,这个你必须要知道,毕竟2.11跟2.12 其实差距还比较大。
1. 开始部署
虽然说部署过程比较简单,但是一些步骤还是要注意。
修改1:
需要修改配置文件,因为比较推荐你用MySQL来存储 streampark 运行过程中的元数据,所以需要修改conf目录下的 application.yml 文件。

将其中默认的 h2 改为 MySQL。
修改2:
既然改为用 MySQL 来存储元数据,那么接下来肯定要配置对应的连接信息,对吧。
于是,就要修改 config 目录下的 application-mysql.yml 文件。

注意,这里需要先在 MySQL 数据库创建strempark库,以及对应的用户,并将该库的所有权限都赋给该用户。
然后,再执行下面的建表,以及数据加载操作(官网这块没有展开说明):
先执行建表:

再执行加载基础数据:

PS: 这里需要注意的是,选择的 MySQL 版本不能太低,比如我刚开始不信邪,用的5.5,结果建表的时候,报错如下:

会存在系统设置,跟建表语句冲突的情况,后来我老老实实换成了MySQL8,就好了。
另外,一定务必记得,要把对应的MySQL8的驱动包,放到streampark 家目录的lib子目录里。

修改3:
配置完了元数据的存储位置,接下来就要确定 strempark 存储工作数据的位置了,这个存储工作数据的位置,也叫 workspace。
根据你当前服务器的配置,找一块空间比较大的,专门的数据盘,来存储你的本地数据,以及配置你的hdfs目录(如果有的话):

2. 启动服务
根据官网的提示,所有需要修改和准备的地方,都已经准备妥当,那么接下来是不是可以顺利启动服务了呢?
在启动前,需要说明一点,一般我建议你养成一个好习惯,那就是不同的服务,用不同的用户对其授权和启动,比如这个 strempark 服务,就给它一个专门的用户,比如就叫 strempark,然后把该服务相关的目录所有权赋给它:

然后,用 strempark 用户来启动服务:

但是,首次启动会报错,具体错误说需要你设置额外的 JAVA_HOME 变量。
虽然这种问题肯定不难解决,但是呢,如何优雅地搞定它,有时候是比较反映一个人的基础素养的。
比如,因为这台服务器的 JRE 本来就是一个全局变量,按理说是不需要设置额外的 JAVA_HOME 的,但既然它报错了,那咱就最好针对当前的用户,来专门设置这个变量。
具体做法是:vi /home/streampark/.bash_profile:

即时生效:

最后启动服务,才不会报错:

养成好的习惯,启动之后,瞅一眼服务运行的日志(建议创建统一、规范的日志目录),确保运行状态确实OK:

然后登录web页面地址:http://${streampark_server}:10000
3. 使用感受
(PS啊;关于页面的流式任务配置,篇幅关系,咱在下一篇文章中展开讲)
基础部署部分还算简单,一般大家应该都可以比较轻松的搞定,但是后面的流式任务配置就难说了。
对于后面流式任务的配置和部署,初次体验的感觉是:不是很好用!
一些配置步骤莫名其妙就报错了,完了还没有错误提示,只能去后台日志分析,或者干脆靠猜。
捣鼓了几个小时,终于捣鼓出了一个能跑的应用,算基本上摸清了这个玩意的大致玩法。

这里面有一些隐藏的坑,比如部署 streampark 的机器必须得是 Flink 的客户端,同时还必须是hadoop的客户端,且对应的hadoop配置中必须有yan-site.xml文件(如果你要 Flink on yarn 的话)。
否则你 Flink on yarn 的应用怎么着都部署不起来,关键你还找不到错误原因,只能靠自己的经验悟。
其次,这个使用界面各个功能如何配置,每一项该如何规范填写,官方文档几乎是一笔带过(提供的那几个视频完全是鸡肋),或者干脆不提,需要部署的人有比较强的运维、填坑水平才能磕磕碰碰把它玩起来。
当然,毕竟是初次使用,现在给它下定义好还是不好,为时尚早,待我这几天深度体验一番,再来告诉大家这玩意到底值不值得你去折腾。
咱下篇文章见...