设为首页 收藏本站
查看: 813|回复: 0

[经验分享] Hadoop in Action 第三章(文件操作命令部分)

[复制链接]

尚未签到

发表于 2015-7-15 10:30:13 | 显示全部楼层 |阅读模式
  Components of Hadoop
  在上一章节我们了解了如何安装及配置Hadoop。我们了解了不同节点的作用以及这些节点是如何工作的,还了解了如何配置这些节点。现在我们可以运行Hadoop了,现在我们从程序的角度了解一下Hadoop框架。
  首先我们讲解HDFS,HDFS用来存储你的Hadoop应用的各种数据。之后我们讲解MapReduce框架的细节。第一章时,我们已经看到了MapReduce程序,但是我们只是停留在概念层。在这一章我们将进入Java类和方法层面,当然还包括如何部署。我们还会知道如何使用不同数据格式进行读写操作。
  Working with files in HDFS
  你可以将100TB的数据集作为一个单独的数据存储在HDFS中,有时仅仅这一点就足以强过其他文件系统。我们在第二章讨论了HDFS的复制机制。HDFS隐藏了这些底层的处理机制,让开发者感觉只是在处理某个单独的文件。
  HDFS并不是Unix的原生的文件系统,所以标准的Unix文件工具,比如ls和cp不可用,并且也无法使用标准的Unix文件IO操作。但是,Hadoop提供一系列与Unix非常相似的命令和工具。下一节,我们将讨论这些Hadoop文件操作shell命令。之后,我们将看到Hadoop HDFS Java API
  基本的文件操作命令:
  hadoop fs -cmd
  其中cmd指具体的文件操作命令。args是命令参数。
  通常来讲cmd命令与Unix的命令相同。比如说,文件列表命令就是:
  hadoop fs -ls
  我们看一下常见的文件操作命令包括:
  1.新建文件及目录
  2.检索文件
  3.删除文件
  新建文件及目录:
  在运行Hadoop程序之前,我们需要将数据先放进HDFS。我们先假设已经格式化好了整个HDFS系统,并且运行了Hadoop程序。
  HDFS的默认工作路径是 /usr/$USER,这个$USER就是指的登陆名。但是这个目录并不会自动建立,所以我们需要使用mkdir命令手动建立这个目录。比如我的用户名是chuck。当然各位看官如果想自己试试,那要使用你自己的用户名。
  hadoop fs -mkdir /user/chuck
  Hadoop's mkdir 命令使用-p参数回自动创建父一级的目录。
  使用ls命令可以查看:
  hadoop fs -ls /
  这是你就会看到刚刚创建的文件目录的了。
  使用 hadoop fs -lsr / 还可以看到其子目录下的内容起作用与Unix下的ls -r效果相同。
  通过URI精确访问指定的目录  

  Hadoop 文件命令行可以让HDFS与本地文件系统交互。同时也可以与Amazon S3交互。一个
  URI 指向一个确定的文件或者目录。完整的URI格式为:scheme://authority/path。scheme
  类似于协议的意思。authority是指NameNode所在的服务器host。path是指文件或者路径的位置。  
  比如说,一个标准的伪分布式的HDFS运行在本机的9000端口。那么如果想要访问user/chuck目
  录下的example.txt文件。其URI就是hdfs://localhost:9000/user/chuck/example.txt。
  运行的命令就是 hadoop fs -cat hdfs://localhost:9000/user/chuck/example.txt。
  如你所见,大多数的设置下,URI中不需要指定scheme://authority。处理本地文件时,你可能
  更愿意使用Unix 命令而不是hadoop file 命令。 所以在本地文件与hdfs的拷贝过程中,
  在URI上即便不加file:scheme,put命令与get命令也会使用本地系统作为目的地或者数据源
  另外,如果你在Hadoop 的配置中配置了scheme://authority部分。那么在你的命令中就可以省略
  这个部分。比如:如果你的conf/hadoop-site.xml中配置如下:


fs.default.name
hdfs://localhost:9000
  在这个配置下,URI hdfs://localhost:9000/user/chuck/example.txt可以缩写为
  /user/chuck/example.txt
  此外,HDFS默认使用的目录为:/user/$USER 这个$USER就是你的登录用户名。如果你用chuck登录
  ,那么如果要访问的URI是 hdfs://localhost:9000/user/chuck/example.txt。你甚至可以缩写为
  example.txt。
  此时,你在用cat命令时,只用输入:

hadoop fs -cat example.txt  
  


RETRIEVING FILES(查看文件内容)  Hadoop的get命令用来hdfs文件系统中的文件拷贝到本地文件系统。如果我们想将example.txt文件
  拷贝到本地目录。使用如下命令:
  hadoop fs -get example.txt

这个命令将会把example.txt文件拷贝到本地的当前目录。  另外hadoop的cat命令可以允许我们查看文件中的内容。  

hadoop fs -cat example.txt  我们当然也可以使用Unix shell的管道方式链接另一个命令。

比如,如果一个文件很大,而这事你想快速的查看其中的内容,你可以使用hadoop 的cat命令的输出作为  Unix head命令的输入,比如:

hadoop fs -cat example.txt | head  目前,Hadoop本身也支持tail命令:

hadoop fs -tail example.txt

DELETING FILES(删除文件)
  ok,不废话,言简意该:如下

hadoop fs –rm example.txt

LOOKING UP HELP(查看帮助)

ok,不废话,言简意该:继续如下

hadoop fs –help ls

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-86858-1-1.html 上篇帖子: (一)hadoop系列之__XP环境下搭建linux虚拟机 下篇帖子: 用Hadoop搭建分布式存储和分布式运算集群(转)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表