大数据框架之Hadoop:HDFS(七)HDFS 2.X新特性

news2024/11/17 20:34:44

7.1集群间数据拷贝

  1. scp实现两个远程主机之间的文件复制

​ scp -r hello.txt root@hadoop103:/root/hello.txt // 推 push

​ scp -r root@hadoop103:/root/hello.txt hello.txt // 拉 pull

​ scp -r root@hadoop103:/root/hello.txt root@hadoop104:/root //是通过本地主机中转实现两个远程主机的文件复制;如果在两个远程主机之间ssh没有配置的情况下可以使用该方式。

  1. 采用distcp命令实现两个Hadoop集群之间的递归数据复制
[root@hdp101 hadoop-2.7.7]#  bin/hadoop distcp hdfs://haoop102:9000/root/hello.txt hdfs://hadoop103:9000/root/hello.txt

7.2 小文件存档

1、HDFS存储小文件弊端

每个文件均按块存储,每个块的元数据存储在NameNode的内存中,因此HDFS存储小文件会非常低效。因为大量的小文件会耗尽NameNode中的大部分内存。但注意,存储小文件所需要的磁盘容量和数据块的大小无关。例如,一个1MB的文件设置为128MB的块存储,实际使用的是1MB的磁盘空间,而不是128MB。

2、解决存储小文件办法之一

HDFS存档文件或HAR文件,是一个更高效的文件存档工具,它将文件存入HDFS块,在减少NameNode内存使用的同时,允许对文件进行透明的访问。实际上,HDFS存档文件对内还是一个一个独立文件,对NameNode而言却是一个整体,减少NameNode的内存

Untitled (8)

3、基本命令

# 归档文件
hadoop archive -archiveName input.har -p input路径 output路径
# 查看归档
hadoop fs -lsr
# 解归档文件
hadoop fs -cp har:///user/test/input/input.har/* /user/test

4、案例实操

(1)需要启动YARN进程

[root@hdp101 hadoop-2.7.7]# start-yarn.sh

(2)归档文件

把/root/input目录里面的所有文件归档成一个叫input.har的归档文件,并把归档后文件存储到/root/output路径下。

[root@hdp101 hadoop-2.7.7]# bin/hadoop archive -archiveName input.har –p  /root/input   /root/output

(3)查看归档

[root@hdp101 hadoop-2.7.7]# hadoop fs -lsr /root/output/input.har
[root@hdp101 hadoop-2.7.7]# hadoop fs -lsr har:///root/output/input.har

(4)解归档文件

[root@hdp101 hadoop-2.7.7]# hadoop fs -cp har:/// user/atguigu/output/input.har/*    /root

7.3回收站

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。

一、回收站参数设置及工作机制

1、默认值fs.trash.interval=0,0表示禁用回收站;其他值表示设置文件的存货时间

2、默认值fs.trash.checkpoint.interval=0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等

3、要求fs.trash.checkpoint.interval ≤fs.trash.interval

二、回收站机制

Untitled (9)

三、实际操作

1、启用回收站

修改core-site.xml,配置垃圾回收时间为1分钟。

<property>
    <name>fs.trash.interval</name>
    <value>1</value>
</property>

2、查看回收站

回收站在集群中的路径:/root/.Trash/….

3、修改访问垃圾回收站用户名称

进入垃圾回收站用户名称,默认是dr.who,修改为atguigu用户

4、通过程序删除的文件不会经过回收站,需要调用moveToTrash()才进入回收站

Trash trash = New Trash(conf);
trash.moveToTrash(path);

5、恢复回收站数据

[root@hdp101 hadoop-2.7.7]# hadoop fs -mv
/root/.Trash/Current/root/input    /root/input

6、清空回收站

[root@hdp101 hadoop-2.7.7]# hadoop fs -expunge

7.4快照管理

快照相当于对目录做一个备份,并不会立即复制所有文件,而是记录文件变化。

命令描述
hdfs dfsadmin -allowSnapshot 路径开启指定目录的快照功能
hdfs dfsadmin -disallowSnapshot 路径禁用指定目录的快照功能(默认禁用)
hdfs dfs -createSnapshot 路径对目录创建快照
hdfs dfs -createSnapshot 路径 名称指定名称创建快照
hdfs dfs -renameSnapshot 路径 旧名称 新名称重命名快照
hdfs dfs lsSnapshotDir列出当前用户所有快照目录
hdfs snapshotDiff 路径1 路径2比较两个快照目录的不同之处
hdfs dfs -deleteSnapshot 删除快照
  1. 案例实操

(1)开启/禁用指定目录的快照功能

[root@hdp101 hadoop-2.7.7]# hdfs dfsadmin -allowSnapshot /root/input
[root@hdp101 hadoop-2.7.7]# hdfs dfsadmin -disallowSnapshot /root/input

(2)对目录创建快照

[root@hdp101 hadoop-2.7.7]# hdfs dfs -createSnapshot /root/input

通过web访问hdfs://hdp101:50070/root/input/.snapshot/s……// 快照和源文件使用相同数据

[root@hdp101 hadoop-2.7.7]# hdfs dfs -lsr /root/input/.snapshot/

(3)指定名称创建快照

[root@hdp101 hadoop-2.7.7]# hdfs dfs -createSnapshot /root/input  miao170508

(4)重命名快照

[root@hdp101 hadoop-2.7.7]# hdfs dfs -renameSnapshot /root/input/ miao170508 atguigu170508

(5)列出当前用户所有可快照目录

[root@hdp101 hadoop-2.7.7]# hdfs lsSnapshottableDir

(6)比较两个快照目录的不同之处

[root@hdp101 hadoop-2.7.7]# hdfs snapshotDiff

 /root/input/  .  .snapshot/atguigu170508	

(7)恢复快照

[root@hdp101 hadoop-2.7.7]# hdfs dfs -cp /root/input/.snapshot/s20170708-134303.027 /user

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/349079.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机技术与软件(初级、中级、高级)考试(软考)是什么?软考的时间安排是什么时候?

一、软考是什么&#xff1f; 计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;以下简称计算机软件资格考试&#xff09;是原中国计算机软件专业技术资格和水平考试&#xff08;简称软件考试&#xff09;的完善与发展。计算机软件资格考试是由国家人力…

Fluent工作目录

1 工作目录定义工作目录&#xff08;working directory&#xff09;是一种文件存储路径设置方式。基于工作目录的方法&#xff0c;写文件时只需要指定文件名&#xff0c;而不需要指定完全的文件路径&#xff0c;从而简化程序编写&#xff0c;对不同操作系统环境有更好的适应性。…

#笨鸟先飞# 数据结构与算法基础 课程笔记 第六章 图

图的定义和基本术语图&#xff1a;G( V , E ) Graph&#xff08;Vertex&#xff0c;Edge&#xff09;V&#xff1a;顶点&#xff08;数据元素&#xff09;的有穷非空集合&#xff1b;E&#xff1a;边的有穷集合。无向图&#xff1a;每条边都是无方向的有向图&#xff1a;每条边…

新手小白入门必看!如何批量注册Twitter账号?

Twitter是目前海外比较流行的社媒营销平台&#xff0c;所以很多从事跨境电商行业的朋友都需要利用多个Twitter账号来推广营销&#xff0c;但是注册和管理多个Twitter账号其实并不是简单的事情。龙哥将会在这里详细讲讲该如何批量注册并且让这些账号不会因为关联被封号&#xff…

如何合理地制定项目管理计划?

甘特图是一个比较常见的直观地项目管理专用工具&#xff0c;我们可以使用用Excel制作表格&#xff0c;也可是使用项目管理软件。 详细的项目计划不能完全保证项目成功&#xff0c;但是可以将失败的风险降到最低。通过项目管理软件的图标&#xff0c;项目管理者可以直观的查看任…

字符串的特殊读取——基于蓝桥杯两道题目(C/C++)

目录 1 例题 1.1 卡片换位 1.2 人物相关性分析 2 字符串的读取 2.1 综述 2.2 scanf 2.3 getline/getchar/get 2.4 注意 2.5 说明 先看例题 1 例题 1.1 卡片换位 问题描述 你玩过华容道的游戏吗&#xff1f; 这是个类似的&#xff0c;但更简单的游戏。 看…

加拿大访问学者如何提升自我

学习加拿大先进的科学技术和研究方法是我们访学的最主要目的。(1)根据自己的先前的研究计划、加方导师的项目和科研条件尽早调整自己目前学习和研究。(2)可以适当、有选择地听一些相关的课程&#xff0c;在提高英语水平的同时&#xff0c;又能够了解外国的教学方法。(3)与导师积…

pytest+yaml+allure接口自动化测试框架04.处理request

前言 ​ 环境搭建配置、封装日志缓存、读取yaml测试文件&#xff0c;这些工作我们上几个章节已经都做完了&#xff0c;读取文件之后&#xff0c;我们已经成功拿到了测试yaml文件中的测试数据了&#xff0c;那我们接下来就通过这些数据去执行测试&#xff0c;主要就是对这些数据…

SpringBoot+Vue实现酒店客房管理系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏…

异步 Servlet

1.什么是异步 Servlet 在 Servlet3.0 之前&#xff0c;Servlet 采用 Thread-Per-Request 的方式处理 Http 请求&#xff0c;即每一次请求都是由某一个线程从头到尾负责处理。 如果一个请求需要进行 IO 操作&#xff0c;比如访问数据库、调用第三方服务接口等&#xff0c;那么其…

云原生丨一文教你轻松借助DEX实现单点登录~

文章目录前言一、分析思路1、单点登录授权码认证隐式认证混合认证2、会话管理二、实现过程1、搭建DEX认证中⼼2、登录流程说明授权码认证示例代码3、登出流程说明登出代码示例前言 通常&#xff0c;我们在登录单系统时&#xff0c;都希望只需要登录⼀次&#xff0c;就能访问本…

分享一下最近使用python字典取值用法的收获

假设现在有一个字典&#xff0c;内容如下&#xff1a;data {a: 1, b: 2}初级版本 我最开始学python的时候&#xff0c; 要从字典中取值&#xff0c;我可能会采用下面的写法&#xff1a;print(data["key"])上面的用法中&#xff0c;如果输入的key在字典中不存在的时候…

【蓝桥集训】第二天——差分

作者&#xff1a;指针不指南吗 专栏&#xff1a;Acwing 蓝桥集训每日一题 &#x1f43e;做题过程中首先应该注意时间复杂度问题&#x1f43e; 文章目录1.改变数组元素2.差分3.差分矩阵1.改变数组元素 给定一个空数组 V 和一个整数数组 a1,a2,…,an。 现在要对数组 V 进行 n 次操…

tkinter如何绑定鼠标和键盘等事件

文章目录鼠标点击事件进入或离开控件键盘事件Configure事件控件和人通过事件来交互&#xff0c;Tkinter中则通过Bind来绑定事件。例如 import tkinter as tkroot tk.Tk() txt tk.StringVar() btn tk.Button(root, textvariabletxt, width30, height5) btn.pack()btn.bind(&…

RS485三线制和两线制差别

RS-485是一种应用十分广泛的通信协议。其显著特点是信号采用“差分”的方式传输&#xff0c;因此抗干扰能力很强&#xff0c;通信距离也比RS-232远得多。RS-485通信一般是半双工的&#xff0c;仅需要2根信号线&#xff0c;也可以是全双工的&#xff0c;需要4根信号线。如何解读…

【项目实战】MySQL使用CONCAT字符串拼接函数实现与特殊字符的拼接

一、需求说明 因为有新功能需要上生产环境&#xff0c;总有一些乱七八糟的兼容历史数据的活要去做&#xff0c;比如以下。 需要批量的更新数据库中某个字段&#xff08;如id列中原来是ABCDEFG&#xff0c;需要改成[“ABCDEFG”]&#xff09;&#xff0c; 没错&#xff0c;就是…

python 的用户输入和 while 循环使用说明

文章目录1. 函数 input() 的工作原理1.1 使用 int() 来获取整数类型1.2 % 求模运算符1.3 版本问题2. while 循环简介2.1 使用示例2.2 利用while循环实现用户选择退出2.3 标志的使用2.4 break 语句2.5 continue 语句2.6 避免无限循环3. 使用 while 循环来处理列表和字典3.1 在列…

mysql8.0(单表查询与多表拆线)

目录 单表查询 1、显示所有职工的基本信息。 2、查询所有职工所属部门的部门号&#xff0c;不显示重复的部门号。 3、求出所有职工的人数。 4、列出最高工资和最低工资。 5、列出职工的平均工资和总工资。 6、创建一个只有职工号、姓名和工作时间的新表&…

Vue2.0项目重构到Vue3.0流程

1.重构的流程 1-1新建项目&#xff0c;确定脚手架版本 首先呢&#xff0c;我们新建项目有两种方法 第一种&#xff1a;vue-cli : 安装并执行 npm init vuelatest 选择项目功能时&#xff1a; 除了第一项的项目名字外&#xff0c;其他可以暂时No cd 到自…

安装SQL Server2017 过程中报KB29119355失败的解决方案

SQLServer 2017脱机版下载地址&#xff1a;http://download.microsoft.com/download/6/4/A/64A05A0F-AB28-4583-BD7F-139D0495E473/SQLServer2017-x64-CHS-Dev.isoMicrosoft SQL Server Management Studio 18管理工具下载https://learn.microsoft.com/zh-cn/sql/ssms/download-…