hadoop自学日记--3.hadoop hdfs操作

hadoop自学日记–3.hadoop hdfs操作

搭建环境

本人使用简单的windows 7笔记本,使用VirtualBox创建Centos虚拟机来安装Hadoop

VirtualBox:6.0.8 r130520 (Qt5.6.2)
CentOS:CentOS Linux release 7.6.1810 (Core)
jdk:1.8.0_202
hadoop:2.6.5

集群环境

  • 一个master节点,在hdfs担任NameNode,在yarn担任ResourceManager。
  • 三台数据节点data1,data2,data3,在hdfs担任DataNode,在yarn担任NodeManager。
名称 ip hdfs yarn
master 192.168.37.200 NameNode ResourceManager
data1 192.168.37.201 DataNode NodeManager
data2 192.168.37.202 DataNode NodeManager
data3 192.168.37.203 DataNode NodeManager

基本命令

操作hdfs有两种语法,一种是:hadoop fs,此命令不单单可操作hdfs,还可用于其他文件系统;另一种是:hdfs dfs,专门针对hdfs分布式文件系统。

这里我以使用范围更广的hadoop fs为例

1.查看目录

使用-ls命令查看:

[root@master ~]# hadoop fs -ls /

2.创建目录

使用’’’-mkdir’’'命令创建目录“

[root@master ~]# hadoop fs -mkdir /rawdata

查看目录下文件:

[root@master ~]# hadoop fs -ls /
Found 1 items
drwxr-xr-x   - root supergroup          0 2019-07-25 10:43 /rawdata

创建多级目录:

[root@master ~]# hadoop fs -mkdir -p /a/b/c

查看所有子目录:

[root@master ~]# hadoop fs -ls -R /
drwxr-xr-x   - root supergroup          0 2019-07-25 11:02 /a
drwxr-xr-x   - root supergroup          0 2019-07-25 11:02 /a/b
drwxr-xr-x   - root supergroup          0 2019-07-25 11:02 /a/b/c
drwxr-xr-x   - root supergroup          0 2019-07-25 10:43 /rawdata

3.上传本地文件

有2种语法:-put-copyFromLocal
区别:使用-put,如果文件已存在,系统不会显示文件已存在,而会直接覆盖;而使用-copyFromLocal,如果文件已存在,系统会提示文件已存在,上传失败。而且-put可以接受标准输入。
下面以-put为例:

  • 上传本地文件到hdfs指定目录:
[root@master ~]# hadoop fs -put /software/hadoop-2.6.5.tar.gz /a/b/c/
[root@master ~]# hadoop fs -ls /a/b/c/
Found 1 items
-rw-r--r--   3 root supergroup  199635269 2019-07-25 11:35 /a/b/c/hadoop-2.6.5.tar.gz
  • 一次上传多个文件:
[root@master ~]# hadoop fs -put /home/a /home/b /home/c /home/d /a/b/c
[root@master ~]# hadoop fs -ls /a/b/c
Found 5 items
-rw-r--r--   3 root supergroup          0 2019-07-25 11:38 /a/b/c/a
-rw-r--r--   3 root supergroup          0 2019-07-25 11:38 /a/b/c/b
-rw-r--r--   3 root supergroup          0 2019-07-25 11:38 /a/b/c/c
-rw-r--r--   3 root supergroup          0 2019-07-25 11:38 /a/b/c/d
-rw-r--r--   3 root supergroup  199635269 2019-07-25 11:35 /a/b/c/hadoop-2.6.5.tar.gz
  • 标准输入:

可将ls命令结果直接传入hdfs的文件中:

[root@master ~]# ls /software/hadoop-2.6.5/ |hadoop fs -put - /a/b/c/h.txt

使用-cat查看文件内容:

[root@master ~]# hadoop fs -cat /a/b/c/h.txt
bin
etc
hadoop_data
hdfs
include
lib
libexec
LICENSE.txt
logs
NOTICE.txt
README.txt
sbin
share

3.下载hdfs文件

有2种语法:-get-copyToLocal

下面以-get为例:

将hdfs上的文件下载到本地:

[root@master ~]# hadoop fs -get /a/b/c/a ./
[root@master ~]# ll
total 4
-rw-r--r--. 1 root root    0 Jul 25 14:39 a
-rw-------. 1 root root 1204 Jul 17 14:49 anaconda-ks.cfg

4.复制和删除hdfs文件

使用-cp命令复制hdfs的文件,使用-rm命令删除hdfs的文件。

-cp命令可以复制一整个文件夹的内容:

[root@master ~]# hadoop fs -cp /a/b/c /rawdata
[root@master ~]# hadoop fs -ls -R /rawdata
drwxr-xr-x   - root supergroup          0 2019-07-25 14:45 /rawdata/c
-rw-r--r--   3 root supergroup          0 2019-07-25 14:44 /rawdata/c/a
-rw-r--r--   3 root supergroup          0 2019-07-25 14:44 /rawdata/c/b
-rw-r--r--   3 root supergroup          0 2019-07-25 14:44 /rawdata/c/c
-rw-r--r--   3 root supergroup          0 2019-07-25 14:44 /rawdata/c/d
-rw-r--r--   3 root supergroup         95 2019-07-25 14:44 /rawdata/c/h.txt
-rw-r--r--   3 root supergroup  199635269 2019-07-25 14:45 /rawdata/c/hadoop-2.6.5.tar.gz

-rm命令可以删除hdfs的文件,如需删除文件夹,得加上-R

[root@master ~]# hadoop fs -rm -R /rawdata/*
19/07/25 14:49:08 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
Deleted /rawdata/c
[root@master ~]# hadoop fs -ls -R /rawdata

使用图形界面操作hdfs

需要使用web打开hdfs管理网址:
http://10.11.91.122:50070/

进入主页后选择browse the file system:
在这里插入图片描述在browser directory输入目录路径就可看到路径下的文件:
在这里插入图片描述
点开文件名连接可看到文件详细状态,并提供下载:

在这里插入图片描述

发布了136 篇原创文章 · 获赞 58 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/sunbocong/article/details/97150585
今日推荐