使用Flink集群环境进行数据处理(下)

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 使用Flink集群环境进行数据处理(下)

各种算子简介

以单词计数为例

image.png


先要将字符串数据解析成单词和次数 使用tuple2表示
第一个字段是单词 第二个字段是次数
次数初始值设置成1

flatmap

flatmap来做解析的工作
一行数据可能有多个单词

keyBy

将数据流按照单词字段即0号索引字段做分组
keyBy(int index) 得到一个以单词为key的tuple2数据流

timeWindow

在流上指定想要的窗口
并根据窗口中的数据计算结果
每5秒聚合一次单词数
每个窗口都是从零开始统计的
timeWindow 指定想要5秒的翻滚窗口(Tumble)

sum

第三个调用为每个key每个窗口指定了sum聚合函数
按照次数字段(即1号索引字段想家)
得到结果数据流
将每5秒输出一次 这5秒内每个单词出现的次数
将数据打印到控制台
所有算子操作(创建源、聚合、打印)只是构建了内部算子操作的图形
只有在execute被调用时才会在提交到集群或本地计算机上执行


执行报错 找不到代码异常

具体异常信息

Caused by: org.apache.flink.runtime.operators.util.CorruptConfigurationException: Could not read the user code wrapper: org.apache.flink.streaming.scala.examples.remotejob.RemoteJobTest$$anon$2

解决方法

  • 将当前目录文件夹打包成jar包

image.png

使用maven插件maven-jar-plugin

  • 第三个参数指向该jar包


在FLink Web UI查看该任务的执行过程


image.png

编译异常


无效的标记

--add-exports=java.base/sun.net.util=ALL-UNNAMED

image.png

不支持hdfs文件系统

具体异常信息

org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: Could not find a file system implementation for scheme 'hdfs'. The scheme is not directly supported by Flink and no Hadoop file system to support this scheme could be loaded

处理方式

  • 下载 flink hadoop资源jar包
https://repo.maven.apache.org/maven2/org/apache/flink/flink-shaded-hadoop-2-uber/2.7.5-7.0/flink-shaded-hadoop-2-uber-2.7.5-7.0.jar
  • 放入flink 安装包 lib目录下

image.png

每个节点都需要放上该jar包 然后重启flink集群环境


当前操作节点hadoop namenode节点为standby状态

具体详细信息

org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyException): Operation category READ is not supported in state standby

解决方法

重新格式化2个namenode节点即可
具体详见

搭建大数据运行环境之二


遗留问题


flink数据源来自于socket数据

image.png

问题是

Flink并没有监听到该socket数据
暂时还没有找到原因 
了解的朋友们请联系我 
指导我一下哦

如果本地环境是可以监听到的

image.png


后记


为了解决这个问题
我请教了下 “Apache Flink China社区”钉钉群里面的谢波老师
他告诉我:
通过java或scala一般创建本地执行环境 即
'final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();'
很少有
'final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(ip,port,jarfiles);'
这样用的
若使用flink分布式环境 那么通过web ui界面 上传jar包的方式来完成

image.png


这也就解释了为什么我没有找到相关资料
只能靠自己'摸着石头过河'了


结语


在了解一件新事物的时候 
按照自己的想法 一番努力和挣扎之后
也许方向是错误的 
但也会对它更进一步的了解了


相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
3月前
|
分布式计算 Java Apache
Flink问题之本地集群报错如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
42 1
|
5月前
|
调度 流计算
为什么部署起来flink集群 没有资源 哪里有问题呢?
为什么部署起来flink集群 没有资源 哪里有问题呢?
43 0
|
7月前
|
流计算
Flink CDC程序都需要打包到flink集群去执行来保证高可用
Flink CDC程序都需要打包到flink集群去执行来保证高可用吗?
126 2
|
5月前
|
弹性计算 资源调度 Kubernetes
Flink三种集群模式,Standalone模式,Flink On YARN,Flink On K8S,这三种模式有啥优缺点,生产环境如何选择呢?
Flink三种集群模式,Standalone模式,Flink On YARN,Flink On K8S,这三种模式有啥优缺点,生产环境如何选择呢?
242 3
|
11天前
|
资源调度 监控 数据处理
【Flink】Flink集群有哪些角色?各自有什么作用?
【4月更文挑战第18天】【Flink】Flink集群有哪些角色?各自有什么作用?
|
3天前
|
机器学习/深度学习 人工智能 流计算
人工智能平台PAI 操作报错合集之在集群上提交了包含alink相关功能的flink任务,但是却报错如何解决
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
|
4月前
|
SQL Java 流计算
Flink SQL UDF(用户自定义函数)需要打包成JAR文件并上传到Flink集群中
【1月更文挑战第1天】【1月更文挑战第2篇】Flink SQL UDF(用户自定义函数)需要打包成JAR文件并上传到Flink集群中
90 0
|
2月前
|
消息中间件 Kafka 流计算
如果有多个版本的Flink CDC在同一环境中运行,可能会导致Debezium版本冲突
【2月更文挑战第30天】如果有多个版本的Flink CDC在同一环境中运行,可能会导致Debezium版本冲突
20 2
|
2月前
|
缓存 监控 Java
Flink CDC产品常见问题之flink集群jps命令报错如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
2月前
|
资源调度 Kubernetes Apache
部署Flink集群后没有资源可能有以下几个原因
【2月更文挑战第23天】 部署Flink集群后没有资源可能有以下几个原因
13 2