问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Hadoop的Mapper是怎么从HDFS上读取TextInputFormat数据的

发布网友 发布时间:2022-05-01 12:03

我来回答

1个回答

热心网友 时间:2023-11-02 05:17

Hadoop中控制文件格式,split方式和record读取方式的类都继承自InputFormat这个抽象类。比如实现每次读取文本文件一行的就是TextInputFormat,这个类进一步使用LineRecordReader进行实际的读取操作。以Hadoop 1.0.1为例,在LineRecordReader第97-99行:
newSize = in.readLine(value, maxLineLength,
Math.max((int)Math.min(Integer.MAX_VALUE, end-pos),
maxLineLength));
从文本行读取类LineReader in中读取一行写入record的value中。为了一次读取两行,可以将96-106行的while循环再复制粘贴一份在下面。
但是LineReader的readLine函数执行时会首先将value原来的值清空,但是我们读取第二行时不想将第一行的内容清空。因此对LineReader的readLine函数做一点修改:
为了保留原来的readLine函数,我们首先讲这个函数复制粘贴一份在下面,将readLine的函数声明做一点修改,增加是否clear value的判断:
public int readLine(Text str, int maxLineLength,
int maxBytesToConsume, boolean clear) throws IOException {
然后讲123行的str.clear();修改为if (clear) {str.clear();}
这样,在LineRecordReader的两个while循环中,第一次readLine应为:
newSize = in.readLine(value, maxLineLength,
Math.max((int)Math.min(Integer.MAX_VALUE, end-pos),
maxLineLength), true);
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
请大家看看电脑配置怎么样,值多少钱,玩大型网游,页游会不会卡 帮忙看一下旧台式电脑能卖多少钱,谢谢 高考文科考了590,排名3455,福建的,想去外省的本一,能报哪里,急啊= = 华侨大学云南省高考分数为522的能从商学院转建筑学院吗? 厦门华侨大学录取 高考志愿填报应该注意哪些问题 成熟男人戴手表好看吗,成熟男人戴什么手表? 金铲铲之战金色神将阵容怎么搭-金铲铲之战金色神将阵容搭配攻略 金铲铲之战赌蜘蛛阵容推荐 蛛后主C装备搭配攻略 金铲铲之战仙灵蜘蛛阵容搭配推荐 2022年2月1日是星期二玲玲的生日是3月6日她的生日那天是星期几? 编写一个JAVA类方法,通过该方法可以获取出存储在HDFS集群中根目录的所有... 2000个3除7余几 一个数除以七商33余数最大这个数是多少?列试 1、33……33(2006个3)除以7,余数是多少?2、77……77(100个7)被3整除后,求余数 如何从hdfs缓存中直接读取数据 老式楼房,厨房窗户在楼道,如何安装燃气热水器有什么好办法 求333333....33(2000个3)除以7的余数是多少? (今天就要答案) ()除以7等于33余(),被除数最大是几 电脑开机光驱响 怎么解决 33333......(2000个)除7余几 笔记本光驱响 330÷7等于几? 为什么笔记本电脑在开机时光驱那里总要响一下? 33除7等于多少? 电脑开机光驱一直在响屏幕是黑的怎么回事?? 33除以7的小数部分上前50个数位上的数字之和是多少? 电脑开机时,光驱老是响一下就不响了,而且还开不开机 33÷7怎么列竖式计算? 电脑开不了机光驱一直响 从hdfs读取excel文件内容返回的数据为空 mapreduce怎么读取增量的hdfs文件 如何让Hadoop读取以gz结尾的文本格式的文件 手机游戏是从华为应用商店下载的,那么怎么能在电脑上玩手游呢?神雕侠侣2 我在华为应用市场手机上面下载了手游游戏,怎么才能在电脑上面玩? 捷信逾期两年了还能商量还钱吗? 貔貅吊坠断成两半寓意什么? 黑曜石貔貅从中间断成两半寓意着什么? 你们看貔貅被摔成两截,寓意着什么。 不小心把掉地上从两个貔貅中间摔成两半貔貅摔坏了有什么寓意 刚买的黑曜石貔貅手链破碎了寓意着什么? 黑曜石的貔貅碎了有什么寓意? 怎样让鱼缸长出藻类? 怎样让鱼缸里长水藻? 貔貅的寓意是什么呀? 我的apple id 已被停用,若要启用请在appleid apple.com/zh-CN重设密码 鱼缸或水池里面如何让水藻怎么长的快? 怎么样才能让鱼缸长绿藻 如何让锦鲤鱼缸中绿藻长得慢 如何连接网络电视