关于hdfs切片极端情况问题的求助

前端时间学习了一下hadoop的基本内容,然后了解了一下hdfs和mapreduce的基本操作方式,但是我在mapreduce任务执行时发现了一个极端的情况,是关于hdfs上传文件后切片时的问题,具体描述我放在下边。

1. 问题:
不知道你们在跑mapreduce程序的时候有没有注意到在执行mr(mapreduce后文全部用mr简写)时,其是在全部的cluster上获取切片(block)上的内容,那么这时候对于大文件(会被切割成众多block的文件)就会出现一种极端情况,就是在上传时如果某些由二进制数据集构成的一个人类能读取的数据被hdfs切分断了,比如说一个大文件里包含字母a,ASCII码是97,对应到二进制就是1100001,hdfs在切份文件的时候就会对这一个大文件的一连串的二进制数据切分,那如果极端情况下把这个a字母的二进制码切断了1100001(比如…1100–>block1 001…–>block2)。而我要处理的数据刚好就是包含这个a字母的整体内容,那这时候map程序是怎么通过hdfs获取完整的字母a或者说是一连串完整的内容然后再进行下一步的?众多block是不可能不会出现这种情况,所以请求大神帮忙解答我的问题。如果没看懂我说的是什么可以看我下面说的例子,求大神在帖子下方留言或者是私信给我解答。

Example:
任务是要统计某些url网站的流量使用情况
文件的内容分布是:url upflow downflow

上传的文件(非常大):


http://www.baidu.com 1564 78945
http://www.taobao.com 2456 785622
http://www.zhihu.com 56451 123465

上传时hdfs是按照二进制分片,那么如果说的这些url中的某些字母的二进制字段刚好被拆分到了两个block,那么在执行map的时候一定会少一部分网站,但是事实却是Hadoop解决了这个问题,至于如何解决楼主表示没搞懂,求助大神帮我解释这个疑惑。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值