HDFS|Shell操作命令

Posted Python与算法社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS|Shell操作命令相关的知识,希望对你有一定的参考价值。

01

HDFS中常用的命令


HDFS文件操作常有两种方式;

  1. 命令行方式,即Hadoop提供了一套与Linux文件命令类似的命令行工具;

  2. JavaAPI,即利用Hadoop的Java库,采用编程的方式操作HDFS的文件。


Hadoop最常用的文件操作命令,包括添加文件和目录、获取文件、删除文件等。


看下Linux下的shell命令工具

HDFS命令基本格式:hadoop fs -cmd < args >

cmd是具体的文件操作命令,<args>是一组数目可变的参数。



02

添加文件和目录


HDFS有一个默认工作目录/usr/$USER,其中$USER是你的登录用户名,作者的用户名是root。该目录不能自动创建,需要执行 mkdir 命令创建。


hadoop fs -mkdir  /usr/root


使用Hadoop的命令 put 将本地文件 README.txt 发送到HDFS。


hadoop fs -put README.txt  .


注意上面这个命令最后一个参数是句点(.),这意味着把本地文件放入到默认的工作目录,该命令等价于:


hadoop fs -put README.txt     /user/root


使用Hadoop的 ls 命令,即


hadoop fs -ls

列出hdfs文件系统根目录下的目录和文件


hadoop fs -ls -R /

列出hdfs文件系统所有的目录和文件



03

获取文件README.txt

获取文件包含两层意思:

  1. HDFS从本地文件中获取文件README.txt

  2. 本地文件从HDFS中获取文件README.txt,可以使用Hadoop的 get 命令。例如若本地文件没有README.txt文件(即文件不在当前的host中),需要从HDFS中取回,可以执行如下命令。


hadoop fs -get  README.txt .

或者

hadoop fs -get README.txt  /usr/root/README.txt



04

删除文件README.txt


Hadoop删除文件命令为 rm,这个和linux的命令 rm一致。例如要删除从本地文件上传的 README.txt,可以执行如下命令。

hadoop  fs -rm  README.txt




05

检索文件README.txt

检索文件即查阅HDFS中的文件内容,可以使用hadoop中的cat命令。例如要查阅README.txt的内容,可以执行如下命令。

hadoop fs -cat README.txt


另外,hadoop的 cat 命令的输出也可以使用管道传递给Unix 命令的head

hadoop fs -cat README.txt | head


Hadoop也支持tail命令查看最后一千字节。例如要查阅README.txt最后一千个字节,可以执行如下命令。

hadoop fs -tail README.txt



06

help

要了解 ls 命令,可执行如下命令。

hadoop  fs -help ls



07

命令索引


选项名称 使用格式 含义
-ls -ls <路径> 查看指定路径的当前目录结构
-lsr -lsr <路径> 递归查看指定路径的目录结构
-du -du <路径> 统计目录下个文件大小
-dus -dus <路径> 汇总统计目录下文件(夹)大小
-count -count [-q] <路径> 统计文件(夹)数量
-mv -mv <源路径> <目的路径> 移动
-cp -cp <源路径> <目的路径> 复制
-rm -rm [-skipTrash] <路径> 删除文件/空白文件夹
-rmr -rmr [-skipTrash] <路径> 递归删除
-put -put <多个linux上的文件> <hdfs路径> 上传文件
-copyFromLocal -copyFromLocal <多个linux上的文件> <hdfs路径> 从本地复制
-moveFromLocal -moveFromLocal <多个linux上的文件> <hdfs路径> 从本地移动
-getmerge -getmerge <源路径> <linux路径> 合并到本地
-cat -cat <hdfs路径> 查看文件内容
-text -text <hdfs路径> 查看文件内容
-copyToLocal -copyToLocal [-ignoreCrc] [-crc] [hdfs源路径] [linux目的路径] 从本地复制
-moveToLocal -moveToLocal [-crc] <hdfs源路径> <linux目的路径> 从本地移动
-mkdir -mkdir <hdfs路径> 创建空白文件夹
-setrep -setrep [-R] [-w] <副本数> <路径> 修改副本数量
-touchz -touchz <文件路径> 创建空白文件
-stat -stat [format] <路径> 显示文件统计信息
-tail -tail [-f] <文件> 查看文件尾部信息
-chmod -chmod [-R] <权限模式> [路径] 修改权限
-chown -chown [-R] [属主][:[属组]] 路径 修改属主
-chgrp -chgrp [-R] 属组名称 路径 修改属组
-help -help [命令选项] 帮助



更多shell命令,请参考官方文档:

http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html

以上是关于HDFS|Shell操作命令的主要内容,如果未能解决你的问题,请参考以下文章

HDFS的shell命令简介

HDFS的shell命令简介

HDFS中的shell操作

HDFS的fs shell操作命令

大数据讲课笔记4.3 HDFS的shell操作

实验二 HDFS的Shell命令操作,和HDFS的API操作