1、HDFS启动关闭

HDFS和普通的硬盘上的文件系统不一样,是通过Java虚拟机运行在整个集群当中的,所以当Hadoop程序写好之后,需要启动HDFS文件系统,才能运行:

①启动   》》进入到NameNode对应节点的Hadoop安装目录下

             》》执行     bin/start-dfs.sh            (2.6.4中            sbin/start-dfs.sh)

这一脚本会启动NameNode,然后根据conf/slaves中的记录逐个启动DataNode,最后根据conf/masters中记录的Secondary NameNode地址启动SecondaryNameNode  在Hadoop2.6.4中在etc/hadoop/slaves

②关闭   HDFS关闭过程    bin/stop-dfs.sh        (2.64中,     sbin/stop-dfs.sh)

运行正好是启动的逆过程,关闭Secondary NameNode  ,然后 关闭每个DataNode,最后是NameNode自身

    在运行(2.6.4过程中  ,启动和关闭顺序都是     NameNode    DataNode    Secondarynamenode)

2、HDFS文件操作命令格式与注意事项

①HDFS的基本命令格式如下:    bin/hadoop dfs -cmd <args>                              这里cmd就是具体的命令,记住cmd前面的短线“-”不可忽略

example      bin/hadoop dfs -cat file:///usr/hadoop/hadoop264/license.txt

 

②部分命令如(mkdir等) 需要文件目录名作为参数,参数一般都是URI格式,args参数的基本格式: scheme://authority/path

scheme指具体的文件系统,如果是本地文件,那么scheme就是file;   

                                            如果是HSFS上的文件,那么scheme就是hdfs。

authority就是机器的地址和对应的端口。

正如Linux文件有绝对路径和相对路径一样,这里的URI参数也可以做一定程度省略。当对应的设置为hdfs://namenode:namenodeport时,如果路径参数为/parent/child,那么它对应的实际文件为   hdfs://namenode:namenodeport/parent/child

 ③HDFS没有所谓的当前工作目录的概念。

3、cat

hadoop dfs  -cat  URI [uri  ...]

作用:将参数所指示的文件内容输出到stdout

例子 bin/hadoop dfs -cat hdfs://192.168.176.128:9000/test/output/part-r-00000


4、chgrp

格式      hadoop dfs  -chgrp [-R] GROUP URI [uri   ....]

作用: 改变文件所属的用户组。如果出现-R选项,则这一操作对整个目录结构递归执行。使用这一命令的用户必须是文件的所属用户,或者超级用户。


5、chmod

格式      hadoop   dfs  -chmod  [-R]  <MODE[,MODE]...|OCTALMODE> URI[URI  ...]

作用:    改变文件权限。如果使用  -R 选项,则对整个目录有效递归执行。使用这一命令的用户必须是文件的所属用户,或者超级用户。

 bin/hadoop dfs -chmod -R 777 hdfs://master:9000/test/input


6、copyFromLocal

格式      hadoop dfs   -copyFromLocal  <localsrc>   URI

作用    与put命令类似,但是要限定源文件路径为本地文件系统

bin/hadoop dfs -copyFromLocal /usr/src/linux-headers-3.13.0-24/Makefile hdfs://master:9000/test/input/makefile


7、copyToLocal

格式    hadoop dfs   -copyToLocal  【-ignorecrc】  [-crc]  URI  <localdst>

作用    与get命令类似,但是要限定目标文件路径为本地文件系统

 bin/hadoop dfs -copyToLocal  hdfs://master:9000/test/input/makefile ~/makefile
注意权限问题   要使用 chmod修改权限

8、count

格式     hadoop  dfs  -count   【-q】 <paths>

作用   统计匹配对应路径下的目录树,文字数,字节数(文件大小)

选项  意义;使用-count选项时,输出的列为:

DIR_COUNT     ,    FILE_COUNT,    CONTENT_SIZE   ,FILE_SIZE

使用 -count - q 选项时,输出的列为:

QUOTA,REMAINING_QUOTA, SPACE_QUOTA,REMAINING_SPACE_QUOTA, DIR_COUNT,  FILE_COUNT ,CONTENT_SIZE , FILE_NAME

意义是 :  目录下最大允许的文件+目录数(不存在上限,则为none),目录下可增加目录+文件数(不存在上限,则为inf),目录下最大允许空间(不存在上限,则为none),目录下可用最大空间(不存在上限,则为inf);后面的几个和 -count选项一致,分别对应目录下已存在的目录数,文件数,文件大小,文件名。

例子: bin/hadoop dfs -count  hdfs://master:9000/test/input/masters

bin/hadoop dfs -count  -q hdfs://master:9000/test/input/masters


9、cp

格式     hadoop  dfs  -cp URI [URI ...] <dest>

作用    将文件拷贝到目标路径中。如果<dest>  为目录的话,可以将多个文件拷贝到该目录下。

bin/hadoop dfs -cp file:///home/hadoopuser1/Downloads/sh.c  file:///home/hadoopuser1/Downloads/part hdfs://master:9000/test/input

10、du

格式 :  hadoop  dfs -du 【-s】 【-h】 URI 【URI 。。。】

作用    如果参数为  目录,显示该目录下所有目录 + 文件的大小;如果参数为单个文件,则显示文件大小

选项意义:

  -s    指输出所有文件的累加和,而不是每个文件的大小

 -h  会将文件大小的数值用方便阅读的形式表示,比如用64.0M代替67108864


11、dus

格式   hadoop dfs -dus <args>

作用   显示文件的大小,    此命令等价于   bin/hadoop dfs -du -s

bin/hadoop dfs -dus -h file:///home/hadoopuser1/Downloads/

12、expunge

格式   hadoop dfs  -expunge

作用   清空回收站,如需更多有关回收站特性的信息


13、get

格式   bin/hadoop dfs  -get [-ignorecrc ]  [-crc]  <src> <localdst>

作用:将文件拷贝到本地文件系统。 CRC 校验失败的文件通过-ignorecrc选项拷贝。 文件和CRC校验和可以通过-CRC选项拷贝


14、getmerge

格式: bin/hadoop dfs  -getmerge <src><localdst> [addnl]

作用: 命令参数为一个源文件目录和一个目的文件。将源文件目录下的所有文件排序后合并到目的文件中。 添加addnl 可以在每个文件后面插入新行

15、ls

格式:  hadoop dfs -ls <args>

作用:对于一个文件,该命令返回的文件状态以如下格式列出:

permissions  number_of_replicas  userid  groupid  filesize     modification_data   modification_time filename

意义: 文件权限,副本个数,用户ID,组ID,文件大小,最近一次修改日期,最近一次修改时间,文件名


16、lsr 

格式    hadoop  dfs -lsr <args>

作用    在整个目录下递归执行ls, 与UNIX中的ls-R类似


17.mkdir

格式 : hadoop  dfs -mkdir <paths>

作用    以<paths>中的URI作为参数,创建目录。该命令的行为与Unix中的 mkdir-p的行为十分相似,这一路径上的父目录不存在,则创建该父目录。

18、moveFromLocal

格式: hadoop  dfs -moveFromLocal  <localsrc><dst>

作用   和put命令类似,但是源文件localsrc拷贝之后自身被删除

19 、  moveToLocal

格式 ; hadoop  dfs  -moveToLocal 【-crc】 <src> <dst>

作用: 输出“Not implement yet ”  还未实现moveToLocal: Option '-moveToLocal' is not implemented yet.    2.6.4结果

20.mv

格式  : hadoop  dfs -mv URI 【URI。。。】  <dest>

作用: 将文件从原路径移动到目标路径(移动之后文件删除)。目标路径为目录的情况下,源路径可以有多个。跨文件系统的移动(从本地到HDFS或相反是不允许的)

21、put

格式   :  bin/hadoop dfs -put <localsrc >  ... <dst>

作用 :  将单个的源文件src或者多个源文件srcs从本地文件系统拷贝到目标文件系统中(<dst>对应的路径)。也可以从标准输入中读取输入,写入目标文件系统中

 bin/hadoop dfs -put ~/Downloads/test/a.txt file:///home/hadoopuser1/Downloads/a.txt                        ok

 bin/hadoop dfs -put ~/Downloads/test/a.txt  ~/Downloads/a.txt                                                          不行

 bin/hadoop dfs -put - hdfs://master:9000/test/input/a.txt                                                yEs

bin/hadoop dfs -put   file:///home/hadoopuser1/Downloads/a.txt                                   NO

22、rm

格式: hadoop dfs -rm  【-skipTrash】 URI 【URI 。。。】

作用:   删除参数指定的文件,参数可以有多个。   此命令只删除文件和非空目录。

如果指定-skipTrash选项,那么在回收站可用的情况下,该选项将跳过回收站而直接删除文件;

否则,在回收站可用时,在HDFS Shell 中执行此命令,会将文件暂时放到回收站中。这一选项在删除超过容量限制的目录中的文件是很有用


23、rmr

格式:   hadoop dfs -rmr 【-skipTrash】 URI 【URI  。。。】

作用:   删除操作的递归版本,即递归的删除所有子目录下的文件。

24  、 setrep

格式;   hadoop dfs -setrep 【-R]   <path>

作用:  改变一个文件在HDFS总的副本个数。使用-R选项可以对一个目录下的所有目录+文件递归执行改变副本个数的操作

hadoop dfs  -setrep -w 3 -R /user/hadoop/dir1

25、 stat

格式;   hadoop dfs -stat 【format】 URI  【URI...】

作用: 返回对应路径的状态信息。可以通过与C语言中的printf类似的格式化字符串定制输出格式,这里支持的格式字符有:

%b             文件大小

%o            Block大小

%n             文件名

%r              副本个数

%y或%Y        最后一次修改日期和时间

默认情况下输出最后一次修改日期和时间


26、tail

格式 :  hadoop dfs -tail 【-f】 URI

作用;  在标准输出中显示文件末尾的1KB数据。   -f   的用法与Unix类似,也就是说当文件尾部添加了新的数据或者作出了修改时,在标准输出中也会刷新显示


27、 test

格式:    hadoop  dfs  -test  -【ezd】 URI

作用:  判断文件信息

选项含义:

-e:  检查文件是否存在,如果存在返回0

-z : 检查文件大小是否为0 , 是的话返回  0

-d  : 检查这一路经是否为目录,是的话返回 0

如果返回0 则不输出,否则会输出响应的信息。


28、 text 

格式 : hadoop  dfs -text <src>

作用:  将文本文件或者某些格式的非文本文件通过文本格式输出。允许的格式有zip和TextRecordInputStream

29、 touchz

格式: hadoop dfs  -touchz   URI  【URI 。。。】

作用;  创建一个大小为 0 的文件



Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐