查看hdfs文件大小|Hadoop中怎么查看文件的block size

|

⑴ hdfs适合存储多大的单个文件

首先hdfs是建立在多个机器文件系统上的一个逻辑上的文件系统。它的底层数据以数据块方式存储,块大小可进行调整。假如你设置一个数据块大小为256M,上传一个1G的文件,它底层会将这个文件分成4块存储,每个块256M。你在hdfs上看到的是一个完整的文件,随时可对这个文件进行操作,无需关注它的存储。就像你在操作系统上操作文件一样,无需关注它存在那个磁盘哪个扇区

⑵ Hadoop中怎么查看文件的block size

因为对控制文件的分片数目,进而控制文件的map个数非常感兴趣,因此有查找如下资料的需求。下面来看看我总结的吧:)当向HDFS上写文件时,可以通过设置dfs.blocksize配置项来设置文件的block size,这导致HDFS上不同文件的block size是不同的。有时候我们需要知道HDFS上某个文件的block size,比如想知道该该文件作为job的输入会创建几个map等。Hadoop FS Shell提供了一个-stat选项可以达到目的。官方文档描述这个选项时遗漏了可选参数。-stat选项的使用格式是:{HADOOP_HOME}/bin/hadoop fs –stat [format] 其中可选的format被官方文档遗漏了。下面列出了format的形式:%b:打印文件大小(目录为0)%n:打印文件名%o:打印block size (我们要的值)%r:打印备份数%y:打印UTC日期 yyyy-MM-dd HH:mm:ss%Y:打印自1970年1月1日以来的UTC微秒数%F:目录打印directory, 文件打印regular file 当使用-stat选项但不指定format时候,只打印文件创建日期,相当于%y:[[email protected] hadoop-2.5.2]$ bin/hadoop fs -stat /filein/file_128M.txt15/03/18 09:47:26 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable2015-01-06 01:43:23 下面的例子打印文件的block size和备份个数:[[email protected] hadoop-2.5.2]$ bin/hadoop fs -stat "%o %r" /filein/file_1024M.txt 15/03/18 09:48:25 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable134217728 1 可以看到/filein/file_1024M.txt文件的blocksize大小为128M,有一份。

⑶ 怎么查看hdfs 某个文件夹的文件块

这种情况比较复杂!如果文件小于64MB,存储按该文件的块大小等于该文件的大小。读取时是根据存在namenode上面的映射表来读取的。按实际存储的大小来读取,不是从硬盘上面读取的,是从HDFS上面读取的。另外,在文件上传时,就会根据块的大小将各个块分布到各个datanode节点上面的。如果文件已经上传,需要修改默认块的大小,那么需要执行一条语句将HDFS上面的原有文件重新分块并存储。


赞 (0)