大数据 week3 HDFS Erasure Coding

https://www.cse.unsw.edu.au/~cs9313/20T2/slides/L2.pdf

https://drive.google.com/drive/folders/13_vsxSIEU9TDg1TCjYEwOidh0x3dU6es

回顾 3-replication

  1)上周我们讲到一个文件会被复制三份,放入不同的datanodes;

  2)比如一份文件640MB,被分为五个blocks(128*5),复制三份就是15个blocks,放入不同的datanodes,同一个datanodes中不能有相同的block,一般这三个blocks所在的datanotes在两个racks

  3)这样有两个问题就是,所占内存太大,并且很少访问副本

  

HDFS Erasure Coding

  1) 不是简单的将文件(blocks)分为三份,EC将单一block的内容写入9个block中(encoding),任意6个便能还原原始block(decoding)

  2)   过程:

    (1)将 block(128MB)中的文件分为cells(64KB)

    (2)将这些cells 六个六个的写入六个不同的blocks中

    (3)一行的六个cells计算出3个parities,写入另外三个blocks

    (4)这一行的九个cells就组成了一个strpe,这九个blocks就完成了block(128MB)的写入

    (5)这个block group的信息会被记录在NameNode中

  3)failure:

    (1)如果一个interval block坏掉了, We can recover the data from any 6 internal blocks

 3-replication VS Erasure Coding:

  1)EC占空间少(1.5N) 3R (3N)

  2)EC允许丢失3个nodes,3R至允许丢失2个Nodes

  3)3R具有更好的读写表现,因为一个replica就是一个整体,可以直接操作,EC的读写需要解码

 (4)EC读数据要对6个blocks操作,写要对9个Blocks操作 group of blocks

  4)恢复3R的cost更低

  

 

原文地址:https://www.cnblogs.com/ChevisZhang/p/13141975.html