文章都在个人博客网站:https://www.ikeguang.com/ 同步,欢迎访问。

最近看到有人在用flink sql的页面管理平台,大致看了下,尝试安装使用,比原生的flink sql界面确实好用多了,我们看下原生的,通过bin/sql-client.sh命令进入那个黑框,一只松鼠,对,就是那个界面。。。。

这个工具不是Flink官方出的,是一个国内的小伙伴写的,Github地址:

https://github.com/zhp8341/flink-streaming-platform-web

根据github上,作者的描述,flink-streaming-patform-web主要功能:

  • [1] 任务支持单流 、双流、 单流与维表等。
  • [2] 支持本地模式、yarn-per模式、STANDALONE模式 Application模式
  • [3] 支持catalog、hive。
  • [4] 支持自定义udf、连接器等,完全兼容官方连接器。
  • [5] 支持sql的在线开发,语法提示,格式化。
  • [6] 支持钉钉告警、自定义回调告警、自动拉起任务。
  • [7] 支持自定义Jar提交任务。
  • [8] 支持多版本flink版本(需要用户编译对应flink版本)。
  • [9] 支持自动、手动savepoint备份,并且从savepoint恢复任务。
  • [10] 支持批任务如:hive。
  • [11] 连接器、udf等三jar管理

是不是觉得很强大,很多同学已经摩拳擦掌想试试了。

安装

这里只介绍flink on yarn模式的安装,如果你的hadoop集群已经安装好了,大概半个小时就能好;否则,安装hadoop集群可老费事儿了。总体步骤如下:

第一步 hadoop集群

这里假设你的hadoop集群是好的,yarn是可以正常使用的,8088端口可以访问,如下:

第二步 下载flink

flink on yarn,只需要下载一个flink安装包即可使用,下载命令:

  1. http://archive.apache.org/dist/flink/flink-1.13.5/flink-1.13.5-bin-scala_2.11.tgz

解压

  1. tar -xvf flink-1.13.5-bin-scala_2.11.tgz

关键:这里问题来了,我的flink怎么识别hadoop呢,需要配置一个环境变量,编辑 /etc/profile,键入内容:

  1. export HADOOP_CONF_DIR=填你的hadoop配置文件目录,比如我的是/usr/local/hadoop2.8/etc/hadoop/conf
  2. export HADOOP_CLASSPATH=`hadoop classpath`

好了,这样一个flink on yarn的环境就搭建好了。

第三步 安装flink-streaming-patform-web

官方地址文章开头已经给出,在github找到下载地址: https://github.com/zhp8341/flink-streaming-platform-web/releases/,我下载的版本是这个。

为什么我下的是适配flink 1.14.3的,我前面安装flink1.13.5,我也是下了一堆flink,经过尝试,才发现flink1.13.5这个版本,适配flink-streaming-platform-web tagV20220625。

解压后,修改配置文件:application.properties,懂的人知道这个其实是个springboot的配置文件。

  1. #### jdbc信息
  2. server.port=9084
  3. spring.datasource.url=jdbc:mysql://192.168.1.1:3306/flink_web?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false
  4. spring.datasource.username=bigdata
  5. spring.datasource.password=bigdata

这里配置了一个数据库,需要自己新建一下,建表语句作者给出了:https://github.com/zhp8341/flink-streaming-platform-web/blob/master/docs/sql/flink_web.sql,把这段sql执行一下,在flink_web数据库建相应的一些整个系统运行需要的表。

启动web服务

  1. # bin目录下面的命令
  2. 启动 : sh deploy.sh start
  3. 停止 : sh deploy.sh stop

服务启动后,通过9084端口在浏览器访问

第四步 配置flink web平台

这一步很关键,页面上点击系统设置,进入配置页面:

这里的参数意义:

  1. Flink客户端目录:就是安装的Flink目录;
  2. Flink管理平台目录:就是下载的flink-streaming-platform-web放的目录;
  3. yarn RM http地址:就是yarn.resourcemanager.webapp.address,通常是8088端口;

经过测试,配置这3个参数即可使用。

第五步 运行demo

这里以官方demo为例,[demo1 单流kafka写入mysqld 参考](https://github.com/zhp8341/flink-streaming-platform-web/blob/master/docs/sql_demo/demo_1.md),这是一个通过flink sql消费kafka,聚合结果写入mysql的例子。

  1. 在flink_web数据建表
  1. CREATE TABLE sync_test_1 (
  2. `day_time` varchar(64) NOT NULL,
  3. `total_gmv` bigint(11) DEFAULT NULL,
  4. PRIMARY KEY (`day_time`)
  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  1. 下载依赖jar包

因为涉及到kafka和mysql,需要对应的connector依赖jar包,下图中标注出来了,放在Flink的lib目录(/var/lib/hadoop-hdfs/flink-1.13.5/lib)下面:

  1. wget https://repo1.maven.org/maven2/org/apache/flink/flink-connector-jdbc_2.11/1.13.5/flink-connector-jdbc_2.11-1.13.5.jar
  2. https://repo1.maven.org/maven2/org/apache/flink/flink-connector-kafka_2.11/1.13.5/flink-connector-kafka_2.11-1.13.5.jar

技巧:下载Flink的依赖jar包,有个地方下载很方便,地址是:

https://repo1.maven.org/maven2/org/apache/flink/

这样依赖,一切都准备好了。

在web页面新建sql流任务:

我建的一个,任务属性我是这样填写的:

sql脚本内容:

  1. create table flink_test_1 (
  2. id BIGINT,
  3. day_time VARCHAR,
  4. amnount BIGINT,
  5. proctime AS PROCTIME ()
  6. )
  7. with (
  8. 'connector' = 'kafka',
  9. 'topic' = 'flink_connector',
  10. 'properties.bootstrap.servers' = 'kafka-001:9092',
  11. 'properties.group.id' = 'flink_gp_test1',
  12. 'scan.startup.mode' = 'earliest-offset',
  13. 'format' = 'json',
  14. 'json.fail-on-missing-field' = 'false',
  15. 'json.ignore-parse-errors' = 'true'
  16. );
  17. CREATE TABLE sync_test_1 (
  18. day_time string,
  19. total_gmv bigint,
  20. PRIMARY KEY (day_time) NOT ENFORCED
  21. ) WITH (
  22. 'connector' = 'jdbc',
  23. 'url' = 'jdbc:mysql://192.168.1.1:3306/flink_web?characterEncoding=UTF-8',
  24. 'table-name' = 'sync_test_1',
  25. 'username' = 'bigdata',
  26. 'password' = 'bigdata'
  27. );
  28. INSERT INTO sync_test_1
  29. SELECT day_time,SUM(amnount) AS total_gmv
  30. FROM flink_test_1
  31. GROUP BY day_time;

创建好任务后,启动任务吧。

启动后,可以在yarn的8088端口页面看到起了一个application,名称是新建任务填写的名称加flink@前缀:

这个任务,我们点进去看,通过管理平台提交的sql任务确实跑起来了,这个页面了解Flink的同学就很熟悉了:

其实,这段sql脚本,我们可以在flink的bin/sql-client.sh进入的那个小松鼠的黑框里面执行的,你们可以试一下。

kafka控制台往主题里面写数据,主题不存在会自动创建:

我们再看看mysql里面:

数据已经进来了。

与Flink SQL的比较

我们可以看到,flink-streaming-platform-web这个工具只是让我们不需要在这个黑框里面写sql了,而是在网页上面写sql,系统会把写的sql进行校验给flink去执行,不管是flink-streaming-platform-web网页也好,还是那个黑框sql控制台,都是客户端,本质上都是flink提供的一些table api去执行任务。

Flink SQL管理平台flink-streaming-platform-web安装搭建的更多相关文章

  1. 从零构建Flink SQL计算平台 - 1平台搭建

    一.理想与现实 Apache Flink 是一个分布式流批一体化的开源平台.Flink 的核心是一个提供数据分发.通信以及自动容错的流计算引擎.Flink 在流计算之上构建批处理,并且原生的支持迭代计 ...

  2. 【青橙商城-管理后台开发】3. web模块搭建

    [青橙商城-管理后台开发]3. web模块搭建 1.创建qingcheng_web_manager模块 pom.xml <?xml version="1.0" encodin ...

  3. Dubbo-Admin管理平台和Zookeeper注册中心的搭建(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubb ...

  4. Dubbo-Admin管理平台和Zookeeper注册中心的搭建(只支持jdk7)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubb ...

  5. Dubbo学习总结(3)——Dubbo-Admin管理平台和Zookeeper注册中心的搭建

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...

  6. 8、Flink Table API & Flink Sql API

    一.概述 上图是flink的分层模型,Table API 和 SQL 处于最顶端,是 Flink 提供的高级 API 操作.Flink SQL 是 Flink 实时计算为简化计算模型,降低用户使用实时 ...

  7. [源码分析] 带你梳理 Flink SQL / Table API内部执行流程

    [源码分析] 带你梳理 Flink SQL / Table API内部执行流程 目录 [源码分析] 带你梳理 Flink SQL / Table API内部执行流程 0x00 摘要 0x01 Apac ...

  8. Flink SQL项目实录

    一.Flink SQL层级 为Flink最高层的API,易于使用,所以应用更加广泛,eg. ETL.统计分析.实时报表.实时风控等. Flink SQL所处的层级: 二.Flink聚合: 1.Wind ...

  9. kvm虚拟化管理平台WebVirtMgr部署-完整记录(1)

    公司机房有一台2U的服务器(64G内存,32核),由于近期新增业务比较多,测试机也要新增,服务器资源十分有限.所以打算在这台2U服务器上部署kvm虚拟化,虚出多台VM出来,以应对新的测试需求.当KVM ...

  10. (转)Centos下,Docker部署Yapi接口管理平台

    接口测试的工具很多,公司引进了接口管理平台Yapi,自己尝试直接搭建,从安装Nodejs到配置MongoDB数据库,再到安装yapi的时候,遇到浏览器打开本地服务器Ip地址后,没有显示部署内容...没 ...

随机推荐

  1. Elasticsearch 快照生命周期管理 (SLM) 实战指南

    文章转载自:https://mp.weixin.qq.com/s/PSfgPJc4dKN2pOZd0Y02wA 1.Elasticsearch 保证高可用性的方式 Elasticsearch 保证集群 ...

  2. 使用Elasticsearch中的copy_to来提高搜索效率

    在今天的这个教程中,我们来着重讲解一下如何使用Elasticsearch中的copy来提高搜索的效率.比如在我们的搜索中,经常我们会遇到如下的文档: { "user" : &quo ...

  3. docker方式安装Redash

    之前使用的项目GitHub地址是https://github.com/dazdata/redash.git,这个是直接复制国外的项目的,地址:https://github.com/getredash/ ...

  4. kubernetes(k8s)命令大全

    状态查询 # 查看集群信息 # kubectl cluster-info Kubernetes control plane is running at https://127.0.0.1:8443 K ...

  5. MySQL学习(4)---MySQL索引

    ps:没有特殊说明,此随笔中默认采用innoDB存储引擎中的索引,且索引都是指B+树(多路平衡搜索树)结构组织的索引.其中聚集索引.复合索引.前缀索引.唯一索引默认都是使用B+树,统称为索引. 索引概 ...

  6. 在 WPF 中实现融合效果

    1. 融合效果 融合效果是指对两个接近的元素进行高斯模糊后再提高对比度,使它们看上去"粘"在一起.在之前的一篇文章中,我使用 Win2D 实现了融合效果,效果如下: 不过 Win2 ...

  7. 驱动开发:内核R3与R0内存映射拷贝

    在上一篇博文<驱动开发:内核通过PEB得到进程参数>中我们通过使用KeStackAttachProcess附加进程的方式得到了该进程的PEB结构信息,本篇文章同样需要使用进程附加功能,但这 ...

  8. Go_gin权限验证

    权限管理 Casbin是用于Golang项目的功能强大且高效的开源访问控制库. 1. 特征 Casbin的作用: 以经典{subject, object, action}形式或您定义的自定义形式实施策 ...

  9. window安装MySQL 5.5教程

    window安装MySQL 5.5教程 1.官网下载MySQL 5.5 下载地址:https://dev.mysql.com/downloads/mysql/5.5.html#downloads 2. ...

  10. 15. MongoDB系列之选择片键

    1. 片键类型 1.1 升序片键 升序片键通常类似于date或ObjectId--随着时间稳步增长的字段. 这种模式通常会使MongoDB更难保持块的平衡,因为所有的块都是由一个分片创建的. 1.2 ...