您的位置:首页 > 运维架构

hadoop hdfs 常用命令大全

2017-07-16 18:51 344 查看
参考:不经意发现的,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显示的文件大小表示的是文件占用的逻辑空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: