赞
踩
虚拟机HDFS为开源Hadoop平台中使用最为频繁的一个文件系统,能够实现海量数据的存储以及高吞吐的数据读写,此实验指导用户如何通过HDFS提供的命令行客户端实现对HDFS的常用操作,如文件的校验,文件的创建,上传,下载,删除,复制,移动,重命名,权限更改,文件查看等操作。做之前必须已经在虚拟机搭建好Hadoop环境。
###1.获取HDFS命令帮助
初次使用时,如果不知道如何使用HDFS命令,可获取HDFS命令帮助,直接在shell中输入hdfs然后回车,就会显示相应帮助信息,如下图所示,图中显示的命令都是基本都是HDFS的管理命令。
[hadoop@master hadoop-2.7.1]$ hdfs
classpath命令使用,classpath可打印出当前hdfs的classpath信息。
[hadoop@master hadoop-2.7.1]$ hdfs classpath
sck命令使用,fsck为文件系统校验命令,有许多选项,下面介绍并演示一些常用选项的使用。从本地文件系统put一个文件到HDFS,然后在使用fsck指令对文件进行校验。详细操作如下所示。
[hadoop@master local]$ cd /opt/module/hadoop-2.7.1/
[hadoop@master hadoop-2.7.1]$ echo ‘Hello World!’ > test
[hadoop@master hadoop-2.7.1]$ hdfs dfs -put test /user/
[hadoop@master hadoop-2.7.1]$ hdfs fsck /user/test
校验并删除损坏的文件,详细操作如下图所示
[hadoop@master hadoop-2.7.1]$ hdfs fsck /user/test -delete
在对指定的目录或文件进行校验时,显示出对应文件,详细操作如下图所示
[hadoop@master hadoop-2.7.1]$ touch test1
[hadoop@master hadoop-2.7.1]$ hdfs dfs -put test1 /user/
[hadoop@master hadoop-2.7.1]$ hdfs fsck /user/test1 -files
在对指定文件或目录校验时,显示文件的block信息,详细操作如下图所示
[hadoop@master hadoop-2.7.1]$ hdfs fsck /user/test -files -blocks
在对指定文件或目录校验时,显示文件block和block的location信息,详细操作如下图所示
记录显示的blockId例如“blk_1073741826”,在接下来的步骤中需要用到。注意blockId是blk_后面的一个数字字符串
[hadoop@master hadoop-2.7.1]$ hdfs fsck /user -files -blocks -locations
在对指定的文件或目录校验时,显示block信息和block所在datanode在网络拓扑中的位置信息,详细操作如下图所示
[hadoop@master hadoop-2.7.1]$ hdfs fsck /user/test -files -blocks -racks
查看指定文件或目录的数据存储策略信息,详细操作如下图所示
[hadoop@master hadoop-2.7.1]$ hdfs fsck /user/test -storagepolicies
对指定的block进行校验,详细操作如下图所示
执行命令时,请将blkId替换为真实的blockId(请参照"2.6 block和block的location信息" 步骤的提示获取blockId,blockId的格式为blk+数字,数字后面没有下划线,例如:blk_1073741826)
[hadoop@master hadoop-2.7.1]$ hdfs fsck -blockId blk_1073741826
dfs 命令的使用。dfs命令是在HDFS中最为常用的命令,它有许多选项,文件的基本操作都是通过执行dfs加不同的选项实现的,如文件的读、写、删除、等操作,都可以使用dfs命令来实现。常用选项如下:
ls选项可查看指定文件的详细信息,详细操作如下图所示
[hadoop@master hadoop-2.7.1]$ hdfs dfs -ls /user/test1
cat选项可查看指定文件的文件内容,详细操作如下图所示
[hadoop@master hadoop-2.7.1]$ hdfs dfs -cat /user/test | head -n 10
checksum选项能够查看指定文件的校验和,详细操作如下图所示
[hadoop@master hadoop-2.7.1]$ hdfs dfs -checksum /user/test
df可查看当前文件系统的已用空间大小和未用空间大小,详细操作如下图所示
[hadoop@master hadoop-2.7.1]$ hdfs dfs -df
[hadoop@master hadoop-2.7.1]$ hdfs dfs -du /user
[hadoop@master hadoop-2.7.1]$ hdfs dfs -du -h /user
[hadoop@master hadoop-2.7.1]$ hdfs dfs -du -s /user
appendToFile选项可将本地指定的文件内容追加到hdfs指定文件,详细操作如下图所示
[hadoop@master hadoop-2.7.1]$ hdfs dfs -appendToFile test /user/test
[hadoop@master hadoop-2.7.1]$ hdfs dfs -cat /user/test
put选项可将指定本地文件写入到HDFS的指定位置,详细操作如下图所示
[hadoop@master hadoop-2.7.1]$ hdfs dfs -ls /user/
[hadoop@master hadoop-2.7.1]$ touch test2
[hadoop@master hadoop-2.7.1]$ hdfs dfs -put test2 /user/
[hadoop@master hadoop-2.7.1]$ hdfs dfs -ls /user/
get选项可将HDFS上指定的文件读取并写入到本地指定的目录。详细操作如下图所示
[hadoop@master hadoop-2.7.1]$ rm test2
[hadoop@master hadoop-2.7.1]$ ls
[hadoop@master hadoop-2.7.1]$ hdfs dfs -get /user/test2
[hadoop@master hadoop-2.7.1]$ ls
mkdir选项可在HDFS的指定位置创建指定名称的目录。详细操作如下图所示
[hadoop@master hadoop-2.7.1]$ hdfs dfs -mkdir /user/huawei
[hadoop@master hadoop-2.7.1]$ hdfs dfs -ls /user
[hadoop@master hadoop-2.7.1]$ hdfs dfs -touchz /user/huawei/taikelab
[hadoop@master hadoop-2.7.1]$ hdfs dfs -ls /user/huawei
mv选项有两个作用,一个是将在HDFS中的一个指定文件或目录重命名为新的名称,另外一个作用是将HDFS中一个指定的文件或目录移动到一个新的位置
[hadoop@master hadoop-2.7.1]$ hdfs dfs -ls /user/huawei
[hadoop@master hadoop-2.7.1]$ hdfs dfs -mv /user/test /user/huawei/
[hadoop@master hadoop-2.7.1]$ hdfs dfs -ls /user/huawei
[hadoop@master hadoop-2.7.1]$ hdfs dfs -ls /user/
cp选项可将在HDFS中指定的文件复制出一个副本。详细操作如下图所示
[hadoop@master hadoop-2.7.1]$ hdfs dfs -cp /user/huawei/test /user/taike/
[hadoop@master hadoop-2.7.1]$ hdfs dfs -ls /user/taike/
rm选项可删除在HDFS指定为文件或目录(在删除目录的时候,必须保证目录为空,否则需要加-r选项无法删除),详 细操作如下图所示
[hadoop@master hadoop-2.7.1]$ hdfs dfs -rm /user/huawei/test
[hadoop@master hadoop-2.7.1]$ hdfs dfs -rm -r /user/huawei/
[hadoop@master hadoop-2.7.1]$ hdfs dfs -ls /user/
chown选项可改变HDFS上指定文件或目录的数主与属组(需要管理员才能够执行此命令)
[hadoop@master hadoop-2.7.1]$ hdfs dfs -chown hadoop:hadoop /user/taike
[hadoop@master hadoop-2.7.1]$ hdfs dfs -ls /user
chmod选项可改变HDFS上指定文件或目录的权限,详细操作下图所示
[hadoop@master hadoop-2.7.1]$ hdfs dfs -ls /user
[hadoop@master hadoop-2.7.1]$ hdfs dfs -chmod 777 /user/test1
[hadoop@master hadoop-2.7.1]$ hdfs dfs -ls /user/test1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。