BOB(中国)官方入口-BOB网址是多少

BOB体育官方网址 一篇学会Hadoop3数据容错技术

202110月09日

BOB体育官方网址 一篇学会Hadoop3数据容错技术

BOB体育官方网址

本文转载自微信公多号「大数据技术派」,作者柯少。转载本文请有关大数据技术派公多号。

BOB体育官方网址背景 BOB体育官方网址

随着大数据技术的发展,HDFS行为Hadoop的中央模块之一得到了普及的行使。为了数据的郑重性,HDFS经过多副本机制保证。在HDFS中的每一份数据都有两个副本,1TB的原起数据必要占用3TB的磁盘空间,存储行使率只有1/3。而且编制中大片面是行使频率专门矮的冷数据,却和炎数据相通存储3个副本,给存储空间和网络带宽带了很大的压力。所以,在保证郑重性的前挑下如何挑高存储行使率已成为现在HDFS面对的主要题目之一。Hadoop3.0引入了纠删码技术简称EC,是一栽码容错技术。最早用于通信走业,数据传输中的数据恢复。它经过对数据进走分块,然后计算出校验数据,使得各个片面的数据产生有关性。当一片面数据块丢失时,能够经过盈余的数据块和校验块计算出丢失的数据块。

BOB体育官方网址原理 BOB体育官方网址

Reed-Solomon丢失。比如:吾们有7、8、9三个原起数据,经过矩阵乘法,计算出两个校验数据50、122。这时原起数据添上校验数据,统统五个数据:7、8、9、50、122,能够肆意丢两个,然后经过算法进走恢复。

BOB体育官方网址

BOB体育官方网址

比如:吾们有7、8、9三个原起数据,经过矩阵乘法,计算出两个校验数据50、122。这时原起数据添上校验数据,统统五个数据:7、8、9、50、122,能够肆意丢两个,然后经过算法进走恢复。

BOB体育官方网址

BOB体育官方网址
7 x 50 y x + 2*8 + 3 * 9 = y 4x + 5*8 + 6 * 9 = 122 
BOB体育官方网址HDFSEC方案 BOB体育官方网址

传统模式下HDFS中文件的基本组成单位是block,而EC模式下文件的基本组成单位是blockgroup。以RS为例,每个blockgroup包含3个数据块,2个校验块。

BOB体育官方网址

不息组织

BOB体育官方网址

文件数据被挨次写入块中,一个块写满之后再写入下一个块,这栽分布手段称为不息组织。益处:

BOB体育官方网址 BOB体育官方网址容易实现 BOB体育官方网址方便和多副本存储策略进走转换 BOB体育官方网址 BOB体育官方网址

弱点:

BOB体育官方网址 BOB体育官方网址必要客户端缓存有余的数据块 BOB体育官方网址不正当存储幼文件 BOB体育官方网址 BOB体育官方网址

BOB体育官方网址条形组织 BOB体育官方网址

条组成的序列。文件数据被挨次写入条的各个单元中,当一个条写满之后再写入下一个条,一个条的分别单元位于分别的数据块中。这栽分布手段称为条形组织。益处:

BOB体育官方网址 BOB体育官方网址客户端缓存数据较少 BOB体育官方网址不论文件大幼都适用 BOB体育官方网址 BOB体育官方网址

弱点:

BOB体育官方网址 BOB体育官方网址会影响一些位置敏感义务的性能,由于原先在一个节点上的块被松散到了多个分别的节点上 BOB体育官方网址和多副本存储策略转换比较麻烦 BOB体育官方网址 BOB体育官方网址

BOB体育官方网址HDFSEC开发计划 BOB体育官方网址

整个HDFSEC项现在主要分为两个阶段:1、用户能够读和写一个条形组织,以及从不息组织转换成多副本模式。第一阶段HDFS-7285已经实现,第二阶段HDFS-8030正在进走中。

BOB体育官方网址

纠删码策略

BOB体育官方网址

RS-10-4-1024k:行使RS码,每10个数据单元,就能够得到原起数据。每个单元的大幼是1024k=10241024=1048576。

BOB体育官方网址

以RS-6-3-1024k为例,6个数据单元+3个校验单元,能够容忍肆意的3个单元丢失,冗余的数据是50%。而采用副本手段,3个副本,冗余200%,却还不及容忍肆意的3个单元丢失。所以,RS码在相通冗余度的情况下,会大大升迁数据的可用性,而在相通可用性的情况下,会大大撙节冗余空间。

BOB体育官方网址纠删码基本操作 BOB体育官方网址

1.查望现在声援的纠删码策略BOB体育官方网址,命令如下:

BOB体育官方网址
[user@nn1  ~]$ hdfs ec -listPolicies  Erasure Coding Policies: ErasureCodingPolicy=[Name=RS-10-4-1024k, Schema=[ECSchema=[Codec=rs, numDataUnits=10, numParityUnits=4]], CellSize=1048576, Id=5, State=DISABLED] ErasureCodingPolicy=[Name=RS-3-2-1024k, Schema=[ECSchema=[Codec=rs, numDataUnits=3, numParityUnits=2]], CellSize=1048576, Id=2, State=DISABLED] ErasureCodingPolicy=[Name=RS-6-3-1024k, Schema=[ECSchema=[Codec=rs, numDataUnits=6, numParityUnits=3]], CellSize=1048576, Id=1, State=DISABLED] ErasureCodingPolicy=[Name=RS-LEGACY-6-3-1024k, Schema=[ECSchema=[Codec=rs-legacy, numDataUnits=6, numParityUnits=3]], CellSize=1048576, Id=3, State=DISABLED] ErasureCodingPolicy=[Name=XOR-2-1-1024k, Schema=[ECSchema=[Codec=xor, numDataUnits=2, numParityUnits=1]], CellSize=1048576, Id=4, State=DISABLED] 
BOB体育官方网址

2.竖立纠删码策略

BOB体育官方网址

纠删码策略是与详细的路径。

BOB体育官方网址
hdfs://bigdata/dn1/path hdfs://bigdata/dn1/path2 
BOB体育官方网址
[user@nn1  ~]$ hdfs dfs -mkdir /rs-6-3  [user@nn1  ~]$ hdfs ec -getPolicy -path /rs-6-3  The erasure coding policy of /rs-6-3 is unspecified 
BOB体育官方网址

接下,给此现在录竖立纠删码策略RS-6-3-1024k,此策略名是以前面list策略中查到的。能够望到已经竖立成功。

BOB体育官方网址
[user[@nn1 ] ~]$ hdfs ec -setPolicy -path /rs-6-3 -policy RS-6-3-1024k  Set erasure coding policy RS-6-3-1024k on /rs-6-3 
BOB体育官方网址

仔细:RS-6-3-1024k能够直接竖立成功,其它的策略必要enable后,才能竖立:竖立RS-3-2-1024k,这个必要先enablePolicy

BOB体育官方网址
[user[@nn1 ] hadoop-3.0.0-beta1]$ hdfs ec -setPolicy -path /rs-3-2 -policy RS-3-2-1024k  Set erasure coding policy RS-3-2-1024k on /rs-3-2 
BOB体育官方网址

验证:

BOB体育官方网址
[user[@nn1 ] hadoop-3.0.0-beta1]$ hdfs ec -getPolicy -path /rs-3-2  RS-3-2-1024k 
BOB体育官方网址

竖立RS-10-4-1024k,倘若不enablePolicy,会报错

BOB体育官方网址
[user[@nn1 ] hadoop-3.0.0-beta1]$ hdfs ec -setPolicy -path /rs-10-4 -policy RS-10-4-1024k  
BOB体育官方网址

报错了RemoteException:Policy'RS-10-4-1024k'doesnotmatchanyenablederasurecodingpolicies:[RS-3-2-1024k,RS-6-3-1024k].AnerasurecodingpolicycanbeenabledbyenableErasureCodingPolicyAPI.

BOB体育官方网址

3.上传文件,查望文件码情况

BOB体育官方网址

下面吾们上传一个文件望一下,这边挑示吾们异国行使ISA-L声援的码器

BOB体育官方网址
[user@nn1 ~]$ hdfs dfs -cp /profile /rs-6-3/ 2017-11-30 10:24:29,620 WARN erasurecode.ErasureCodeNative: ISA-L support is not available in your platform... using builtin-java codec where applicable 
BOB体育官方网址

查望profile码后的分布

BOB体育官方网址
[user@nn1 ~]$ hdfs fsck /rs-6-3/profile  -files -blocks -locations 
BOB体育官方网址

输出:

BOB体育官方网址
Connecting to namenode via http://nn1:9870/fsck?ugi=user&files=1&blocks=1&locations=1&path=/rs-6-3/profile FSCK started by user :  OK 0. BP-529485104-192.168.182.11-1511810134643:blk_-9223372036854775792_1065 len=1872 Live_repl=4  [blk_-9223372036854775792:DatanodeInfoWithStorage[192.168.182.11:9866,DS-da58ee3e-adcc-4f6c-8488-c2a0b742d8b9,DISK], blk_-9223372036854775786:DatanodeInfoWithStorage[192.168.182.20:9866,DS-c36de658-0f5a-42de-8898-eab3b04c7016,DISK], blk_-9223372036854775785:DatanodeInfoWithStorage[192.168.182.14:9866,DS-a3569982-de52-42b5-8543-94578f8b452a,DISK], blk_-9223372036854775784:DatanodeInfoWithStorage[192.168.182.19:9866,DS-71be9468-c0c7-437c-8b59-ece27593b4c2,DISK]] 
BOB体育官方网址

查望block文件的新闻,BOB体育官方网址能够望到nn1上block的大幼正益是1872。这是由于1872<1024k所以无法分割直接集体码。

BOB体育官方网址
[user@nn1 ~]$ ls dfs/share/datanode/current/BP-529485104-192.168.182.11-1511810134643/current/finalized/subdir0/subdir0/blk_-9223372036854775792 -l -rw-rw-r--. 1 user user 1872 Nov 30 10:24 dfs/share/datanode/current/BP-529485104-192.168.182.11-1511810134643/current/finalized/subdir0/subdir0/blk_-9223372036854775792 
BOB体育官方网址

Live_repl=4的注释外示此文件共有4个副本其中1个是原起数据3个是校验数据所以这边的策略是rs_6_3要保证冗余3个校验单元原起数据1872<1024k只能组成1个数据单元再添上3个校验单元就是4个副本了。1block1872远幼于256MB自然只有1个block了倘若单个datanode上多个数据单元之和>256MB这时才会生成新的block。再望一个

BOB体育官方网址
hdfs dfs -cp file:///home/user/jdk1.8.0_152/lib/ant-javafx.jar /rs-6-3/ 
BOB体育官方网址

此文件的大幼是1224175>1024k但是<2*1024k也就是能够组成2个数据单元添上3个校验单元推想最后码出统统是5个副本。查望下

BOB体育官方网址
[user@nn1 ~]$ hdfs fsck /rs-6-3/ant-javafx.jar  -files -blocks -locations 
BOB体育官方网址

自然是

BOB体育官方网址
/rs-6-3/ant-javafx.jar 1224175 bytes erasure-coded: policy=RS-6-3-1024k 1 block:  OK 0. BP-529485104-192.168.182.11-1511810134643:blk_-9223372036854775776_1066 len=1224175 Live_repl=5  [blk_-9223372036854775776:DatanodeInfoWithStorage[192.168.182.11:9866DS-da58ee3e-adcc-4f6c-8488-c2a0b742d8b9DISK] blk_-9223372036854775775:DatanodeInfoWithStorage[192.168.182.18:9866DS-2dc5d603-ad42-4558-bfda-c9a597f88f06DISK] blk_-9223372036854775770:DatanodeInfoWithStorage[192.168.182.14:9866DS-a3569982-de52-42b5-8543-94578f8b452aDISK] blk_-9223372036854775769:DatanodeInfoWithStorage[192.168.182.20:9866DS-c36de658-0f5a-42de-8898-eab3b04c7016DISK] blk_-9223372036854775768:DatanodeInfoWithStorage[192.168.182.13:9866DS-118ae8da-f820-447c-9d97-dbe4f33bff39DISK]] 
BOB体育官方网址

查望第一个block的大幼能够望到正益是遵命1024k切分的

BOB体育官方网址
[user@nn1 ~]$ ls dfs/share/datanode/current/BP-529485104-192.168.182.11-1511810134643/current/finalized/subdir0/subdir0/blk_-9223372036854775776 -l -rw-rw-r--. 1 user user 1048576 Nov 30 10:30 dfs/share/datanode/current/BP-529485104-192.168.182.11-1511810134643/current/finalized/subdir0/subdir0/blk_-9223372036854775776 
BOB体育官方网址

查望第二个block的大幼其大幼是175599

BOB体育官方网址
[user@dn7 ~]$ ls dfs/share/datanode/current/BP-529485104-192.168.182.11-1511810134643/current/finalized/subdir0/subdir0/blk_-9223372036854775775 -l -rw-rw-r--. 1 user user 175599 Nov 30 11:54 dfs/share/datanode/current/BP-529485104-192.168.182.11-1511810134643/current/finalized/subdir0/subdir0/blk_-9223372036854775775 
BOB体育官方网址

第一个block1048576+第二个block175599=1224175正益是ant-javafx.jar的大幼。为什么第二个block异国补齐1024k呢?由于补齐的话也是填0异国必要。第三个block~第五个block是校验数据。

BOB体育官方网址

数据恢复验证

BOB体育官方网址

吾们以ant-javafx.jar为例它有5个副本分布在:

BOB体育官方网址
192.168.182.11 192.168.182.18 192.168.182.14 192.168.182.20 192.168.182.13 
BOB体育官方网址

其中2个原起数据单元、3个校验数据单元意味着能够容忍肆意3个数据单元的丢失。下面吾们关闭后3个节点上的datanode

BOB体育官方网址
192.168.182.14 192.168.182.20 192.168.182.13 
BOB体育官方网址

然后从/rs-6-3现在录中复制ant-javafx.jar到本地/tmp现在录并和本地的ant-javafx.jar比较精确表明数据异国题目。

BOB体育官方网址
[user@nn1 ~]$ hdfs dfs -cp /rs-6-3/ant-javafx.jar file:///tmp/ 2017-11-30 13:12:36493 WARN erasurecode.ErasureCodeNative: ISA-L support is not available in your platform... using builtin-java codec where applicable [user@nn1 ~]$ diff jdk1.8.0_152/lib/ant-javafx.jar /tmp/ant-javafx.jar 
BOB体育官方网址

再关失踪一个节点在下面的节点

BOB体育官方网址
192.168.182.18 
BOB体育官方网址

运走

BOB体育官方网址
[user@dn7 ~]$ hdfs --daemon stop datanode 
BOB体育官方网址

在nn1上再次复制报错由于丢失的数据单元个数>3了

BOB体育官方网址
cp: 4 missing blocks the stripe is: Offset=0 length=175599 fetchedChunksNum=0 missingChunksNum=4 
BOB体育官方网址

在dn3上启动datanode再次复制发现照样报错说192.168.182.18上数据丢失这是为什么呢?查望HDFS状态发现刚才关闭的dn3dn9dn2dn7照样是live的这是由于datanode的状态有一个刷新的阻隔这个阻隔默认是10m只有10m异国收到datanode的新闻namenode才认为此datanode是dead的。所以期待10m后能够望到HDFS的livenodes变成了7。

BOB体育官方网址

BOB体育官方网址

这个时候再次复制DFSClient就清新dn7是dead就不会再选择dn7了转而选择其它的live节点所以复制成功。

BOB体育官方网址
[user@nn1 ~]$ hdfs dfs -cp /rs-6-3/ant-javafx.jar file:///tmp/ 2017-11-30 13:26:35241 WARN erasurecode.ErasureCodeNative: ISA-L support is not available in your platform... using builtin-java codec where applicable cp: `file:///tmp/ant-javafx.jar': File exists 
BOB体育官方网址

将dn2、dn7、dn9恢复启动datanode再次查望。

BOB体育官方网址
[user@nn1 ~]$ hdfs fsck /rs-6-3/ant-javafx.jar  -files -blocks -locations Connecting to namenode via http://nn1:9870/fsck?ugi=user&files=1&blocks=1&locations=1&path=/rs-6-3/ant-javafx.jar FSCK started by user :  OK 0. BP-529485104-192.168.182.11-1511810134643:blk_-9223372036854775776_1066 len=1224175 Live_repl=5  [blk_-9223372036854775776:DatanodeInfoWithStorage[192.168.182.11:9866DS-da58ee3e-adcc-4f6c-8488-c2a0b742d8b9DISK] blk_-9223372036854775770:DatanodeInfoWithStorage[192.168.182.14:9866DS-a3569982-de52-42b5-8543-94578f8b452aDISK] blk_-9223372036854775769:DatanodeInfoWithStorage[192.168.182.19:9866DS-71be9468-c0c7-437c-8b59-ece27593b4c2DISK] blk_-9223372036854775768:DatanodeInfoWithStorage[192.168.182.16:9866DS-c32fdd4e-aa34-4b65-b192-643ade06d71bDISK] blk_-9223372036854775775:DatanodeInfoWithStorage[192.168.182.18:9866DS-2dc5d603-ad42-4558-bfda-c9a597f88f06DISK]] 
BOB体育官方网址

发现数据单元的分布发生了转折。

BOB体育官方网址 BOB体育官方网址192.168.182.11  BOB体育官方网址192.168.182.14  BOB体育官方网址192.168.182.19  BOB体育官方网址192.168.182.16  BOB体育官方网址192.168.182.18  BOB体育官方网址 BOB体育官方网址 BOB体育官方网址

其中绿色片面答该是在这些节点关闭后hdfs重新启动译码和码将原丢失的数据补到了dn8和dn5上。而dn8异国往失踪能够是还没得及。总之倘若码后的stripe中有数据丢失hdfs会自动启动恢复做事。

BOB体育官方网址

BOB体育官方网址 BOB体育官方网址 BOB体育官方网址Linux5.15将默认为一切内核构建启用-Werror译器标记 BOB体育官方网址Linux发走版新人:CutefishOS BOB体育官方网址Linux不必要杀毒柔件或防火墙是真照样伪? BOB体育官方网址标杆徐2021LinuxSre运维系列⑦:企业级DNS域名解析服务入门与实践 BOB体育官方网址Linux从头学:理解了这三个概念才能彻底理解 BOB体育官方网址 BOB体育官方网址 BOB体育官方网址
回到顶部

Powered by BOB(中国)官方入口-BOB网址是多少 @2018 RSS地图 HTML地图