hadoop hdfs 常用命令大全

来源:互联网 发布:生意参谋怎么看数据 编辑:程序博客网 时间:2024/06/06 17:37

参考:不经意发现的,http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html

常用命令 hadoop1 包含,点击下载pdf说明文件

FS Shell

  • cat
  • chgrp
  • chmod
  • chown
  • copyFromLocal
  • copyToLocal
  • cp
  • du
  • dus(du的汇总)
  • expunge
  • get
  • getmerge
  • ls
  • lsr(递归)
  • mkdir
  • movefromLocal
  • mv
  • put
  • rm
  • rmr
  • setrep(改变某个文件的副本数)
  • stat
  • tail
  • test
  • text
  • touchz
补充 

1、stat的格式化参数(参考http://blog.csdn.net/lskyne/article/details/8923904)

当向HDFS上写文件时,可以通过设置dfs.block.size配置项来设置文件的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

bin/hadoop fs -stat /liangly/teradata/part-00099

2010-11-02 08:03:49

下面的例子打印文件的block size和备份个数:

bin/hadoop fs -stat "%o %r" /liangly/teradata/part-00099

67108864 3

从打印结果可以看到文件/liangly/teradata/part-00099的block size是64m,有3个备份。

http://blog.csdn.net/lskyne/article/details/8923904

2、dus命令与后续版本中hadoop fsck、fs -dus、-count -q等命令的差异(参考:http://www.opstool.com/article/255)

很多hadoop用户经常迷惑hadoop fsck,hadoop fs -dus,hadoop -count -q等hadoop文件系统命令输出的大小以及意义。
这里对这类问题做一个小结。首先我们来明确2个概念:


逻辑空间,即分布式文件系统上真正的文件大小
物理空间,即存在分布式文件系统上该文件实际占用的空间
为什么逻辑空间一般不等于物理空间?
分布式文件系统为了保证文件的可靠性,往往会保存多个备份(一般是3份),只要备份数不为1的情况下,一般物理空间会是逻辑空间的几倍。关系如下:


HDFS物理空间=逻辑空间*block备份数
hadoop fsck和hadoop fs -dus 
执行hadoop fsck和hadoop fs -dus显示的文件大小表示的是文件占用的逻辑空间。