首页 > 其他分享 >Hadoop之HDFS的集群之间的数据复制、归档机制和安全模式

Hadoop之HDFS的集群之间的数据复制、归档机制和安全模式

时间:2022-10-29 21:31:16浏览次数:69  
标签:HDFS 副本 文件 Hadoop 模式 安全 归档 har archive

(HDFS的数据数据复制、归档机制和安全模式)


在这里插入图片描述

1.不同集群之间的数据复制

在我们实际工作当中,极有可能会遇到将测试集群的数据拷贝到生产环境集群,或者将生产环境集群的数据拷贝到测试集群,那么就需要我们在多个集群之间进行数据的==远程拷贝==,hadoop自带也有命令可以帮我们实现这个功能。

1.1.集群内部文件拷贝scp

cd /export/softwares/
scp -r jdk-8u141-linux-x64.tar.gz root@node2:/export/

1.2.跨集群之间的数据拷贝distcp

bin/hadoop distcp hdfs://node1:8020/jdk-8u141-linux-x64.tar.gz  hdfs://cluster2:9000/

2.Archive档案的使用

HDFS并不擅长存储小文件,因为每个文件最少一个block,每个block的元数据都会在NameNode占用内存,如果存在大量的小文件,它们会吃掉NameNode节点的大量==内存==。 ==Hadoop Archives==可以有效的处理以上问题,它可以把多个文件==归档==成为一个文件,归档成一个文件后还可以透明的访问每一个文件。

2.1.如何创建Archive

Usage: hadoop archive -archiveName name -p <parent> <src>* <dest>

其中-archiveName是指要创建的存档的名称。比如test.har,archive的名字的扩展名应该是*.har。 -p参数指定文件存档文件(src)的相对路径。 举个例子:-p /foo/bar a/b/c e/f/g 这里的/foo/bar是a/b/c与e/f/g的父路径, 所以完整路径为/foo/bar/a/b/c与/foo/bar/e/f/g 例如:如果你只想存档一个目录/input下的所有文件: hadoop archive -archiveName test.har -p /input /outputdir 这样就会在/outputdir目录下创建一个名为test.har的存档文件。

2.2.如何查看Archive

首先我们来看下创建好的har文件。使用如下的命令:

hadoop fs -ls /outputdir/test.har

在这里插入图片描述

这里可以看到har文件包括:两个索引文件,多个part文件(本例只有一个)以及一个标识成功与否的文件。==part==文件是多个原文件的集合,根据index文件去找到原文件。

例如上述的三个小文件1.txt 2.txt 3.txt内容分别为1,2,3。进行archive操作之后,三个小文件就归档到test.har里的part-0一个文件里。 在这里插入图片描述 在这里插入图片描述

archive作为文件系统层暴露给外界。所以所有的fs shell命令都能在archive上运行,但是要使用不同的URI。==Hadoop Archives==的URI是:

har://scheme-hostname:port/archivepath/fileinarchive 

scheme-hostname格式为hdfs-域名:端口,如果没有提供scheme-hostname,它会使用默认的文件系统。这种情况下URI是这种形式:

har:///archivepath/fileinarchive   

如果用har uri去访问的话,索引、标识等文件就会 ==隐藏==起来,只显示创建档案之前的原文件: 在这里插入图片描述 在这里插入图片描述

2.3.如何解压Archive

按顺序解压存档(串行):

Hadoop fs -cp har:///user/zoo/foo.har/dir1  hdfs:/user/zoo/newdir

要并行解压存档,请使用DistCp:

hadoop distcp har:///user/zoo/foo.har/dir1  hdfs:/user/zoo/newdir

2.4.Archive注意事项

1.Hadoop archives是特殊的档案格式。一个Hadoop archive对应一个文件系统目录。Hadoop archive的扩展名是*.har; 2.创建archives本质是运行一个Map/Reduce任务,所以应该在Hadoop集群上运行创建档案的命令; 3.创建archive文件要消耗和原文件一样多的硬盘空间; 4.archive文件不支持压缩,尽管archive文件看起来像已经被压缩过; 5.archive文件一旦创建就无法改变,要修改的话,需要创建新的archive文件。事实上,一般不会再对存档后的文件进行修改,因为它们是定期存档的,比如每周或每日; 6.当创建archive时,源文件不会被更改或删除;

3. HDFS安全模式

3.1.安全模式概述

安全模式是HDFS所处的一种特殊状态,在这种状态下,文件系统只接受读数据请求,而不接受删除、修改等变更请求,是一种==保护机制==,用于保证集群中的数据块的安全性。 在==NameNode主节点启动时==,HDFS首先进入安全模式,集群会开始检查数据块的完整性。DataNode在启动的时候会向namenode汇报可用的block信息,当整个系统达到安全标准时,==HDFS自动离开==安全模式。 假设我们设置的副本数(即参数dfs.replication)是5,那么在Datanode上就应该有5个副本存在,假设只存在3个副本,那么比例就是3/5=0.6。在配置文件hdfs-default.xml中定义了一个最小的副本的副本率(即参数dfs.namenode.safemode.threshold-pct)0.999。 我们的副本率0.6明显小于0.99,因此系统会自动的复制副本到其他的DataNode,使得副本率不小于0.999.如果系统中有8个副本,超过我们设定的5个副本,那么系统也会删除多余的3个副本。 如果HDFS处于安全模式下,不允许HDFS客户端进行任何修改文件的操作,包括上传文件,删除文件,重命名,创建文件夹,修改副本数等操作。

3.2.安全模式配置

与安全模式相关主要配置在hdfs-site.xml文件中,主要有下面几个属性: dfs.namenode.replication.min: 每个数据块最小副本数量,默认为1. 在上传文件时,达到最小副本数,就认为上传是成功的。 dfs.namenode.safemode.threshold-pct: 达到最小副本数的数据块的百分比。默认为0.999f。当小于这个比例,那就将系统切换成安全模式,对数据块进行复制;当大于该比例时,就离开安全模式,说明系统有足够的数据块副本数,可以对外提供服务。小于等于0意味不进入安全模式,大于1意味一直处于安全模式。 dfs.namenode.safemode.min.datanodes: 离开安全模式的最小可用datanode数量要求,默认为0.也就是即使所有datanode都不可用,仍然可以离开安全模式。 dfs.namenode.safemode.extension: 当集群可用block比例,可用datanode都达到要求之后,如果在extension配置的时间段之后依然能满足要求,此时集群才离开安全模式。单位为毫秒,默认为30000.也就是当满足条件并且能够维持30秒之后,离开安全模式。 这个配置主要是对集群稳定程度做进一步的确认。避免达到要求后马上又不符合安全标准。 总结一下,要离开安全模式,需要满足以下条件:

1)达到副本数量要求的block比例满足要求;
2)可用的datanode节点数满足配置的数量要求; 3) 1、2两个条件满足后维持的时间达到配置的要求

3.安全模式命令 手动进入安全模式

hdfs dfsadmin -safemode enter

手动进入安全模式对于集群维护或者升级的时候非常有用,因为这时候HDFS上的数据是只读的。手动退出安全模式可以用下面命令:

hdfs dfsadmin -safemode leave

标签:HDFS,副本,文件,Hadoop,模式,安全,归档,har,archive
From: https://blog.51cto.com/u_15843303/5806549

相关文章

  • HDFS的 Shell操作-API操作
    HDFS的Shell操作(重点)2.1基本语法hadoopfs具体命令 OR hdfsdfs具体命令两个是完全相同的。2.2命令大全[[email protected]]$bin/hadoopfs[......
  • HDFS概述
    HDFS概述1.1HDFS产出背景及定义1)HDFS产生背景随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需......
  • 学习心得 HDFS读数据过程
    HDFS读数据过程   第一步:打开文件。用Fliesystem先申明一个对象,然后生成一个子类DistributedFileSystem,这个时候生成FS的实例对象,其实是分布式文件系统HDFS的实例对象......
  • 【实战】Hadoop安装01-伪分布式-Pseudo
    Hadoop安装-伪分布式-Pseudo〇、所需资料一、前置环境安装1、包含内容(1)安装虚拟机安装、系统安装(2)配置ip、host、主机名配置关闭防火墙及selinuxSSH免密登录(2)基......
  • 分布式文件系统HDFS
      ......
  • 大数据Hadoop之——Apache Hudi 数据湖实战操作(FlinkCDC)
    目录一、概述二、Hudi数据管理1).hoodie文件2)数据文件三、数据存储四、Hive与Hudi集成使用1)安装mysql数据库2)安装Hive1、下载2、配置3、解决Hive与Hadoop之间guava版本......
  • Hadoop - hdfs源码体系结构
    ......
  • hadoop入门-运行环境搭建
    Hadoop运行环境搭建(开发重点)2.1模板虚拟机环境准备0)安装模板虚拟机,IP地址192.168.10.100、主机名称hadoop100、内存4G、硬盘50G1)hadoop100虚拟机配置要求如下(本文Linux......
  • hadoop入门-概述
     第1章Hadoop概述1.1Hadoop是什么1.2Hadoop发展历史(了解) 1.3Hadoop三大发行版本(了解)Hadoop三大发行版本:Apache、Cloudera、Hortonworks。Apache版本最原始......
  • HDFS基础学习
    HDFS简介HDFS即HadoopDistributedFileSystem,是一个分布式文件系统,用于存储海量数据。一个HDFS集群由一个NameNode和多个DataNode组成。HDFS特性主从架构分块存储......