• 四、hdfs文件系统基础操作-保姆级教程


    1、启动Hadoop集群

            想要使用hdfs文件系统,就先要启动Hadoop集群。

    1. 启动集群:
    2. start-dfs.sh
    3. 关闭集群:
    4. stop-dfs.sh

    2、文件系统构成

    (1)基础介绍        

    其实hdfs作为分布式存储的文件系统,其构成和Linux文件系统构成差不多一样,均是以“/”作为根目录的组织形式。

    (2)区分路径

            在以Hadoop用户作为Linux本地用户使用hdfs文件系统时,因为两者的命令结构十分相似,这里我们该如何区分呢?

    3、hdfs命令体系

    4、hdfs文件系统基础操作

    (1)前言

            在学习hdfs文件系统基础操作之后,你会发现hdfs文件系统的操作和Linux文件系统的操作十分相似,两者之间为数不多的区别就是hdfs文件系统在使用命令名时,需要在命令名前加上“-”。

    (2)创建文件夹

    (3)查看指定目录内容

    ·基础命令格式

    ·实际操作基础演示

    1. hadoop@node1:~$ hadoop fs -ls /
    2. Found 1 items
    3. drwxr-xr-x - hadoop supergroup 0 2023-11-16 23:34 /home
    4. hadoop@node1:~$ hdfs dfs -ls /
    5. Found 1 items
    6. drwxr-xr-x - hadoop supergroup 0 2023-11-16 23:34 /home

    ·-R选项演示

    【解释】:-R选项会将当前目录下的所有文件关系罗列出来,就像二叉树的遍历一样。

    1. hadoop@node1:~$ hdfs dfs -ls -R /
    2. drwxr-xr-x - hadoop supergroup 0 2023-11-18 10:27 /home
    3. drwxr-xr-x - hadoop supergroup 0 2023-11-18 10:27 /home/code1
    4. drwxr-xr-x - hadoop supergroup 0 2023-11-18 10:27 /home/code1/thing
    5. drwxr-xr-x - hadoop supergroup 0 2023-11-18 10:27 /home/code2
    6. drwxr-xr-x - hadoop supergroup 0 2023-11-18 10:27 /home/code3

    (4)上传文件

    ·基础格式

    ·路径:

    Linux——>hdfs

    ·实际操作演示

    【解释】:这里将本地Hadoop用户根目录下的text.txt文件,上传到hdfs文件系统根目录下。

    1. hadoop@node1:~$ ls
    2. text.txt
    3. hadoop@node1:~$ hdfs dfs -put file:///home/hadoop/text.txt hdfs://node1:8020/
    4. hadoop@node1:~$ hdfs dfs -ls /
    5. Found 2 items
    6. drwxr-xr-x - hadoop supergroup 0 2023-11-18 10:27 /home
    7. -rw-r--r-- 3 hadoop supergroup 22 2023-11-18 10:38 /text.txt

    (5)查看文件内容

    ·基础格式

    ·实际操作演示

    【解释】:这里查看hdfs文件系统根目录下text.txt的文件内容

    1. hadoop@node1:~$ hdfs dfs -cat hdfs://node1:8020/text.txt
    2. yanghaitao
    3. hahaha
    4. 666

    ·管道符and“more”的使用

            但是对于hadoop来说,通常都是处理几十个G的大数据,这里我们可以借助管道符more进行操作查看。more:Linux中,文件内容进行翻页的命令:

    1. hadoop@node1:~$ hdfs dfs -cat hdfs://node1:8020/code.txt
    2. 不写协议头
    3. 上传文件
    4. 从Linux文件系统——>hdfs文件系统
    5. yanghaitao
    6. hahaha
    7. 666
    8. yanghaitao
    9. hahaha
    10. 666
    11. yanghaitao
    12. hahaha
    13. 666
    14. yanghaitao
    15. hahaha
    16. 666
    17. yanghaitao
    18. hahaha
    19. 666
    20. yanghaitao
    21. hahaha
    22. 666
    23. yanghaitao
    24. hahaha
    25. 666
    26. [more]……

    (6)下载内容

    ·路径

    hdfs——>Linux

    ·基础格式

    ·实际操作演示

    在hadoop本地创建一个文件夹mkdir YHT,将从hdfs下载的文件存储到该文件夹中。

    1. hadoop@node1:~$ hdfs dfs -get hdfs://node1:8020/text.txt ./YHT
    2. hadoop@node1:~$ cd YHT
    3. hadoop@node1:~/YHT$ ls
    4. text.txt

    (7)拷贝文件

    ·路径

    hdfs——>hdfs

    ·基础格式

    ·实际操作演示

    【解释】:为了方便,这里我们删除hdfs://node1:8020/home目录下的所有文件,然后将hdfs根目录下code.txt的文件复制到hdfs根目录下的home目录内:

    1. hadoop@node1:~$ hdfs dfs -cp hdfs://node1:8020/code.txt hdfs://node1:8020/home
    2. hadoop@node1:~$ hdfs dfs -ls hdfs://node1:8020/home
    3. Found 1 items
    4. -rw-r--r-- 3 hadoop supergroup 667 2023-11-18 11:17 hdfs://node1:8020/home/code.txt

    还有,我们在复制的同时,实现文件的重命名工作:

    1. 【操作解释】:此处将hdfs://node1:8020/text.txt复制到hdfs://node1:8020/home/new.txt,并将文件名改为new.txt
    2. hadoop@node1:~$ hdfs dfs -cp hdfs://node1:8020/text.txt hdfs://node1:8020/home/new.txt
    3. hadoop@node1:~$ hdfs dfs -ls hdfs://node1:8020/home
    4. Found 2 items
    5. -rw-r--r-- 3 hadoop supergroup 667 2023-11-18 11:17 hdfs://node1:8020/home/code.txt
    6. -rw-r--r-- 3 hadoop supergroup 22 2023-11-18 11:22 hdfs://node1:8020/home/new.txt

    ·注意

            整个hdfs文件系统,文件的修改只支持两种,那就是删除和追加。

    (8)追加数据

    ·路径

    Linux——>hdfs

    ·基础格式

    · 实际操作演示

            在这里,我们将Hadoop用户根目录下的append.txt文件,追加到hdfs文件系统的根目录下text.txt的文件中。

    1. hadoop@node1:~$ hdfs dfs -cat hdfs://node1:8020/text.txt
    2. yanghaitao
    3. hahaha
    4. 666
    5. hadoop@node1:~$ cat append.txt
    6. I'm append things.
    7. from hadoop to hdfs://node1:8020/text.txt
    8. hadoop@node1:~$ hdfs dfs -appendToFile append.txt hdfs://node1:8020/text.txt
    9. hadoop@node1:~$ hdfs dfs -cat hdfs://node1:8020/text.txt
    10. yanghaitao
    11. hahaha
    12. 666
    13. I'm append things.
    14. from hadoop to hdfs://node1:8020/text.txt

    (9)移动文件数据

    ·路径

    hdfs——>hdfs

    ·基础格式

    ·实际操作演示

    1. hadoop@node1:~$ hdfs dfs -ls hdfs://node1:8020/
    2. Found 2 items
    3. drwxr-xr-x - hadoop supergroup 0 2023-11-18 11:22 hdfs://node1:8020/home
    4. -rw-r--r-- 3 hadoop supergroup 83 2023-11-18 11:33 hdfs://node1:8020/text.txt
    5. hadoop@node1:~$ hdfs dfs -mv hdfs://node1:8020/text.txt hdfs://node1:8020/home/
    6. hadoop@node1:~$ hdfs dfs -ls hdfs://node1:8020/home
    7. Found 3 items
    8. -rw-r--r-- 3 hadoop supergroup 667 2023-11-18 11:17 hdfs://node1:8020/home/code.txt
    9. -rw-r--r-- 3 hadoop supergroup 22 2023-11-18 11:22 hdfs://node1:8020/home/new.txt
    10. -rw-r--r-- 3 hadoop supergroup 83 2023-11-18 11:33 hdfs://node1:8020/home/text.txt

    (10)删除数据

    ·基础格式

    ·实际操作演示

    【解释】:删除hdfs://node1:8020/home文件夹

    1. hadoop@node1:~$ hdfs dfs -rm -r hdfs://node1:8020/home/
    2. Deleted hdfs://node1:8020/home
    3. hadoop@node1:~$ hdfs dfs -ls hdfs://node1:8020/

    (11)配置回收站

    ·第一步:修改配置文件

    vim /export/server/hadoop/etc/hadoop/core-site.xml

    ·第二步:修改参数

    1. <property>
    2. <name>fs.trash.intervalname>
    3. 1440
    4. property>
    5. <property>
    6. <name>fs.trash.checkpoint.intervalname>
    7. 120
    8. property>

    ·第三步:实际操作演示

    回收站地址:

    hdfs://node1:8020/user/hadoop/.Trash/Current

    在hdfs://node1:8020/home目录下创建名为thing.txt的文件,删除演示:

    1. # 删除hdfs文件系统home目录下的thing.txt文件
    2. hadoop@node1:~$ hdfs dfs -ls hdfs://node1:8020/home/
    3. Found 1 items
    4. -rw-r--r-- 3 hadoop supergroup 0 2023-11-18 12:27
    5. hdfs://node1:8020/home/thing.txt
    6. hadoop@node1:~$ hdfs dfs -rm -r hdfs://node1:8020/home/thing.txt
    7. 2023-11-18 12:28:08,439 INFO fs.TrashPolicyDefault:Moved:'hdfs://node1:8020/home/thing.txt' to trash at: hdfs://node1:8020/user/hadoop/.Trash/Current/home/thing.txt
    8. # 进入回收,可以看到刚刚被删除的thing.txt文件
    9. hadoop@node1:~$ hdfs dfs -ls hdfs://node1:8020/user/hadoop/.Trash/Current
    10. Found 1 items
    11. drwx------ - hadoop supergroup 0 2023-11-18 12:28 hdfs://node1:8020/user/hadoop/.Trash/Current/home

  • 相关阅读:
    fastadmin 后台添加视频
    计算机基础知识47
    Rsync下行同步+inotify实时同步介绍和部署
    MySQL:区分大小写
    C++基础知识(十一)--- 文件读写
    04 使用Keil模拟器和Debug (printf) Viewer窗口实现scanf输入,并进行串口收发回环,无需fgetc重定向
    AutoCAD的各种方法
    Spring ApplicationListener源码版
    SpringBoot快速打包
    MySQL索引设计与选择
  • 原文地址:https://blog.csdn.net/2301_79149013/article/details/134476871