欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SET EC调试版

程序员文章站 2022-04-10 23:53:49
...

断点调试

[aaa@qq.com hadoop]$ hdfs ec -setPolicy -path /ec1 -policy RS-3-2-1024k

SET EC调试版
通过path获得INodeInPath:iip

INodesInPath: path = /ec1
  inodes = [, ec1], length=2
  isSnapshot        = false
  snapshotId        = 2147483646

SET EC调试版
INode的属性是INodeDirectory:
SET EC调试版
新加入的XAttr内容为:

XAttr [ns=SYSTEM, name=hdfs.erasurecoding.policy, value=[0, 0, 0, 12, 82, 83, 45, 51, 45, 50, 45, 49, 48, 50, 52, 107]]
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200304193301520.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2Fuc3dlcjEwMGFuc3dlcg==,size_16,color_FFFFFF,t_70)
    inode.addXAttrFeature(new XAttrFeature(xAttrs), snapshotId);

通过XAttr来构建 XAttrFeature, 然后INode来添加属性。
XAttr被格式化成Bytes类型。

// INodeWithAdditionalFields
  protected void addFeature(Feature f) {
    int size = features.length;
    Feature[] arr = new Feature[size + 1];
    if (size != 0) {
      System.arraycopy(features, 0, arr, 0, size);
    }
    arr[size] = f;
    features = arr;
  }

SET EC调试版

原来的feature为0,现在有了1个,所以一共是1个。
为什么XAttr里面还有两个属性,一个是attrs,一个是xAttrs呢?并且为什么xAttrs=null,不是应该有值才对吗???
SET EC调试版

相关标签: HDFS