Hadoop之HDFS文件操作常有两种方式(转载)
摘要:Hadoop之HDFS文件操作常有两种方式,命令行方式和JavaAPI方式。本文介绍如何利用这两种方式对HDFS文件进行操作。
关键词:HDFS文件 命令行 Java API
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
显示结果如图1所示。

图1 hadoop 中 ls命令Demo
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
部分显示结果如图2所示

图2 hadoop中cat命令Demo
另外,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
关于hadoop命令ls的描述如图3所示。

图3 Hadoop命令ls的介绍
Resource:
1 http://www.wangluqing.com/2014/03/hadoop-hdfs-fileoperation/
2 Hadoop in Action http://www.manning.com/lam/
Hadoop删除文件夹 newout0530
download hadoop dfs文件到本地
原文链接
http://blog.csdn.net/wangloveall/article/details/28578393
Hadoop之HDFS文件操作常有两种方式(转载)的更多相关文章
- Hadoop之HDFS文件操作
摘要:Hadoop之HDFS文件操作常有两种方式.命令行方式和JavaAPI方式.本文介绍怎样利用这两种方式对HDFS文件进行操作. 关键词:HDFS文件 命令行 Java API HD ...
- curl文件上传有两种方式,一种是post_fileds,一种是infile
curl文件上传有两种方式,一种是POSTFIELDS,一种是INFILE,POSTFIELDS传递@实际地址,INFILE传递文件流句柄! );curl_setopt($ch, CURLOPT_PO ...
- Android开发之使用sqlite3工具操作数据库的两种方式
使用 sqlite3 工具操作数据库的两种方式 请尊重他人的劳动成果,转载请注明出处:Android开发之使用sqlite3工具操作数据库的两种方式 http://blog.csdn.net/feng ...
- flask 操作mysql的两种方式-sqlalchemy操作
flask 操作mysql的两种方式-sqlalchemy操作 二.ORM sqlalchemy操作 #coding=utf-8 # model.py from app import db class ...
- flask 操作mysql的两种方式-sql操作
flask 操作mysql的两种方式-sql操作 一.用常规的sql语句操作 # coding=utf-8 # model.py import MySQLdb def get_conn(): conn ...
- c#操作json的两种方式
总结一下C#操作json的两种方式,都是将对象和json格式相转. 1.JavaScriptSerializer,继承自System.Web.Script.Serialization private ...
- javascript总结40:DOM中操作样式的两种方式
1 DOM中操作样式的两种方式 1 通过元素的style属性 注意: 通过style属性设置样式时,css中要写单位的属性,在js代码中也要加单位 //html <div id="bo ...
- hadoop的hdfs文件操作实现上传文件到hdfs
这篇文章主要介绍了使用hadoop的API对HDFS上的文件访问,其中包括上传文件到HDFS上.从HDFS上下载文件和删除HDFS上的文件,需要的朋友可以参考下hdfs文件操作操作示例,包括上传文件到 ...
- pb对Web Service的操作可使用两种方式实现
从PB8.0/9.0开始,就已经提供Web Service Proxy功能,能够直接进行相关程序的编写. 但是,部分老项目使用PB6.5开发 研究后发现,其实PB6.5要操作Web Service也挺 ...
随机推荐
- IE中使用jquery的fadeIn()失效的问题
在自己写的一个轮播组件中遇到一个问题,使用jquery的fadeIn动画时,在IE11中表现不正常,没有渐入的效果. 1.HTML结构 <div class="mainpage-sli ...
- 【faster-rcnn】训练自己的数据集时的坑
既然faster-rcnn原版发表时候是matlab版代码,那就用matlab版代码吧!不过遇到的坑挺多的,不知道python版会不会好一点. ======= update ========= 总体上 ...
- SQLServer2012自增列值跳跃的问题
2012引入的新特性,重启之后会出现值跳跃的问题,如: 解决的方案: 1.使用序列(Sequence),2012引入的和Oracle一样的特性. 2.更改SQLServer启动服务的启动参数,增加[- ...
- Visual Studio 2015出现Cannot find one or more components. Please reinstall the application.的问题解决
cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE devenv.exe /resetuserdata devenv. ...
- Qt出现cannot find -IGL错误
Solution: sudo apt-get install build-essential sudo apt-get install libgl1-mesa-dev
- html内容写入到文件中的时候出现‘TypeError: expected a character buffer object’错误
代码如下: with open('ryf.md', 'a') as f: f.write(content) # content是html内容 原因是写入文件要求写入内容是str,直接转换成str即可, ...
- C#调用c++的dll报错:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏“
一:c++代码内部报错引起.可能是空指针或者其他. 二:需要从c#代码调试进入c++代码.可以吧c++的dll和pdb拷入工程项目的debug目录下面. 三:我发现的错误时在C++内部声明啦全局变量, ...
- php代码加密
<?php function encode_file_contents($filename) { $type=strtolower(substr(strrchr($filename,'.'),1 ...
- 日志模块logging使用心得
在应用程序使用中,日志输出对应用维护人员.开发人员判断程序的问题起重要作用. 那么在python中如何定义程序的日志输出? 推荐使用日志模块logging 需求:实现日志内容输出在文件中和控制器中 i ...
- mysql数据库中标的key的含义
四种Key: Primary Key, Unique Key, Key 和 Foreign Key. 1.如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非 ...