作为HDFS的默认块大小为64MB。因此,如果我们对示例200MB数据说 。根据HDFS的块大小将它分成4块64Mb,64MB,64MB和8MB。 我的问题是,为什么数据没有分成相同的4个50MB的块,以便将它们中的每一个都保存在64MB的块大小中。HDFS块大小混乱
回答
why the data not divided into same 4 block of 50MB in order to save them each one of them in 64MB of block size.
- 因为它被配置为在hadoop配置中默认存储64 MB。您可以通过在hdfs-site.xml
中更改/添加dfs.block.size
属性将其更改为50 MB,但HDFS是用于BIG数据处理的存储。默认块大小设置较高(64MB/128MB),因为
想想这些文件的元数据存储的/在的Namenode块,用的Namenode增加元数据的更多更小的文件。
- 例如,存储1GB的文件的 - 的Namenode具有存储元数据的64 MB的16个块与50 MB
网络开销21块处理文件时,和Hadoop与更大效果更好文件:
- 例如,(在该计算中使用的传输速率是1百万字节/秒,和10%的开销)的
- 3块64 MB,和8 MB 1块需要 - 218秒通过网络
- 4块传送的50 MB需要 - 220秒
本200 MB的例子是在大数据世界非常小数据的
TB
并行处理。- 例如,(在该计算中使用的传输速率是1百万字节/秒,和10%的开销)的
另请注意: 当最后一个数据块存储8MB的(在你的例子)。该块仅占用8MB存储空间,不会使用完整的64 MB作为块大小。
谢谢你的回答先生 –
Hadoop使用大量数据。它不喜欢小文件。小块意味着更多的映射器被启动并且资源被浪费,NameNode也承受着巨大的压力,因为它必须引用群集中每个块的地址。这将增加通过网络访问数据的时间,并会带来显着的性能提升。
64Mb由Apache团队作为最佳推荐块大小引入,因此它可以给您的namenode带来合理的压力,同时还允许您在MapReduce作业中并行处理数据。
在某些Hadoop发行版中,如Cloudera,默认情况下使用128Mb块。
谢谢先生,,,,我得到了概念 –
- 1. SVN转储大小混乱
- 2. 混乱htons-小端/大端
- 3. HDFS - 块大小相关
- 4. HDFS块大小和复制
- 5. HDFS中的最佳块大小 - 可能造成大块大小
- 6. HDFS块大小和文件大小的问题,文件小于块大小
- 7. SqlCommand的参数大小混乱
- 8. java的整数数组大小混乱
- 9. jQuery和jQueryMobile文件大小混乱
- 10. SQLite查询混乱,小于大于
- 11. 与大O混乱
- 12. HDFS块有多大?
- 13. HDFS块大小vs实际文件大小
- 14. Nodejs模块导出混乱
- 15. Python模块可变混乱
- 16. chartboost整合iOS,小混乱
- 17. 关于PhoneStateIntentReceiver的小混乱
- 18. 小混乱(ResultSets,OracleDB,JAVA)
- 19. hadoop hdfs块大小和linux文件系统块大小之间的交互
- 20. 大O符号混乱(C++)
- 21. 多项式较大 - 混乱
- 22. 小文件和HDFS块
- 23. 在小文件大小的情况下HDFS块大小会发生什么
- 24. 解析大于hdfs块大小的XmlInputFormat元素
- 25. 混乱
- 26. 混乱
- 27. 混乱
- 28. 混乱
- 29. 混乱与产量调用外部块
- 30. 红宝石模块和类混乱
你可以参考这个链接http://stackoverflow.com/questions/19473772/data-block-size-in-hdfs-why-64mb –