HDFS小文件治理总结

北京痤疮治疗医院 http://pf.39.net/bdfyy/bdflx/210312/8740647.html

作者

荣翔

目录

背景

第一部分回本溯源

第二部分HDFS大量小文件的危害

第三部分小文件治理方案总结

第四部分总结

参考文献及资料

背景

企业级Hadoop大数据平台在实际使用过程中,可能大部分会遭遇小文件问题,并体验它的破坏性。HDFS文件系统的inode信息和block信息以及block的位置信息,这些原数据信息均由NameNode的内存中维护,这使得NameNode对内存的要求非常高,特别是遭遇海量小文件。

例如:京东的NameNode内存是GB,甚至还有大厂的NameNode的机器是1TB的内存。能力强的大厂,钱就不花在买机器上了,例如字节跳动使用C++重写NameNode,这样分配内存和释放内存都由程序控制。但是NameNode天生的架构缺陷,所以元数据的扩展性终是受限于单机物理内存大小。

本篇文章首先回本溯源,分析小文件的产生原理以及对业务平台的危害,最后总结分析治理方法。

第一部分回本溯源

HDFS基于Google的论文《分布式文件系统》思想实现的,设计目的是解决大文件的读写。

1.1HDFS存储原理

HDFS集群(hadoop2.0+)中,有两类服务角色:NameNode、DataNode。文件数据按照固定大小(blocksize,默认M)切分后,分布式存储在DataNode节点上。而数据的元数据信息加载在NameNode服务内存中。为防止服务单机会持久化一份在文件中(即fsimage文件,最新的元数据存储在editslog日志中,一般为64MB,当editslog文件大小达到64MB时,就会将这些元数据追加到fsimage文件中)。

每个文件/目录和block元数据信息存储在内存中,内存中分别对应:INodeFile、INodeDirectory、BlockInfo,每个对象大约-bytes。

1.2检查文件系统1.2.1命令fsck

HDFS提供了fsck命令用来检查HDFS文件系统的健康状态和Block信息。需要有HDFS的supergroup特权用户组的用户才有执行权限。参考下面的命令:

[root

quickstartcloudera]#hdfsfsck/-blocks-locationsConnectingtonamenodevia



转载请注明地址:http://www.sanbaicaoasb.com/scls/8445.html
  • 上一篇文章:
  • 下一篇文章:
  • 热点文章

    • 没有热点文章

    推荐文章

    • 没有推荐文章