Hadoop Formats 在 Flink 里复用 Hadoop InputFormat(flink-hadoop-compatibility)

1、项目依赖配置

核心依赖是 Flink 的兼容模块:

<dependency><groupId>org.apache.flink</groupId><artifactId>flink-hadoop-compatibility</artifactId><version>2.2.0</version></dependency>

如果你要在本地(IDE / MiniCluster)跑起来,通常还需要带上一个 Hadoop 客户端依赖(本地有 class 才能初始化 Hadoop 相关类):

<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.10.2</version><scope>provided</scope></dependency>

实战建议:

  • 集群环境里 Hadoop 依赖往往由平台(YARN/HDFS)提供,你本地为了能跑通需要加hadoop-client
  • 如果你是打 fat jar 跑 standalone/K8s,就要更谨慎处理 Hadoop 依赖冲突(常见是guavajacksonnetty版本冲突)。

2、两种包法:readHadoopFile vs createHadoopInput

Flink 通过HadoopInputs提供两种方式把 Hadoop InputFormat 包装成 Flink InputFormat:

  • readHadoopFile(...):用于继承自 Hadoop 的 FileInputFormat的场景(典型:读 HDFS 文件类格式)
  • createHadoopInput(...):用于通用 InputFormat(不一定是文件类,例如某些外部系统的 InputFormat)

包装后的 Source 输出类型是一个二元组:Tuple2<K, V>

  • f0:key
  • f1:value

这点非常重要:你后续处理 DataStream 的时候,要把 key/value 拆开理解。

3、示例:使用 Hadoop 的 KeyValueTextInputFormat

下面示例演示如何把 Hadoop 的KeyValueTextInputFormat作为 Flink Source:

importorg.apache.flink.api.java.tuple.Tuple2;importorg.apache.flink.streaming.api.datastream.DataStream;importorg.apache.flink.streaming.api.environment.StreamExecutionEnvironment;importorg.apache.flink.hadoopcompatibility.HadoopInputs;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapred.KeyValueTextInputFormat;publicclassHadoopInputFormatDemo{publicstaticvoidmain(String[]args)throwsException{StreamExecutionEnvironmentenv=StreamExecutionEnvironment.getExecutionEnvironment();StringtextPath="hdfs:///path/to/input";KeyValueTextInputFormattextInputFormat=newKeyValueTextInputFormat();DataStream<Tuple2<Text,Text>>input=env.createInput(HadoopInputs.readHadoopFile(textInputFormat,Text.class,Text.class,textPath));// 业务处理:把 Text 转成 StringDataStream<String>lines=input.map(kv->"key="+kv.f0.toString()+", value="+kv.f1.toString());lines.print();env.execute("hadoop-inputformat-demo");}}

4、典型使用场景与坑位

常见适配场景:

  • 你要读一个历史遗留的 Hadoop InputFormat(比如某个自研存储、HBase/Hive 的某些格式、云厂商的 InputFormat)
  • 已经有成熟的 MR InputFormat + 配置参数(账号、表名、列族、分区等),直接复用最省时间

容易踩的坑:

  • 依赖冲突:Hadoop 生态依赖链很长,尤其本地 IDE 跑最容易爆 classpath 冲突
  • Key/Value 语义:输出一定是Tuple2<K,V>,不要直接当成一行文本
  • 配置注入:很多 InputFormat 依赖 Hadoop Configuration(账号、endpoint、table 等),你需要在创建 InputFormat 或 Job/Configuration 时把参数设全
  • 批/流差异:很多 Hadoop InputFormat 本质是“批式读取”,更适合 BATCH runtime;如果你硬塞进 streaming job,它也只是周期性读一遍(不是增量监控)、

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1159450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宏智树 AI:期刊论文投稿通关密码!从选题到见刊的智能加速器

作为深耕论文写作科普的教育博主&#xff0c;后台每天都被 “期刊论文投稿被拒 N 次”“选题不对口”“格式反复改” 的吐槽刷屏。很多科研人明明手握优质研究成果&#xff0c;却因踩中选题偏差、文献不规范、格式混乱等 “隐形雷区”&#xff0c;陷入投稿屡败的困境。而宏智树…

深度学习毕设项目:基于python_CNN深度学习训练识别橘子是否新鲜基于python_CNN深度学习卷积神经网络训练识别橘子是否新鲜

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

零代码开发平台有哪些?

在数字化转型的浪潮中&#xff0c;业务部门对敏捷、定制化软件工具的需求与日俱增&#xff0c;但传统的开发流程却受限于高昂的成本和漫长的周期。零代码开发平台正是在此背景下应运而生的解决方案。它指的是一种允许用户通过完全可视化的拖拽、配置和规则设定&#xff0c;无需…

宏智树 AI:课程论文写作 “开挂神器”!告别凑字数,轻松搞定高分作业

每到期末季&#xff0c;课程论文就成了大学生的 “甜蜜负担”—— 想认真写却抓不住选题方向&#xff0c;凑够字数又担心逻辑混乱&#xff0c;查重时更是被飘红的段落搞得焦头烂额。作为深耕论文写作科普的教育博主&#xff0c;今天就给大家安利一款课程论文 “救星”—— 宏智…

【课程设计/毕业设计】基于卷积神经网络训练识别橘子是否新鲜基于python_CNN深度学习卷积神经网络训练识别橘子是否新鲜

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【2026必看】AI Agent完全指南:从零掌握大模型核心架构,建议收藏学习

AI Agent是2026年AI生态核心&#xff0c;具备自主决策和执行能力&#xff0c;通过感知、规划、行动、记忆和反思五大组件实现闭环架构。A2A协议使不同Agent能协作分工&#xff0c;MCP标准化工具调用&#xff0c;Agent Skills模块化能力构建。这些技术大幅降低开发门槛&#xff…

家庭食谱管理系统 Recipes 怎么搭?用服务器自建一个“全家共享”的菜谱库

🥬 买菜靠感觉,回家才发现缺关键食材 📱 菜谱收藏在各个平台:小红书一份、B站一份、浏览器书签一堆 🧠 想复刻某次做成功的菜,翻半天找不到当时那份步骤 👨‍👩‍👧‍👦 家里人各自保存各自的,根本没法共享、也没法统一整理 后来我干脆一步到位:在服务器上…

HG_REPMGR autofailvoer自动故障转移

文章目录 文档用途详细信息 文档用途 HG_REPMGR自动故障转移配置参考 详细信息 配置集群自动故障转移&#xff08;failover&#xff09;&#xff0c;需要为集群中的每个节点开启 repmgrd 守护进程。当主节点出现故障后&#xff0c;会自动将合适的备节点提升为新主节点&#…

2026年网络安全学习路线,零基础入门到精通,看这篇就够了!赶紧收藏!

针对2025年网络安全领域的学习路线规划&#xff0c;结合当前技术趋势和未来发展方向&#xff0c;帮助你从入门到进阶&#xff0c;逐步掌握网络安全的核心技能。 一、基础阶段&#xff08;3-6个月&#xff09; 目标&#xff1a;建立计算机基础与安全意识 1. 计算机基础 学习…

【必看收藏】RAG分块策略全解析:从入门到精通,解决大模型企业应用痛点

RAG技术通过结合检索与生成&#xff0c;解决大模型在企业应用中的局限性&#xff0c;分块策略是其核心环节。文章详细分析了五种分块策略&#xff08;固定大小、语义、递归、基于文档结构、基于LLM&#xff09;的原理、优缺点及适用场景&#xff0c;强调需根据文档类型和应用需…

【2026年最新整理】网络安全学习路线,入门到入坟,史上最全网络安全学习路线整理

很多小伙伴在网上搜索网络安全时&#xff0c;会出来网络安全工程师这样一个职位&#xff0c;它的范围很广&#xff0c;只要是与网络安全挂钩的技术人员都算网络安全工程师&#xff0c;一些小伙伴就有疑问了&#xff0c;网络安全现在真的很火吗&#xff1f; 那么寒哥就带大家看…

MySQL JOIN语法深度解析:从理论到实践的完整指南

目录 一、JOIN的本质与数学基础 二、内连接&#xff08;INNER JOIN&#xff09;的深层机制 三、外连接的完整语义解析 四、特殊连接类型的适用场景 五、JOIN性能优化的核心原则 六、JOIN与事务处理的交互影响 七、高级JOIN技术的实践应用 八、JOIN设计的最佳实践 结语 …

CSV Format Flink / PyFlink 读写 CSV 的正确姿势(含 Schema 高级配置)

1、依赖引入 Java/Scala 工程需要加 Flink CSV 依赖&#xff1a; <dependency><groupId>org.apache.flink</groupId><artifactId>flink-csv</artifactId><version>2.2.0</version> </dependency>PyFlink 用户一般可以直接在作…

直流母线电压采集与缓冲调理电路

一、电路类型与原理 这是一个直流母线电压采集与缓冲调理电路,主要功能是将高压直流母线(如 48V)分压后,通过运放构成的电压跟随器进行缓冲,再送入 ADC 进行精确采样。 分压网络:R38(240kΩ)和 R41(20kΩ)组成电阻分压,将 48V 输入按比例降到 3V 左右,满足后续 AD…

Aliro统一生态、UWB精准无感,2026智能门锁格局将迎巨变

曾几何时&#xff0c;智能门锁的进化似乎陷入了瓶颈。指纹识别受环境与皮肤状态影响&#xff0c;人脸识别在光线不佳时可能失灵&#xff0c;而蓝牙或NFC解锁仍需用户掏出手机完成一个“近场接触”的动作。行业亟待一种既能彻底解放双手、又能确保极高安全性的新方案。这一僵局&…

2026 年计算机圈赚钱技能:必学技术盘点,高薪赛道认准这些!

别再迷茫了&#xff0c;这些技能才是就业和财富的硬通货 经常有同学问&#xff1a;“现在学计算机&#xff0c;哪些技能最值得投入时间&#xff1f;学这些东西真的能赚钱吗&#xff1f;” 答案是肯定的&#xff0c;但选对方向很重要。计算机领域正在快速分化&#xff0c;有些…

国外论文参考文献怎么找:实用方法与资源推荐

刚开始做科研的时候&#xff0c;我一直以为&#xff1a; 文献检索就是在知网、Google Scholar 里反复换关键词。 直到后来才意识到&#xff0c;真正消耗精力的不是“搜不到”&#xff0c;而是—— 你根本不知道最近这个领域发生了什么。 生成式 AI 出现之后&#xff0c;学术检…

最近在搞永磁同步电机离线参数辨识的项目,发现不少新手在玩SVPWM时总会遇到死区补偿和高频注入这两个大坑。今天就拿Simulink模型说事,咱们边看代码边唠嗑

SVPWM死区补偿&#xff08;基于电流极性)高频注入法辨识PMSM的dq轴电感&#xff08;离线辨识&#xff09;—simulink先说说SVPWM的实现。在Simulink里用PWM Generator模块生成六路PWM信号时&#xff0c;记得把载波频率设成和实际硬件一致。比如我用的是20kHz&#xff0c;这时候…

深度学习毕设选题推荐:基于python_CNN机器学习卷积神经网络训练识别橘子是否新鲜基于python_CNN深度学习卷积神经网络训练识别橘子是否新鲜

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

基于51单片机的车辆出入光电传感管理系统设计

第1章 系统总体方案设计 1.1 整体方案设计 1.1.1控制系统的选择 方案一&#xff1a;采用DSP作为系统控制器。DSP&#xff08;Digital Signal Processor&#xff09;它是利用数字信号来处理信息的元器件&#xff0c;它对元件值的容限不敏感而且受外部因素影响较小&#xff0c;容…