设为首页 收藏本站
查看: 759|回复: 0

[经验分享] hadoop在文件分片blocksize

[复制链接]

尚未签到

发表于 2016-12-8 07:05:25 | 显示全部楼层 |阅读模式
  hadoop在文件的split中使用到了一个 变量 是   blocksize,这个值  默认配置 是 64M  ,1.0的代码 给的默认值是32M ,这个值我们先不要纠缠 他 到底是多少,因为这个值是可配置的,而且已经给了默认配置64M ,只有我们不配置的时候才会使用32M ,且在官方文档上2.0已经是64M。
  那么为什么这个大小是64M ,记得在jvm的一片论文中提到这个大小是64M ,
  我们在使用linux的时候,linux系统也有块的大小,我们一般是哟功能的4096   也就是4K ,

[iyunv@cluster-19 workspace]# du -sk
272032  .
[iyunv@cluster-19 workspace]# vi 1
[iyunv@cluster-19 workspace]# du -sk
272036  .
[iyunv@cluster-19 workspace]# ls -la 1
-rw-r--r--. 1 root root 2 8月  27 14:56 1

  以上代码可以看到,我们 使用du命令  时    看到 1 这个文件占用了一个 块  的空间,由于一个块的空间是 4096 (4K) 所有我们创建1这个文件之后  我们看到磁盘空间 增加了 4K  , 但是我们在使用ls 查看 1 这个文件的时候,我么看到 这里 文件的大小是 2 个字节。
  其实我们使用ls 看到的只是文件的meta信息。
  那么在hdfs中呢,前边已经说过块的大小是64M ,
  我们做个假设  如果  1T 的盘 ,我们上传 小文件到 hdfs   ,那么我们是不是只能上传1632个小文件,这个和我们预期远远不相符,hadoop确实是处理大文件有优势,但是也有处理小文件的能力,那就是在shuffle阶段会有合并的,且map的个数和块的数量有关系,如果块很小,那其不是有很多块 也就是很多map了
  所以 hdfs中的块,会被充分利用,如果一个文件的大小小于这个块的话那么这个文件 不会占据整个块空间:
  hdfs 的块 如此之大 主要还是为 减小寻址开销的 :
  一用hadoop权威指南一句话:

HDFS的块比磁盘块大,其目的是为了最小化寻址开销。如果块设置得足够大,从磁盘传输数据的时间可以明显大于定位这个块开始位置所需的时间。这样,传输一个由多个块组成的文件的时间取决于磁盘传输速率。

我们来做一个速算,如果寻址时间为10ms左右,而传输速率为100MB/s,为了使寻址时间仅占传输时间的1%,我们需要设置块大小为100MB左右。而默认的块大小实际为64MB,但是很多情况下HDFS使用128MB的块设置。以后随着新一代磁盘驱动器传输速率的提升,块的大小将被设置得更大。

但是该参数也不会设置得过大。MapReduce中的map任务通常一次处理一个块中的数据,因此如果任务数太少(少于集群中的节点数量),作业的运行速度就会比较慢。
  我们都知道 ,hdfs 的文件是不允许修改的,目前的hadoop2.0 持支 对一个文件做append操作,那么就遇到另一个问题,
  假如现在有一个两个文件  放在同一个block中的话:
  
DSC0000.jpg
 
  如上图,如果原始文件是这样字存在的话 ,那么我如果对File1 做 append操作的花,那么hdfs会怎么处理呢?
  我们知道在文件的namenode信息中记录了文件的信息,我们对hadoop做了appdend之后,一个文件只会记录一个文件信息,不可能一个文件记录在多个文件块中,那么 hdfs是会将File1 原来的文件取出来,和我们将要appdend的内容放在一起重新存储文件呢?还是在文件的meta信息中维护了这个文件的两个地址呢?
  待查询?
  希望高手指教...........................

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-311065-1-1.html 上篇帖子: awk and hadoop之mapper 下篇帖子: 使用RawComparator加速Hadoop程序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表