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:/// 是协议

  • 相关阅读:
    语音合成
    JAVA的18条BASE
    Java关键字final、static使用总结
    JAVA学习之路:不走弯路,就是捷径
    每个java初学者都应该搞懂的问题
    Tomcat5.5.9+JSP经典配置实例
    FineUI控件集合
    AngularJS基础
    数据库优化方案之SQL脚本优化
    数据库分库分表策略之MS-SQL读写分离方案
  • 原文地址:https://www.cnblogs.com/wt7018/p/13599539.html
Copyright © 2011-2022 走看看