大数据学习篇:hadoop深入浅出系列之HDFS(四)——shell操作

上一篇我们讲了HDFS的读文件和写文件,今天我们来讲HDFS的shell操作。

首先,我们进入到hadoop文件夹下,然后输入bin/hdfs命令,我们能发现有很多提示信息,Usage: hdfs [--config confdir] COMMAND where COMMAND is one of 这句话的大致意思就是说hdfs后面要跟命令,我们之前格式化namenode执行的命令是bin/hdfs namenode -format,下面有

-------------------------------------------------------

-------------------------------------------------------

当我们输入bin/hdfs dfs的时候,我们发现后面可以跟很多命令,懂shell的话,一眼就看出来这些跟shell命令基本一致

-------------------------------------------------------

下面我们说一些常用的关于hdfs的shell操作

一)ls命令

bin/hdfs dfs -ls hdfs://192.168.1.91:9000/

看到这个hdfs://192.168.1.91:9000/是不是似曾相识呢,当然了,这是我们安装hadoop的时候配置的。注意(刚安装hadoop这里面是没有文件的)

-------------------------------------------------------

-------------------------------------------------------

简单的说说d rwxr-xr-x 

d:表示文件夹   如果是文件这个地方就是 -

r:读权限,read---------数字4表示

w:写权限,write-----------数字2表示

r:可执行,excute-----------数字1表示

上面的总共有三组  rwx第一组是所有者,r-x第二组是组,r-x第三组是其他用户,数字表示755

  - root supergroup

- 表示副本数,因为是文件夹 所以没有副本  所以就是-

root 文件所有者

supergroup 组名

0 2015-09-24 18:39 hdfs://192.168.1.91:9000/ceshi

0表示文件大小

2015-09-24 18:39 文件创建日期

hdfs://192.168.1.91:9000/ceshi 文件地址


现在我们想看ceshi文件下有什东西,我们使用如下命令

bin/hdfs dfs -ls hdfs://192.168.1.91:9000/ceshi

-------------------------------------------------------

-------------------------------------------------------

我们看到第一位是 -   证明这两个是个文件

大家有没有发现,要先进入一个文件夹下才能看里面的内容,那么我们是否可以既查看目录,也可以查看里面的文件

执行命令 bin/hdfs dfs -ls -help

-------------------------------------------------------

-------------------------------------------------------

原来后面能跟那么多参数啊,此处我们使用 -R,R表示递归,要注意,R要大写

bin/hdfs dfs -ls -R  hdfs://192.168.1.91:9000/  

-------------------------------------------------------

-------------------------------------------------------

有人会问了,后面跟个地址是不是太麻烦,如果要查的是本地的呢

bin/hdfs dfs -ls -R /   读出来的效果跟上面一样,这样看来命令能自动识别到对应位置

-------------------------------------------------------

-------------------------------------------------------

如果最后的/不加,就会获取到home目录下的文件


二)删除

bin/hdfs dfs -rm -R /ceshi,加R就是递归删除

-------------------------------------------------------

-------------------------------------------------------
这个时候我们再来查看,发现文件夹ceshi没有了
-------------------------------------------------------
-------------------------------------------------------

如果想删除名字比较相似的,可以用通配符,比如bin/hdfs dfs -rm -R /hhh*,删除所有hhh开头的文件名

三)新建
bin/hdfs dfs -mkdir  hdfs://192.168.1.91:9000/ceshi1
-------------------------------------------------------
-------------------------------------------------------

四)上传文件
bin/hdfs dfs -put NOTICE.txt /ceshi1
-------------------------------------------------------
-------------------------------------------------------
通过ls命令,我们发现上传成功了
-------------------------------------------------------
-------------------------------------------------------

五)下载
既然有上传,那么肯定少不了下载,命令如下
bin/hdfs dfs -get /ceshi1
-------------------------------------------------------
bin/hdfs dfs -get /ceshi1
-------------------------------------------------------
-------------------------------------------------------

这样ceshi1就被我们下载到本地了,如果下载到指定的目录,bin/hdfs dfs -get /ceshi1 /A,其中A是本地位置

六)查看文件内容
  bin/hdfs dfs -text  /ceshi1/NOTICE.txt
-------------------------------------------------------
-------------------------------------------------------
问题来了,如果文件内容比较多,有很多行,展示岂不是很变态,可以使用管道more
-------------------------------------------------------
-------------------------------------------------------
如果想看文件靠后的内容,可以使用tail
-------------------------------------------------------
-------------------------------------------------------

七)追加内容
我们从本地上传一个文件hello,里面内容是hello you  hello me,然后上传到hdfs上
上传之后先查看文件内容,然后再上传一次hello文件,但是使用的是追加的方式 :
bin/hdfs dfs -appendToFile hello  /ceshi1/hello
-------------------------------------------------------
-------------------------------------------------------
效果真是立竿见影啊
要注意啦,如果先把文件插到中间或者其他位置,shell是完成不了的哦。


还有一些其他的命令就不说了,还有cat(查看)chmod(修改权限)copy(复制) mv(移动)getfacl(显示权限信息)等等。



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值