zoukankan      html  css  js  c++  java
  • HDFS 小文件存档(重要)

    1、原因:

    小文件不适合储存在Hadoop中,因为都会占用NameNode内存的元数据(相当于目录),

    无论小文件的大小都会占用一个DataNode块(128M)

    2、解决方案

    HDFS存档文件或HAR文件,对内是一个一个独立的文件,对NameNode是一个整体,减少NameNode的内存

    3、实操

    a、启动集群

    启动HDFS和Yarn

    b、创造环境

    # 创建HDFS目录
    hadoop fs -mkdir -p /usr/tom/input
    # 上传文件到HDFS
    hadoop fs -put ./a.txt /usr/tom/input
    hadoop fs -put ./b.txt /usr/tom/input
    hadoop fs -put ./c.txt /usr/tom/input

    c、开启端口 (血的教训)

    sudo firewall-cmd --zone=public --add-port=8032/tcp --permanent
    sudo firewall-cmd --reload

    开启了下列端口,仍需开启端口

    37099 41304 43899 45796 43221 
    40007 33400 35676 42095 38084
    37469 44899 37125 43179 35034
    35776 41624 34054 43654 803241215

    时间有限,暴力解决,关闭防火墙

    sudo systemctl stop firewalld

    c、归档文件

    hadoop archive -archiveName wt.har -p /usr/tom/input /usr/tom/output
                                             必须代.har  hdfs src              hdfs dest

     d、查看归档

    hadoop fs -ls -R /usr/tom/output/wt.har

    注意:对外 wt.har 是一个整体,对应一个NameNode

    e、解析归档文件

    hadoop fs -ls -R har:////usr/tom/output/wt.har

    注意:对内wt.har,是一个一个小文件,har:/// 是协议

  • 相关阅读:
    互联网创业的葵花宝典
    null和undefined的区别
    mpc0.9编译方法
    gmp5.0.5编译
    为iphone及iphone simulator编译poco库
    binutils2.22编译心得
    为iphone及iphone simulator编译qt库
    sql server之触发器调用C#CLR存储过程实现两个表的数据同步
    poco之HttpRequest之get方法
    poco之HttpRequest之post方法
  • 原文地址:https://www.cnblogs.com/wt7018/p/13599539.html
Copyright © 2011-2022 走看看