HDFS小文件解决方案---archive归档文件命令

小文件解决方案

    • 背景
    • Archive概述
    • 创建archive
    • 查看归档文件
      • 查看归档之后的样子
      • 查看归档文件之前的样子
    • 提取archive
    • archive注意事项

背景

  • hdfs并不擅长存储小文件,因为每个文件最少一个block,每个block的元数据都会在namenode占用内存,如果存在大量的小文件,它们会吃掉namenode大量内存。如下所示,模拟小文件场景:
    在这里插入图片描述

Archive概述

  • hadoop archive可以有效地处理以上的问题,它可以把多个文件归档成为一个文件,归档成一个文件后还可以透明的访问每一个文件
    在这里插入图片描述

创建archive

  • hdfs dfs -archive -archiveName archive.har /path/to/file.txt /path/to/archive.har
    • -archiveName archive.har: 指定生成的归档文件名为archive.har。扩展名是*.har
    • /path/to/directory/: 要归档的整个目录的路径
    • /path/to/archive/: 归档文件的存储位置。
    • 多个文件进行归档操作的时候可以用:hdfs dfs -archive -archiveName archive.har /path/to/file1.txt /path/to/file2.txt /path/to/archive/
  • 注意:archive归档是通过MapReduce程序完成的,需要启动yarn集群
    在这里插入图片描述

查看归档文件

查看归档之后的样子

hadoop fs -ls /outputdir /test.har

这里可以看到har文件包括:两个索引文件,多个part文件(本例只有一个)以及一个标识成功与否的文件。part文件是多个源文件的集合,通过index文件可以去找到源文件
例如上述的三个小文件1.txt,2.txt,3.txt内容分别是1,2,3.进行archive操作之后,三个小文件就归档到test.har里的part-0一个文件里。
在这里插入图片描述

查看归档文件之前的样子

  • 在查看har文件的时候,如果没有指定访问协议,默认使用hdfs://,此时所能看到的就是归档之后的样子。此外,archive还提供了自己的har uri访问协议。如果用har uri去访问的话,索引,标识等文件就会隐藏起来,只显示创建档案之前的原文件:
  • hadoop archives的uri是:
har://scheme-hostname:port/archivepath/fileinarchive
scheme-hostname格式为hdfs-域名:端口

在这里插入图片描述

提取archive

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

hadoop fs -cp har:///outputdir/test.har/* /smallfile1
# 要并行解压存档,请使用DisCp,对应大的归档文件可以提高效率:
hadoop distcp har:///outputdir/test.har/* smallfile2

在这里插入图片描述

archive注意事项

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring接口ApplicationRunner的作用和使用介绍

在Spring框架中,ApplicationRunner接口是org.springframework.boot.ApplicationRunner接口的一部分。它是Spring Boot中用于在Spring应用程序启动完成后执行特定任务的接口。ApplicationRunner的作用是在Spring应用程序完全启动后,执行一些初始化任务或处…

【cluster_block_exception】写操作elasticsearch索引报错

【cluster_block_exception】操作elasticsearch索引b报错 背景导致原因:解决方法: 背景 今天线上elk的数据太多,服务器的空间不足了。所以打算删除一些没用用的数据。我是用下面的request: POST /{index_name}/_delete_by_query…

VSCode:人生苦短,我用扩展!

B站|公众号:啥都会一点的研究生 作为苦逼码农,每天花费大量时间使用VSCode来编写和调试代码​ 好消息是,VSCode有很多超酷扩展可以让效率直线上升,极大争取摸鱼时间,一起看看吧 1. CodeSnap 用 CodeSnap 轻松捕捉代…

Vue3_对响应式对象解构赋值之后失去响应性——toRefs()

官网toRefs() :响应式 API:工具函数 | Vue.js toRefs 在调用时只会为源对象上可以枚举的属性创建 ref。如果要为可能还不存在的属性创建 ref,请改用 toRef。 setup(){const state reactive({name:"张三"age:14})const stateAsToRefs toRef…

用C语言构建一个数字识别卷积神经网络

卷积神经网络的具体原理和对应的python例子参见末尾的参考资料2.3. 这里仅叙述卷积神经网络的配置, 其余部分不做赘述,构建和训练神经网络的具体步骤请参见上一篇: 用C语言构建一个手写数字识别神经网路 卷积网络同样采用简单的三层结构,包括输入层con…

Qt能跨多少个平台?Qt能支持多少个平台?

2023年8月5日,周日下午 目录 Qt所支持的平台更多关于Qt支持的信息 Qt所支持的平台 图中显示的平台都支持。 想要更详细的平台支持信息可以查看:Supported Platforms | Qt 5.15 更多关于Qt支持的信息 Qt - 支持的平台及语言

物联网||不一样的点灯实验(2)|通过使用CMSIS库函数实现点灯实验-学习笔记(12)

文章目录 通过使用CMSIS库函数实现点灯实验1 如何使用CMIS库2 如何利用CMSIS库操作IO 两种实现方法的比较课后作业:完整代码:LED.C:test.c:led.h:systick.h:systick.c: 通过使用CMSIS库函数实现点灯实验 1 如何使用CMIS库 #####如何使用此驱动#####[. .](#)启用GPI…

传染病学模型 | Python实现基于使用受控SIR模型数据平滑对参数估计的影响

效果一览 文章概述 传染病学模型 | Python实现基于使用受控SIR模型数据平滑对参数估计的影响 我们可以采用更多数据驱动的方法,而不是使用移动平均线进行数据平滑。 我们感兴趣的是了解疾病发作和报告疾病日期之间的延迟

九、pig安装

1.上传pig包 2.解压文件 3.改名 4.赋权 5.配置环境变量 export PIG_HOME/usr/local/pig export PATH$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$HBASE_HOME/bin:$SQOOP_HOME/bin:$PIG_HOME/bin 6.测试

基于SpringBoot+Vue的CSGO赛事管理系统设计与实现(源码+LW+部署文档等)

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

阿里云瑶池 PolarDB 开源官网焕新升级上线

导读近日,阿里云开源云原生数据库 PolarDB 官方网站全新升级上线。作为 PolarDB 开源项目与开发者、生态伙伴、用户沟通的平台,将以开放、共享、促进交流为宗旨,打造开放多元的环境,以实现共享共赢的目标。 立即体验全新官网&…

c++--二叉树应用

1.根据二叉树创建字符串 力扣 给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。 空节点使用一对空括号对 "()" 表示,转化后需要省略所有不影响字符…

web题型

0X01 命令执行 漏洞原理 没有对用户输入的内容进行一定过滤直接传给shell_exec、system一类函数执行 看一个具体例子 cmd1|cmd2:无论cmd1是否执行成功,cmd2将被执行 cmd1;cmd2:无论cmd1是否执行成功,cmd2将被执行 cmd1&cmd2:无论cmd1是否执行成…

AI相机“妙鸭相机”原理分析和手动实现方案

妙鸭相机 一个通过上传大约20张照片,生成专属自拍。在2023年7月末爆火,根据36Kr报道,妙鸭相机系阿里系产品,挂靠在阿里大文娱体系下,并非独立公司。 使用方法是上传20张自拍照片,之后可以选择模板生成自己…

如何创建51单片机KEIL工程

如何创建51单片机KEIL工程步骤: (1)打开keil软件,点击工具栏-Project,选择创建新的工程; (2)然后给工程命名,文章以project为例,然后点击保存 &#xff08…

p7付费课程笔记6:CMS GC

目录 前言 工作步骤 缺点 问题 前言 上一章节我们讲了串/并行GC,这一章节说下CMS GC。看前思考一个问题,并行GC与CMS GC的区别在哪里。 什么是CMS收集器 CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于…

经典CNN(三):DenseNet算法实战与解析

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊|接辅导、项目定制 1 前言 在计算机视觉领域,卷积神经网络(CNN)已经成为最主流的方法,比如GoogleNet,…

替换开源LDAP,西井科技用宁盾目录统一身份,为业务敏捷提供支撑

客户介绍 上海西井科技股份有限公司成立于2015年,是一家深耕于大物流领域的人工智能公司,旗下无人驾驶卡车品牌Q-Truck开创了全球全时无人驾驶新能源商用车的先河,迄今为止已为全球16个国家和地区,120余家客户打造智能化升级体验…

前端构建(打包)工具发展史

大多同学的前端学习路线:三件套框架慢慢延伸到其他,在这个过程中,有一个词出现的频率很高:webpack 。 作为一个很出名的前端构建工具我们在网上随便一搜,就会有各种教程:loader plugin entry吧啦吧啦。 但…

【框架篇】Spring MVC 介绍及使用(详细教程)

Spring MVC 介绍 1,MVC 设计模式 MVC(Model-View-Controller)是一种常见的软件设计模式,用于将应用程序的逻辑分离成三个独立的组件: 模型(Model):模型是应用程序的数据和业务逻辑…