欢迎光临散文网 会员登陆 & 注册

Flink On Zeppelin 运维实战

2022-08-16 09:35 作者:涤生大数据  | 我要投稿

    Apache Flink是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。是实时计算,实时数据仓的常用技术之一。但是Flink自带的web页面和console直接用来做开发,其任务的管理与编辑的确有点不自然。对此,进行Flink任务管理相关平台的调研。

1.Flink web工具调研

    Flink的任务管理,出现了很多新兴的管理工具,对此也做了一些此方面的调研。这里采用Flink 1.13.2 版本。对Dinky,flink-web,tair,zeppelin等进行了一些测试和对比。

   其中就页面可观性与使用规范,功能强度来说,Dinky是最好的。如果实时平台采用FLink SQL进行模块开发的话,这是一个不错的选择。Flink-web全称是flink-streaming-platform-web,在最新版本,页面做了很大的优化客观了很多,但是在Flink版本调试的时候,Flink 1.13.2 只能使用它的老版本,一下心里落差就很大。就放弃了他们的测试验证。Tair当时采用官网的Docker案例进行安装,发现安装过程中就有一堆坑,就没继续进行下去了。整体而言,Dinky是一个美观,高效,功能完整的Flink开发管理平台。

   但是,相对来说,公司已经有一套元数据管理功能模块,可以将Flink进行接入,不想再要一套Flink 的元数据。并且在Dinky与Flink的调试过程中,存在依赖jar之间的冲突。所以,最后还是将重点偏移到Zeppelin上。

   Zeppelin,支撑比较多的查询模式。环境中已经集成有HIVE,Presto,Spark-SQL,Spark等功能模块,并且可以稍加配置就可以进行Flink的支撑。在调试过程中,整体难度相对nice,所以最终还是选择了Zeppelin。

2.部署安装

2.1.版本选择

  Flink有个很大的坑点,对依赖的版本特别严重,一个冲突就完全GG,经过调试与验收。Flink 1.13.2 + zeppelin 0.10.1 可以运行。切记,另外一个版本配置是:Flink 1.11.6 + Zeppelin 0.9.0 也可以。本着高版本的想法,最后选择了Flink 1.13.2 + zeppelin 1.10.1 进行实际的验证。而Hadoop,这是使用HDP 3.0.0进行hadoop集群的提供。

2.2部署安装

  Flink 采用的本地模式安装,安装在宿主机的目录和系统中,安装步骤百度会有很多方法,这里不做描述。而对于zeppelin,属于web类应用,并且前期为了各种测试环境,防止把系统配置出错,所以采用的docker模式安装。经过N多次的测试,以下启动命令可直接使用。

用以上docker启动命令,即可启动一个zeppelin的案例。启动后,直接访问:http://${zeppelin_host_ip}:8080

3. zeppelin与flink相关配置

3.1 flink的配置

  在flink启动时候,需要设置HADOOP_CONF_DIR目录配置,并且确保hadoop命令在系统的环境变量中,确定能使用hadoop classhome 来进行信息读取。为了防止主机与docker中环境变量的设置。额外做了设置。

在flink的命令:${FLINK_HOME}/bin/flink,${FLINK_HOME}/bin/config.sh中添加环境变量设置

3.2 Zeppelin配置

zeppelin 的配置,已经映射到本地/data/zeppelin/conf,只需要改下面的配置即可。

1.开启用户验证

直接anyone的访问是不安全的。所以最开始需要启动用户验证功能。

其中默认自带了admin和user用户的配置。测试阶段,默认即可。

修改完成后,zeppelin需要登录后才能访问

2.zeppelin-site.xml

此文件是zeppelin的重点配置文件。很多配置项目均在这里配置。主要修改网络监听网断与端口即可。其他配置,自行研究。

4.Flink On Zeppelin

调试Flink在Zeppelin上的支持,其中Zeppelin在Demo中提供很多Flink的测试安装。在测试环境关联性阶段,直接使用第一个文件即可。

接下来,进行flink多个模式的调试。

4.1 Local

local 模式,会在本地启动一个flink集群,然后再启动具体的任务。

配置的话想对简单,只需要配置FLINK_HOME与flink.execution.mode=local

配置完成后,运行demo信息。第一次需要建立集群,想对较慢。

注意,此模式,需要本地启用flink集群,端口8081不能被占用。

4. 2 remote(yarn-session)

如果已经有现成flink集群,那么采用remote模式进行安装调试。其中你的集群可以是Flink的cluster模式。也可以是yarn-session模式。

补充:yarn-session模式查看url的方法:                       

1. 在启动日志中查询


2.在yarn的app日志中查询

2.zeppelin 配置

主要修改为flink的地址,需要修改三个参数:flink.execution.mode=remote,flink.execution.remote.host=实际主机地址,flink.execution.remote.port= 实际运行IP

4.3 yarn

yarn模式是Flink的Deprecated模式。会在Yarn集群中动态创建一个Flink Cluster,然后你就可以往这个Flink Session Cluster提交Flink Job。

配置参数如下:

截图如下:

4.4 Yarn-Application

Yarn App模式,是将所有的flink任务都丢到Yarn上面去运行,生产环境中,建议使用此模式进行运行。此处需要特殊说明,需要zeppelin 需要0.10.0 以上版本,Flink 需要1.11 以上版本,才能支持这个参数的配置,否者会报错,无此mode。

flink.execution.mode=yarn-application

以上方式,均可进行Zeppelin中进行关于Flink Demo 1.Flink Basics任务的调用。其他任务还有其他依赖,需要在Flink中加入依赖包。加入的依赖包与Zeppelin可能有冲突,再后续额外说明。

Yarn App模式的运行截图。

补充说明

·1.普通的Flink on Yarn 运行模式

这种模式客户端 Flink Interpreter 进程运行在 Zeppelin所在的机器这边,每个客户端对应一个Yarn上的Flink Cluster,如果Flink Interpreter进程很多,会对Zeppelin这台机器造成很大的压力。

·2 .Yarn Interpreter 模式

  Yarn Interpreter 把客户端 Flink Interpreter 进程移到了 Yarn集群,把资源压力转移到了Yarn集群,解决上上面普通Flink on Yarn 运行模式的一部分问题,这种模式会需要为每个Flink Cluster额外申请一个Yarn Container来运行这个Flink Interpreter,在资源利用方面并不是很高效。

·3. Yarn Application 模式

Yarn Application 模式彻底解决了前面2种模式的问题,把Flink interpreter 跑在了JobManager里,这样既不影响Zeppelin Server这台机器的资源压力,也不会对Yarn集群资源造成任何浪费。

参考文档:

    看完阿里树哥的文哥,想跟树哥一样做个进阶的大数据运维吗?

    涤生大数据运维课程全部基于生产标准服务器录制课程,实战使用,目前十几家中小公司买我们的运维课程拿过去直接就可以用。大数据运维课程老师阿里树哥,前百度强哥,包括我都是管理上千节点集群的人,此外课程还由腾讯,美团小伙伴合作录制。

     全网独家大数据运维实战课程, 大数据运维课程适合哪些人?

  • 1.大数据运维在职的人进阶,进一步提升拿高薪

  • 2.准备转行大数据运维的人。

  • 3.大数据开发储备学习准备去中小公司的人:既懂开发也懂运维去小公司很吃香,做管理层,大数据架构。


Flink On Zeppelin 运维实战的评论 (共 条)

分享到微博请遵守国家法律