Flink StreamingFileSink写入hdfs,文件一直处于inprogress
项目场景:Flink StreamingFileSink写入hdfs,文件一直处于inprogress
使用StreamingFileSink写入hdfs时,文件一直处于inprogress,导致下游无法使用
问题描述
关键代码
//sinkpublic static StreamingFileSink<String> getHdfsSinkWithFile(String path) {return StreamingFileSink.forRowFormat(new Path(path), new SimpleStringEncoder<String>(Constants.CHARSET_NAME)).withRollingPolicy(DefaultRollingPolicy.builder().withRolloverInterval(TimeUnit.MINUTES.toMinutes(5)).withInactivityInterval(TimeUnit.MINUTES.toMinutes(1)).withMaxPartSize(1024 * 1024 * 128).build()).withBucketAssigner(new DateTimeBucketAssigner<>("yyyy-MM-dd--HH",ZoneId.of("Asia/Shanghai"))).build();}//job...eventStream.addSink(getKafkaProducer(readValue("kafka.event.topic"))).setParallelism(12);env.execute("DataTohdfsJob");
原因分析:
- 写入文件已存在
- 没有checkpoint或checkpoint失败
- 并行度过大
解决方案:
由于我这是测试环境,我就直接把hdfs写入目录删除了,正式环境慎重考虑
关于checkpoint,官方文档特别指出StreamingFileSink需要做checkpoint,否则就会一直处于inprogress,所以需要开启checkpoint
官方文档: 传送门env的全局并行度需要设为与running的subtasks数一致
kafka source并行度与kafka的partition数保持一致设置的为10,但由于kakfa存在数据倾斜问题,只有三个partition有数据,导致存在七个finish 的 subtask ,影响 checkpoint ,checkpoint 不成功。
修改并行度后成功解决问题
问题二、
解决inprogress后,发现存在很多小文件,导致hadoop集群压力大,namenode查询速度慢
解决方案
主要是由checkpoint间隔太短造成的,试着将checkpoint间隔调大些
总结
文件一直处于inprogress归根结底就是checkpoint不成功。
使用StreamingFileSink 时需要启用 Checkpoint ,每次做 Checkpoint 时写入完成后,桶中临时文件转成正式文件。如果 Checkpoint 被禁用,部分文件(part file)将永远处于 ‘in-progress’ 或 ‘pending’ 状态,下游系统无法安全地读取。
Flink StreamingFileSink写入hdfs,文件一直处于inprogress相关推荐
- python读写hdfs文件的实用解决方案
大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.现 ...
- springboot和flink 大数据实时写入hdfs
一:flink 官网API: https://nightlies.apache.org/flink/flink-docs-release-1.13/zh/docs/connectors/datastr ...
- 【Hadoop】HDFS文件写入与文件读取过程
HDFS文件写入与文件读取过程 1. 文件读取过程 2. 文件写入过程 1. 文件读取过程 详细过程: 客户端通过调用FileSystem对象的open()来读取希望打开的文件. Client向Nam ...
- hdfs文件写入kafka集群
1. 场景描述 因新增Kafka集群,需要将hdfs文件写入到新增的Kafka集群中,后来发现文件不多,就直接下载文件到本地,通过Main函数写入了,假如需要部署到服务器上执行,需将文件读取这块稍做修 ...
- flink读取不到文件_日处理数据量超10亿:友信金服基于Flink构建实时用户画像系统的实践...
简介: 友信金服公司推行全域的数据体系战略,通过打通和整合集团各个业务线数据,利用大数据.人工智能等技术构建统一的数据资产,如 ID-Mapping.用户标签等.友信金服用户画像项目正是以此为背景成立 ...
- HDFS文件读写流程
1.HDFS文件读取流程: 2.HDFS写入文件流程 转载于:https://www.cnblogs.com/shijiaoyun/p/5790344.html
- hdfs mv命令_大数据入门:HDFS文件管理系统简介
Hadoop作为大数据主流的基础架构选择,至今仍然占据着重要的地位,而基于Hadoop的分布式文件系统HDFS,也在大数据存储环节发挥着重要的支撑作用.今天的大数据入门分享,我们就主要来讲讲HDFS分 ...
- Hive数据分析——Spark是一种基于rdd(弹性数据集)的内存分布式并行处理框架,比于Hadoop将大量的中间结果写入HDFS,Spark避免了中间结果的持久化...
转自:http://blog.csdn.net/wh_springer/article/details/51842496 近十年来,随着Hadoop生态系统的不断完善,Hadoop早已成为大数据事实上 ...
- 《深入理解大数据:大数据处理与编程实践》一一3.3 HDFS文件存储组织与读写...
本节书摘来自华章计算机<深入理解大数据:大数据处理与编程实践>一书中的第3章,第3.3节,作者 主 编:黄宜华(南京大学)副主编:苗凯翔(英特尔公司),更多章节内容可以访问云栖社区&quo ...
- python读取HDFS文件
2019独角兽企业重金招聘Python工程师标准>>> ###方法一:使用hdfs库读取HDFS文件 ###在读取数据时,要加上 encoding='utf-8',否则字符串前面会有 ...
最新文章
- windows下cipher和efsdump工具的初步使用
- ITK:从图像区域中随机选择像素而不进行替换
- 如何调试SAP CRM产品主数据应用后台ABAP端抛出的错误消息
- C# 系统环境变量读取
- ZREVRANK key member
- python多进程间通信
- AJAX - 浏览器支持
- hadoop 查看集群的网页监控状态
- C++与QT学习路线
- Ubuntu1804安装ROS(melodic版本)
- 利用Excel爬取网页数据
- MCU学习笔记_ARM Cortex M0_简介
- 如何养狗完整版 !-为了迎接我的大宝做好准备
- win10 电脑内存占用率过高解决
- ubuntu 内存清理【亲测有效】
- 任天堂国行 Switch OLED 版 评测
- TTL、CMOS、LVTTL、LVCMOS、LVDS
- VITA 49.0协议阅读笔记
- 暴力破解周边Wi-Fi密码
- mei yan xiao guo for android