zoukankan      html  css  js  c++  java
  • hdfs fsimage namenode 应该设置多少堆内存合适

    线上的fsimage 有1.8G左右了,设置了6G heap 不够用了
    新生代:老年代=1:2=2G: 4G

    NameNode的内存主要由NameSpace和BlocksMap占用,其中NameSpace存储的主要是INodeFile和INodeDirectory对象,BlocksMap存储的主要是BlockInfo对象。则估算NameNode占用的内存大小也就是估算集群中INodeFile、INodeDirectory和BlockInfo这些对象占用的heap空间。

    Java中常见数据结构占用的内存大小
    下面先列举下java中常见数据结构占用的内存大小(64bit的jvm)
    int = 4 bytes
    long = 8 bytes
    Reference size(引用) = 8 bytes
    Object header size(对象头) = 16 bytes
    Array header size(数组头) = 24 bytes
    ArrayList header size(list头) = 24(数组头) + 4(属性size的大小) = 28 bytes
    TreeMap.Entry = 64 bytes. (Entry的属性中有5个引用)
    HashMap.Entry = 48 bytes. (Entry的属性有3个引用)
    String header = 64 bytes.

    1.去 hdfs ui 上看

    19262510 files and directories, 14485600 blocks = 33748110 total filesystem object(s).
    Heap Memory used 4.68 GB of 5.86 GB Heap Memory. Max Heap Memory is 5.86 GB.
    

    33745283 * 150 bytes = 4.7G

    2.大概用jmap 查看内存大概有 4.68Gb

    $ jmap -histo:live  31366 | grep 'Total'
    Total      84543039     4688976560
    

    两者近似了,fsimage 大概在内存放大 2.6倍左右(当然内存中数据更多些,多了块与节点之间的映射)


    参考:http://bigdatadecode.club/NameNode内存解析及大小评估.html

  • 相关阅读:
    整数反转问题--正确率极低
    May LeetCoding Challenge9 之 求方差
    May LeetCoding Challenge8 之 交叉相乘
    EXCEL上传DEMO
    三层BOM
    OO alv 获取选择列
    PS 项目创建
    读取EXCEL到内表
    SAP XML 到 内表
    BOM 复制功能
  • 原文地址:https://www.cnblogs.com/jiangxiaoxian/p/9683863.html
Copyright © 2011-2022 走看看