HDFS命令行

HDFS命令行概述

在Linux终端窗口,可以利用Shell命令对Hadoop进行操作。利用这些命令可以完成HDFS中文件的上传、下载、移动、删除等操作。

命令行的接口如下:

hadoop fs -命令 文件路径

若没有配置Hadoop的系统PATH变量,则需要进入到Hadoop的安装目录下/bin目录中执行。

在使用HDFS命令操作文件时,HDFS中的文件或目录的路径必须写绝对路径,而本地系统的文件或目录可以写绝对路径。

输入命令hadoop fs或者hdfs dfs可以列出HDFS支持的命令列表。

所有命令当中的hadoop fs 为操作HDFS系统的命令前缀,不可省略,但是可以使用hdfs dfs 代替。

常用命令

ls

使用ls命令可以查看HDFS系统中的目录和文件。例如查看HDFS文件系统根目录下的目录和文件。

hadoop fs -ls /

递归列出HDFS文件系统根目录下的所有目录和文件。

hadoop fs -ls -R /

put

使用put命令可以将本地文件上传到HDFS系统中。例如,将本地目前目录文件a.txt上传到HDFS文件系统根目录的input文件夹中。

hadoop fs -put a.txt /input/

moveFromLocal

使用moveFromLocal命令可以将本地文件移动到HDFS文件系统中,可以一次移动多个文件。与put类似,不同的是,该命令执行后原文件将被删除。例如,将本地文件a.txt移动到HDFS文件系统根目录的input文件夹中。

hadoop fs -moveFromLocal a.txt /input/

get

使用get命令可以将HDFS文件系统中的文件下载到本地,下载的文件名不能与本地文件名相同,否则会提示文件已经存在。下载多个文件时候,要将本地路径设为文件夹。例如,将HDFS根目录的input文件夹中的a.txt下载到本地当前目录。

hadoop fs -get /input/a.txt a.txt

将HDFS根目录的input文件夹下载本地当前目录。

hadoop fs -get /input/ ./

要确保用户对当前目录有可写权限。

rm

使用rm命令可以删除HDFS系统中的文件或文件夹,每次可以删除多个文件或目录,例如,删除HDFS根目录的input文件夹中的文件a.txt。

hadoop fs -rm /input/a.txt

递归删除HDFS根目录的input文件夹以及文件夹下的所有内容

hadoop fs -rm -r /input/

mkdir

使用mkdir命令可以在HDFS系统中创建文件夹。例如,在HDFS根目录下创建文件夹input

hadoop fs -mkdir /input/

使用-p参数创建多级目录,如果父目录不存在,则自动创建父目录。

hadoop fs -mkdir -p /input/file/

cp

使用cp命令可以复制HDFS中的文件到另一个文件,相当于原文件重命名并且保存,并且原文件仍然存在。例如,将/input/a.txt复制到b.txt,并保留a.txt文件。

hadoop fs -cp /input/a.txt /input/b.txt

mv

使用mv命令可以移动HDFS文件到另一个文件,相当于给文件重命名并且保存,但原文件被删除。例如,将/input/a.txt移动到/input/b.txt,不保留a.txt文件。

hadoop fs -mv /input/a.txt /input/b.txt

appendToFile

使用appendToFile命令可以将单个或多个文件的内容从本地系统追加到HDFS文件系统的文件中。例如,将本地当前目录的文件a.txt的内容追加到HDFS系统中的/input/b.txt文件中。

hadoop fs -appendToFile a.txt /input/b.txt

若需要一次追加多个本地系统文件的内容,则需要多个文件用空格隔开,例如,将本地文件a.txt和b.txt的内容追加到HDFS系统中的/input/c.txt文件中。

hadoop fs -appendToFile a.txt b.txt /input/c.txt

cat

使用cat命令可以查看并且输出HDFS系统中某个文件的所有内容。例如,查看HDFS系统中文件/input/a.txt的所有内容。

hadoop fs -cat /input/a.txt

也可以同时查看并输出HDFS系统中多个文件的所有内容,结果会将多个文件的内容按顺序合并并输出。例如,查看HDFS系统中的文件/input/a.txt和文件/input/b.txt的所有内容。

hadoop fs -cat /input/a.txt /input/b.txt

tail

使用tail命令可以查看并输出HDFS系统中某个文件的末尾 1kb 的数据。例如,查看HDFS系统中文件/input/a.txt末尾1kb的内容。

hadoop fs -tail /input/a.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值