HDFS是一种分布式文件系统,为MapReduce这种框架下的海量数据分布式处理而设计。

Hadoop之HDFS文件操作常有两种方式,一种是命令行方式,即Hadoop提供了一套与Linux文件命令类似的命令行工具;另一种是JavaAPI,即利用Hadoop的Java库,采用编程的方式操作HDFS的文件。

方式一:命令行方式

Hadoop文件操作命令形式为

hadoop fs -cmd <args>

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

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

1.添加文件和目录

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

2.获取文件

获取文件包含两层意思,一是HDFS从本地文件中获取文件,即前面介绍的添加文件;二是本地文件从HDFS中获取文件,可以使用Hadoop的get命令。例如若本地文件没有README.txt文件,需要从HDFS中取回,可以执行如下命令。

hadoop fs -get  README.txt  .

或者

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

3.删除文件

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

hadoop  fs -rm  README.txt

4.检索文件

检索文件即查阅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

5.查阅帮助

查阅Hadoop命令帮助,可以让我们很好地掌握和使用Hadoop的命令。我们可以执行hadoop fs 获取所用版本Hadoop的一个完整命令类别,也可以使用help来显示某个具体命令的用法及简短描述。

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

hadoop  fs -help ls

以上内容参考自http://blog.csdn.net/wangloveall/article/details/28578393,感谢博主!

HDFS文件操作(命令行)的更多相关文章

  1. Hadoop HDFS的shell(命令行客户端)操作实例

    HDFS的shell(命令行客户端)操作实例 3.2 常用命令参数介绍 -help 功能:输出这个命令参数手册 -ls                  功能:显示目录信息 示例: hadoop fs ...

  2. Hadoop之HDFS文件操作常有两种方式(转载)

    摘要:Hadoop之HDFS文件操作常有两种方式,命令行方式和JavaAPI方式.本文介绍如何利用这两种方式对HDFS文件进行操作. 关键词:HDFS文件    命令行     Java API HD ...

  3. Hadoop之HDFS文件操作

    摘要:Hadoop之HDFS文件操作常有两种方式.命令行方式和JavaAPI方式.本文介绍怎样利用这两种方式对HDFS文件进行操作. 关键词:HDFS文件    命令行     Java API HD ...

  4. HDFS中的命令行

    HDFS中的命令行 本文介绍了HDFS以命令行执行的时候.几个经常使用的命令行的作用和怎样使用~ 1. fs fs是启动命令行动作,该命令用于提供一系列子命令. 使用形式为hadoop fs –cmd ...

  5. Linux查找并删除重复文件的命令行fdupes工具,dupeGuru图形工具

    查了几十个网页,找到这个接近满意的解决方案http://unix.stackexchange.com/questions/146197/fdupes-delete-files-aft... 不过正则里 ...

  6. 实战Git命令(界面操作+命令行)

    先说明下公司的发版步骤,当需要开发一个新的功能,先从master分支中拉出一个自己的分支a(假设分支为a),在a分支开发功能完后,需要切换到dev分支,然后把自己的分支a合到dev分支,部署测试环境让 ...

  7. hadoop的hdfs文件操作实现上传文件到hdfs

    这篇文章主要介绍了使用hadoop的API对HDFS上的文件访问,其中包括上传文件到HDFS上.从HDFS上下载文件和删除HDFS上的文件,需要的朋友可以参考下hdfs文件操作操作示例,包括上传文件到 ...

  8. gplaycli—— 用于从 GooglePlayStore 中下载和管理 Apk 文件的命令行工具

    gplaycli-- 用于从 GooglePlayStore 中下载和管理 Apk 文件的命令行工具 这个 GooglePlay市场 中 https://play.google.com/store/a ...

  9. JAVA API 实现hdfs文件操作

    java api 实现hdfs 文件操作会出现错误提示: Permission denied: user=hp, access=WRITE, inode="/":hdfs:supe ...

随机推荐

  1. P1110 [ZJOI2007]报表统计 (multiset)

    [题目链接] https://www.luogu.org/problemnew/show/P1110 有以下三种操作: INSERT i k:在原数列的第i个元素后面添加一个新元素k:如果原数列的第i ...

  2. 江西财经大学第一届程序设计竞赛 A

    链接:https://www.nowcoder.com/acm/contest/115/A来源:牛客网 题目描述 "挤需体验五番钟,里造会挨上这款游戏!" 怎么可能嘛!当我是傻子吗 ...

  3. 查询多列得到map与查询得到po对象

    import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; i ...

  4. Java——flush()方法

    Java在使用流时,缓冲区是一种发送数据的高效方法,但当溢出缓冲区的部分需要用flush()方法强制将数据发送出去,不必等到缓冲区再次装满,尤其是在数据量特别小的情况下,如果不使用此方法,很容易出现流 ...

  5. Windows下 virtualenv 使用

    Windows下 virtualenv 使用 win python virtualenv 首先在电脑上安装两个不同版本的python mkvirtualenv --python C:\Python34 ...

  6. NETCORE 之 openSUSE docker 安装

    openSUSE docker 安装https://www.jianshu.com/p/c725a06447d5 http://www.importnew.com/24684.htmlSuse安装Do ...

  7. oracle 用mybatis生成主键

    oracle主键是不能像mysql一样自动管理的,需要自己手动管理,先生成,再插入. <selectKey keyProperty="id" resultType=" ...

  8. Mybatis学习笔记7 - select查询的相关属性使用

    1.当接口的返回类型是集合List时,resultType要写集合中元素的类型 示例如下: 接口定义: package com.mybatis.dao; import com.mybatis.bean ...

  9. 晶振电路的设计-AN2867学习

    一 石英晶体的等效电路.带宽: FS~FA之间就是并联带宽,越窄稳定性越好.其中Fs.Fa为Lm/Rm/Cm电抗分别为0和无穷大时的谐振频率).Fp为工作频率(通过调整负载电容CL来达到中心频率) 起 ...

  10. 摄像机模型 (Camera Model)

    摄像机通过成像透镜将三维场景投影到摄像机二维像平面上,这个投影可用成像变换描述,即摄像机成像模型.摄像机成像模型有不同描述方式,本节首先介绍机器视觉中的常用坐标系,然后介绍摄像机的线性模型和非线性模型 ...