Hadoop小文件归档

HDFS存储小文件的弊端

HDFS文件的元数据存放在NameNode,大量的小文件会导致NamenNode内存耗尽。

HDFS提供了一种针对小文件的归档方案,NameNode将多个小文件归档后的文件视为一个整体,所以可以大大降低元数据的开销。但是对于用户访问来说却是透明的,仍然可以可以对每个文件单独访问。

在这里插入图片描述

案例

  1. 文件归档需要执行mapreduce任务,所以要确保yarn服务正常启动。

     ./bin/star-yarn.sh
    
  2. 文件归档
    原始目录/input有3个小文件,分别为a.txt, b.txt, c.txt

    [root@master hadoop-2.6.5]# ./bin/hdfs dfs -ls /input
    Found 3 items
    -rw-r--r--   2 root supergroup         12 2019-12-05 20:32 /input/a.txt
    -rw-r--r--   2 root supergroup         12 2019-12-05 20:32 /input/b.txt
    -rw-r--r--   2 root supergroup         12 2019-12-05 20:32 /input/c.txt
    

    将input目录归档成input.har

    [root@master hadoop-2.6.5]# ./bin/hadoop archive -archiveName input.har  -p  /input   /output
    

    查看归档文件

    [root@master hadoop-2.6.5]# ./bin/hdfs dfs -ls /output
    Found 1 items
    drwxr-xr-x   - root supergroup          0 2019-12-05 21:24 /output/input.har
    
    
  3. 访问归档文件

    [root@master hadoop-2.6.5]# ./bin/hdfs dfs -ls har:///output/input.har
    Found 3 items
    -rw-r--r--   2 root supergroup         12 2019-12-05 20:32 har:///output/input.har/a.txt
    -rw-r--r--   2 root supergroup         12 2019-12-05 20:32 har:///output/input.har/b.txt
    -rw-r--r--   2 root supergroup         12 2019-12-05 20:32 har:///output/input.har/c.txt
    [root@master hadoop-2.6.5]# ./bin/hdfs dfs -cat  har:///output/input.har/a.txt
    hello a.txt
    
  4. 解归档文件

    [root@master hadoop-2.6.5]# ./bin/hdfs dfs -cp har:///output/input.har/*  /test
    [root@master hadoop-2.6.5]# ./bin/hdfs dfs -ls /test
    Found 3 items
    -rw-r--r--   2 root supergroup         12 2019-12-05 21:30 /test/a.txt
    -rw-r--r--   2 root supergroup         12 2019-12-05 21:30 /test/b.txt
    -rw-r--r--   2 root supergroup         12 2019-12-05 21:30 /test/c.txt
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值