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

这篇具有很好参考价值的文章主要介绍了HDFS小文件解决方案---archive归档文件命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

  • hdfs并不擅长存储小文件,因为每个文件最少一个block,每个block的元数据都会在namenode占用内存,如果存在大量的小文件,它们会吃掉namenode大量内存。如下所示,模拟小文件场景:
    HDFS小文件解决方案---archive归档文件命令,# hdfs,hdfs,hadoop,大数据

Archive概述

  • hadoop archive可以有效地处理以上的问题,它可以把多个文件归档成为一个文件,归档成一个文件后还可以透明的访问每一个文件
    HDFS小文件解决方案---archive归档文件命令,# hdfs,hdfs,hadoop,大数据

创建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集群
    HDFS小文件解决方案---archive归档文件命令,# hdfs,hdfs,hadoop,大数据

查看归档文件

查看归档之后的样子

hadoop fs -ls /outputdir /test.har

这里可以看到har文件包括:两个索引文件,多个part文件(本例只有一个)以及一个标识成功与否的文件。part文件是多个源文件的集合,通过index文件可以去找到源文件
例如上述的三个小文件1.txt,2.txt,3.txt内容分别是1,2,3.进行archive操作之后,三个小文件就归档到test.har里的part-0一个文件里。
HDFS小文件解决方案---archive归档文件命令,# hdfs,hdfs,hadoop,大数据

查看归档文件之前的样子

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

HDFS小文件解决方案---archive归档文件命令,# hdfs,hdfs,hadoop,大数据

提取archive

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

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

HDFS小文件解决方案---archive归档文件命令,# hdfs,hdfs,hadoop,大数据

archive注意事项

HDFS小文件解决方案---archive归档文件命令,# hdfs,hdfs,hadoop,大数据文章来源地址https://www.toymoban.com/news/detail-629719.html

到了这里,关于HDFS小文件解决方案---archive归档文件命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 删除本地文件后,使用 git pull 命令从远程仓库无法拉取到被删除文件的解决方案

    一、问题描述: 从git上拉取文件后,在本地有修改文件,导致文件爆红。然后修改的内容又不想提交,就把爆红的文件删除掉了,想重新从git上拉取,但是此时却拉取不成功了。(虽显示已更新,但并未成功)  1.git pull 2.git status查看当前的状态,也提示了有被删除的文件。 二

    2024年01月18日
    浏览(64)
  • 【解决方案】‘python‘ 不是内部或外部命令,也不是可运行的程序或批处理文件

    有时候,在 cmd 中输入 python,会提醒 ‘python’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 我将python安装在E盘之后,输入python,显示如下问题 这个问题本质其实就是,windows的cmd并不能识别python这个符号(即无法识别这个符号是一个可执行程序),因为windows这

    2024年02月14日
    浏览(63)
  • 服务器安装 anaconda & conda: command not found [解决方案] & bashrc文件中环境变量配置错误,导致linux命令无法正常使用的解决方案

    由于连接的服务器,无法直接在anaconda官网上下载安装文件,所以使用如下方法: 之后一直按 enter ,直到出现提示要输入 yes or no ,输入 yes 显示以下信息即为安装成功 在终端输入conda info --envs查看anaconda是否安装成功,发现报错:conda: command not found 原因在于: ~/.bashrc文件没

    2024年02月06日
    浏览(95)
  • 【数据库管理】⑤归档日志Archive Log

    日志归档 是指 将数据库的归档日志文件保存到指定的位置 , 以便在需要时进行恢复和回滚操作。 在Oracle数据库中, 日志归档是一种重要的备份和恢复策略,可以保证数据库的数据完整性和可靠性。 日志归档的 主要用途包括 : 数据库备份 :归档日志文件可以用于数据库

    2023年04月09日
    浏览(50)
  • 利用 pt-archiver 实现数据库归档功能

    一个完整的项目,除了开发阶段,还有运维移交阶段,运维移交往往需要考虑数据库后续的归档机制,比如:将1年前的数据归档到另外一台服务器的归档库。有些业务表数据量比较大,为了更快的查询速度更好的用户体验,可能会对某张特定的表做归档处理,只保留最近1个

    2024年02月19日
    浏览(40)
  • copy archived log from ASM 异地恢复归档

    NOTE:  In 11g, you can use RMAN to copy the files across the network. See Note 1909235.1 Copy database file directly across network using RMAN in 11g including Primary and Standby Please use the rman scripts below to backup missing archive log files from the primary site and restore to the standby site. RMAN run { allocate channel c1 type disk; backup arc

    2024年02月09日
    浏览(38)
  • MySQL数据库归档工具之【pt-archiver】

    前言 当MySQL数据库积累了大量历史数据时,有效地管理这些数据变得至关重要。为了避免影响数据库性能,并确保其顺畅运行,我们可以利用 pt-archiver 工具来对历史数据进行归档。 什么是pt-archiver? pt-archiver是Percona Toolkit的一部分,是一个强大的MySQL数据归档工具。它能够帮

    2024年04月14日
    浏览(37)
  • 关于unbuntu启动hadoop时报错org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block的解决方案

    虚拟机安装 Hadoop 3.1.3,并运行了 HDFS 将网上查询到的资料的所有解决方法都试了一遍,下面这个解决方案成功解决了我的问题。 启动HDFS后,执行统计词频实例wordcount时,显示Block受损。 异常信息 查看受损模块 运行代码: hadoop fsck /你的path 将报错中file后面的路径粘贴过来即

    2024年02月08日
    浏览(42)
  • Git_常用命令+代码冲突解决方案

    –local: 配置对当前仓库有效 –global: 配置对当前用户(指的是当前用于登录系统的用户)的所有仓库有效 设置用户名及邮箱 注意:由于此处设置的用户名中间有空格所以要使用双引号,正常设置时无需使用双引号 设置仓库的认证方式 credentail.helper后的参数可选: cache: 在第

    2024年04月14日
    浏览(56)
  • npm不是内部或外部命令解决方案

    一、出现的问题 二、解决方法 1、第一种可能的问题是node环境变量配置问题,网上有很多相关文章,配置后任然无用 2、node对应的npm都没自动安装 ,查看自己的安装目录   可以看出并没有npm文件 需要自己到npm官网下载手动安装node对应的npm版本  下载方法: CNPM Binaries Mirr

    2024年01月25日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包