xshell查看hdfs文件目录路径_hdfs的shell操作

5de35a9ec65f4b56cf92412f4731cc13.png

前言

我们安装好hadoop之后,该怎么用呢?这篇文章就是把常用的命令就行操作。需要知道的以一点就是,后面我写命令的时候会用hdfs dfs xx ,其实等同于 hadoop fs xx,选择自己喜欢的方式就好了。

另外需要读者需要了解的前提知识是,我的hadoop集群有三个节点,分别为node1,node2,node3。这三个节点在三台服务器上,我会使用ssh工具进行连接操作,在真实的环境中,服务器都是存放在某一个特定的地方的,不会直接进行操作,而是使用远程连接工具,当然了,能够看本文章的人,这些都是废话。

另外一点,本文中的命令可以在任意一个节点上尽心执行,当然了,我会使用node1节点进行执行,后面我也会演示在其他节点上进行执行,其实效果完全一样,读者完全不用纠结这个。

我使用的hadoop的版本是2.7.3

命令概览

有些人会问,你执行的这些命令,我该到哪里查看呢?是的,这是一个问题,授人以鱼不如授人以渔,我们都知道这句话。

要执行命令,首先我们得启动集群

start-all.sh

这个命令是启动集群的,但是要记得在主节点上启动,不要在从节点上启动。

这个命令在哪里呢?

在我们得hadoop源文件的

hadoop/sbin

在这个文件下面

f00f83df67949dcfa909c186da3ec912.png

可以看到,这里包括了所有的启动命令,包括启动hdfs,yarn的所有可执行文件。

一般我们直接用start-all.sh命令就可以了,直接启动所有的进程。

为什么呢?我们直接打开文件看一下都做了什么?

b4f4e90c04d558bbfcd6d08d126c5625.png

从图中我们看到,我们执行start-all.sh命令的时候,执行的依旧是启动start-dfs.sh和start-yarn.sh,所以我们就直接启动这个就可以了。

当然了,如果你执行发现找不到命令,那说明你没有配置环境变量,你可以参考hadoop配置环境变量的文章,本文就不介绍了,好了,现在我们启动了集群。

为了确保我们启动了集群,我们分别查看进行,

在node1上执行jps,如果看到以下就说明node1没有问题

ef4c3fc5edc812fe319ad1cd73fe91c2.png

接下来我们进行其他命令说明,我们在想其他的命令在哪里呢?

我们执行敲下面的命令

hdfs

fd0371c6b3c1704ff2d6ffe007e862e8.png

当我们不知道有哪些命令时候,就直接敲hdfs,会发现系统给你列出来了用法,是的,Linux上其他的软件你都可以这样子操作。

从图中我们看到有dfs命令,是的,这个是专门用来操作文件的,因为文件操作命令是最常用的,所以本文着重讲解文件操作命令

接下里,我们还不明白dfs命令是啥,我们就直接仿照上面的命令敲入

hdfs dfs

355fc97962c4fe905c584b3479b24866.png

会发现系统给我们列出来了所有的命令,接下来我们就看看没个命令都是啥吧。

查看文件

hdfs dfs -ls /

这是第一个命令,就是查看文件,我们知道hdfs是分布式文件存贮系统,他的主要作用就是进行文件操作,这个命令就会列出当前hdfs所存贮的文件,执行以下发现。

9692ce229e1bfd263e09112198e75149.png

我们看到有两个文件,一个是test ,一个是tmp,当然了,如果你之前从来没有上传过,是什么都不会显示的,随着后面你上传之后,再执行这个命令就可以发现有了。

那么问题来了,我们可以查看文件下面的所有文件吗?当然可以,执行下面的命令就可以了

hdfs dfs -ls -R /test

比如上面的命令就是我们想要看到test文件下面都有哪些文件,执行结果如下

ca5e694f10e212323562507776917179.png

我们可以看到test文件下面有output文件,output文件下面还有其他的文件。

当然了,如果文件下面有很多文件,如果全部显示出来可能会很多,我们就想test目录的下级目录有啥,你可以执行下面命令

 hdfs dfs -ls -h /test

21a2daade32a363e14eaca9f0357ff8e.png

于是,就只列出来了test下面的一级目录。

所以这个命令,就是 后面加上 想要访问的目录就可以了,注意,一切的操作都是以根目录为基础,比如我们执行下面的命令就是错误的

hdfs dfs -ls test #这是错误的命令

为啥呢?因为没有了根目录,会报错找不到文件

46f9fc30137561d6bd7d51cd02144973.png

一定要从 斜杠"/"开始逐级写目录。

除了命令的方式,还可以提供给大家一个web的访问方式

在浏览器输入主节点的IP加上端口号,例如我的IP是192.168.200.11

然后加上端口号50070,然后点击utilitie下面的Browse the file system 就可以了。

6941f8ef6d1f762cfbc5cd2515807d57.png

102b4608af219e51af6e8a44959d856a.png

从图中我们看到,和命令的方式是一样的,点击目录,还可以目录下面的文件。

创建文件

这个命令是创建文件

hdfs dfs -mkdir /abc

比如上面的命令就是,我们想要在根目录下面创建abc文件,就直接写就行了

然后我们用上面的查看文件命令查看一下

85fa81cc736015d59dae3a3d68f04faf.png

就会发现多了一个abc文件

那如果我们想同时创建多级目录呢,加上-p参数即可

hdfs dfs -mkdir -p /abc/mm/ff

比如上面的命令,我们想在abc下面同时创建mm文件,然后在mm文件下面创建ff文件

再用查看命令查看一下

3e8cf310e7526fac0b2cdf9c5f5472f1.png

会发现同时创建了。

上传文件

我们如果想把本地的文件上传到hdfs上改怎么操作呢

hdfs dfs -put words /abc

比如上面的命令,就是把我node1服务器上的文件words上传到hdfs的abc文件下,所以大家知道了,第一个文件目录是本地的,第二个是hdfs的目录,同样记得,hdfs的目录要从根目录开始往下写

f39e7a3802204fef773b3593e784b1e7.png

本地有一个words文件,然后执行上传命令

然后查看

414f572c1388b71364a8c57568516c5e.png

我们发现,我们得文件就有了。

然后上面我们介绍了查看文件,那如果我们想查看文件里面的内容,用下面的命令

hdfs dfs -cat /abc/words

上面的命令就是查看我们刚上传的words文件里面的内容

b2afac750ee52a5e26c6cd7ed3353093.png

可以看到打印出来了words里面的内容。

接下来我们有一个需求,如果我们想同时上传多个文件呢?

hdfs dfs -put abc1.txt abc2.txt /abc

比如上面的命令,我同时把abc1.txt 和abc2.txt上传到 /abc 下面取,我这就上传了两个文件,实际上,你想上传多少个文件,就直接就行了,hdfs会默认最后一个目录是hdfs需要上传到的目录

执行完,我们看一下

c2337b49f3088f4b81968e4bd219cc90.png

我们会发现两个文件同时被上传了.

文件下载

比如我们刚才在hdfs上面刚上传上去的words文件,我们想要把他下载到本地

hdfs dfs -get /abc/words /home/hadoop/zz

上面的命令就是把hdfs的abc目录下面的words文件下载到本地/home/hadoop/zz文件下面

那如果hdfs文件abc下面有两个文件分别为abc1.txt 和abc2.txt ,我们想同时下载两个文件,并且下载到本地的时候自动将两个文件合并

 hdfs dfs -getmerge /abc/abc1.txt /abc/abc2.txt /home/hadoop/abc3.txt

我们使用的命令是-getmerge ,然后跟上需要下载的文件,这里我指定了两个文件,时间可指定多个,只要是hdfs的上的文件就好了,他会默认最后一个目录为本地目录,然后我们指定下载的abc1.txt 和abc2.txt 下载完之后自动合并为abc3.txt

文件内容会合并哦!

移动文件

移动文件

我们把abc目录下面的abc1.txt移动到/abc/mm下面

hdfs dfs -mv /abc/abc1.txt /abc/mm

6098a07ca1d54ddbae849067be38526e.png

这个命令也可以当场改名字命令

比如我们把刚才移动的abc1.txt改个名字叫123.txt

hdfs dfs -mv /abc/mm/abc1.txt /abc/mm/123.txt

83253ac0264f8104c3a57c4a97d9c51f.png

复制命令

比如我们把刚才的/abc/mm/123.txt给复制到/abc下面

hdfs dfs -cp /abc/mm/123.txt /abc

5a7e4255ca6fdf39e2b46a67772f2632.png

删除命令

我们把刚才/abc目录下面的123.txt文件给删除掉

hdfs dfs -rm -r /abc/123.txt

d90924b23b6bf608f7a320f6ce49c416.png

会发现文件已经被删除掉了。

友情提示:本命令慎用,不然会删除到跑路,哈哈~

总结

上面的命令就是最常使用的命令了,其他的命令,有兴趣的可以自行试一下,基本上不会用。

命令列表

hdfs dfs -tail -f # 监听文件

hdfs dfs chmod 文件权限 文件 # 修改文件的权限 

以上就是常用命令的解析了,欢迎关注本专栏,共同努力。

  • 16
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值