【博学谷学习记录】超强总结,用心分享丨大数据超神之路(五):Hadooop进阶版

时间:2022-10-22 19:52:14

第1章 问题解答

1.1 Hadoop架构

【博学谷学习记录】超强总结,用心分享丨大数据超神之路(五):Hadooop进阶版

  • NameNode

    1、NameNode管理整个HDFS集群
    2、NameNode管理整个HDFS的所有元数据(/a.txt rwx 1K 3  {blk:node1,node2,node3})
    3、Client要上传或者下载文件必须先找NameNode
    4、一旦NameNode挂掉,整个HdFS集群将无法工作
    5、各个DataNode隔一段时间向NameNode汇报自己的Block信息和磁盘信息
    
  • DataNode

    1、DataNode是具体存数据的,HDFS所有真实数据都在DataNode存储
    2、各个DataNode隔一段时间向NameNode汇报自己的Block信息和磁盘信息
    3、Client在上传和下载文件时,和NameNode交流之后,真实的数据上传和下载是在Client和DataNode之间
    
  • SecondaryNameNode

 1、辅助NameNode进行元数据管理,将NameNode内存中元数据保存到硬盘上

   问题一:HDFS块的大小应该如何设置?
   块设置的太小,会增加寻址时间,程序会一直在找块的开始位置。
   块设置的太大,从磁盘传输的时间会明显大于定位块的时间,导致程序在处理这块数据时,非常慢。
   综上,块的设置大小主要取决于磁盘传输速率:固态硬盘可以设置500MB,机械硬盘100-200MB

第2章 Trash垃圾回收

   HDFS本身也是一个文件系统,那么就会涉及到文件数据的删除操作。默认情况下,HDFS中是没有回收站垃圾桶概念的,删除操作的数据将会被直接删除,没有后悔药。
   Trash机制,叫做回收站或者垃圾桶。Trash就像Windows操作系统中的回收站一样。它的目的是防止你无意中删除某些东西。默认情况下是不开启的。
   启用Trash功能后,从HDFS中删除某些内容时,文件或目录不会立即被清除,它们将被移动到回收站Current目录中(/user/${username}/.Trash/current)。
   .Trash中的文件在用户可配置的时间延迟后被永久删除。也可以简单地将回收站里的文件移动到.Trash目录之外的位置来恢复回收站中的文件和目录。

检查点仅仅是用户回收站下的一个目录,用于存储在创建检查点之前删除的所有文件或目录。如果你想查看回收站目录,可以在/user/ u s e r n a m e / . T r a s h / t i m e s t a m p o f c h e c k p o i n t c r e a t i o n 处看到 : 最近删除的文件被移动到回收站 C u r r e n t 目录,并且在可配置的时间间隔内, H D F S 会为在 C u r r e n t 回收站目录下的文件创建检查点 / u s e r / {username}/.Trash/{timestamp_of_checkpoint_creation}处看到: 最近删除的文件被移动到回收站Current目录,并且在可配置的时间间隔内,HDFS会为在Current回收站目录下的文件创建检查点/user/ username/.Trash/timestampofcheckpointcreation处看到:最近删除的文件被移动到回收站Current目录,并且在可配置的时间间隔内,HDFS会为在Current回收站目录下的文件创建检查点/user/{username}/.Trash/<日期>,并在过期时删除旧的检查点。

2.1 功能开启,修改core-site.xml

<property>  
    <name>fs.trash.interval</name>  
    <value>1440</value>  
</property>  
<property>  
    <name>fs.trash.checkpoint.interval</name>  
    <value>0</value>  
</property>

   fs.trash.interval:分钟数,当超过这个分钟数后检查点会被删除。如果为零,Trash回收站功能将被禁用。
   fs.trash.checkpoint.interval:检查点创建的时间间隔(单位为分钟)。其值应该小于或等fs.trash.interval。如果为零,则将该值设置为fs.trash.interval的值。每次运行检查点时,它都会从当前版本中创建一个新的检查点,并删除在数分钟之前创建的检查点

2.2 功能使用

   开启Trash功能后,正常执行删除操作,文件实际并不会被直接删除,而是被移动到了垃圾回收站。
   有的时候,我们希望直接把文件删除,不需要再经过Trash回收站了,可以在执行删除操作的时候添加一个参数:-skipTrash.

[root@node1 hadoop-3.3.0]# hadoop fs -ls /
Found 4 items
-rw-r--r--   3 root supergroup      15697 2022-10-21 10:16 /LICENSE.txt
drwxr-xr-x   - root supergroup          0 2022-10-20 19:15 /output
drwxrwx---   - root supergroup          0 2022-10-20 17:25 /tmp
drwxr-xr-x   - root supergroup          0 2022-10-20 17:15 /wcinput
[root@node1 hadoop-3.3.0]# hadoop fs -rm /LICENSE.txt
2022-10-21 11:18:24,961 INFO fs.TrashPolicyDefault: Moved: 'hdfs://node1:8020/LICENSE.txt' to trash at: hdfs://node1:8020/user/root/.Trash/Current/LICENSE.txt

第3章 Archive档案的使用

第4章 Hadoop的shell操作

2.1 上传

  • hadoop fs -put/-copyFromLocal:上传
  • hadoop fs -moveFromLocal:从本地剪切粘贴到HDFS
  • hadoop fs -appendToFile:追加一个文件到已经存在的文件末尾
    【博学谷学习记录】超强总结,用心分享丨大数据超神之路(五):Hadooop进阶版

2.2 下载

  • hadoop fs -copyToLocal/-get:从HDFS拷贝到本地
  • hadoop fs -getmerge:合并下载多个文件,把hdfs系统上多个文件合并下载成一个文件,用的很少
    【博学谷学习记录】超强总结,用心分享丨大数据超神之路(五):Hadooop进阶版

2.3 直接操作

  • hadoop fs -ls /:显示目录信息
  • hadoop fs -mkdir -p:创建目录
  • hadoop fs -cat:显示文件内容
  • hadoop fs -rm:删除文件或者文件夹
  • hadoop fs -setrep:设置HDFS中文件的副本数量,这里设置的副本数只是记录在NameNode的元数据中,是否真的会有这么多副本,还得看DataNode的数量。因为目前只有3台设备,最多也就3个副本,只有节点数的增加到10台时,副本数才能达到10。

2.4 元数据辅助管理

【博学谷学习记录】超强总结,用心分享丨大数据超神之路(五):Hadooop进阶版

第4章 Hadoop的客户端操作(开发重点)