西安网站seo厂家一键生成海报

张小明 2026/3/2 23:06:14
西安网站seo厂家,一键生成海报,河南网站建设优化推广,外发加工网 在家Hadoop3.0版本中#xff0c;作为一种新的冗余存储的方式引入进来。使用EC编码的方式替代原来的三副本存储#xff0c;保证数据可靠性的同时可以节约存储。相应地#xff0c;付出的代价是读取性能的下降#xff0c;对于访问频率不高的数据#xff0c;使用EC编码很合适。viv…Hadoop3.0版本中作为一种新的冗余存储的方式引入进来。使用EC编码的方式替代原来的三副本存储保证数据可靠性的同时可以节约存储。相应地付出的代价是读取性能的下降对于访问频率不高的数据使用EC编码很合适。vivo目前HDFS集群节点达万台级别数据规模接近EB级别并且业务数据规模还在以较高速度持续增长中。在推进压缩算法缓解存储压力的同时EC编码的推进也是存储降本的一大有力手段。1分钟看图掌握核心观点图片一、背景Reed-Soloman编码(简称RS码)是EC里一种经典的编码算法。下面简单介绍一下Reed-Soloman编码过程(不涉及数学原理的详细解析)。假设我们的输入数据以D1D2...D5的向量来表示矩阵B为编码矩阵进行编码后得到D和C组成的矩阵其中D为数据块(data block)C为校验块(parity block)。我们的数据写入都需要经过编码后才能进行存储。图片假设我们抹除掉了D1D4C2。图片我们能通过编码矩阵得到一个用于恢复的矩阵将这个矩阵与剩余块相乘可得到原来完整的输入数据再次进行编码后可恢复C2。图片二、存储布局的改变EC编码对HDFS的应用使数据块存储的结构发生了改变。图片在传统三副本的策略中一个文件被划分为不同的块(block)进行存储一个数据块对应三个副本(replication)每个副本存储的内容完全一致数据的存储时连续的这种布局称为连续块存储布局(Contigous Block Layout)。在EC策略中一个文件被划分为不同的块组(Block Group)进行存储一个块组内划分为多个内部块(Internal Block)其中内部块又分为数据块(Data Block)和校验块(Parity Block)。数据块存储文件的数据校验块存储由数据块生成的校验内容。一个块组内可容忍的块丢失数量与校验块数量相同如果丢失块的数量大于校验块数量则数据不可被恢复。在块组中数据并不像三副本策略一样连续存储在一个块中而是将连续的数据拆分为多个Cell分散存储在不同的内部块中形成一个个条带(Stripe)。这种布局称为条带存储布局(Striped Block Layout)。我们集群目前采用EC策略RS6-3-1024k其中6表示块组中数据块数量3表示块组中校验块数量1024k表示Cell大小。三副本是HDFS默认的冗余存储方式优点是当有机器宕机数据丢失时不会影响用户的读取补块的方式也仅仅是副本的复制简单高效。缺点也很明显存储的冗余度高三副本的存储冗余度达到200%。EC编码通过编码的存储方式来进行冗余存储。优点是存储的冗余度低(具体的冗余度取决于不同的存储策略)可靠性高。缺点是写入需要编码造成性能的下降(大概3-4倍)补块时间长(校验块越多补块时间越长)读取时如果遇到DN宕机也需要额外的资源与时间进行解码恢复。三、HDFS EC 码应用实践3.1 兼容性问题3.1.1 服务端早在2020年EC已经在vivo的HDFS集群中投入使用。EC是Hadoop3.0后推出的新特性要想正常使用服务端和客户端都需要升级到3.0或以上版本。由于离线集群规模庞大升级的调研和实施需要耗费比较长的时间。因此我们临时搭建了一套基于3.1版本的冷备专用集群使用EC来存储冷备数据如下图图片冷备集群使用3.1版本的Yarn可以同时访问热数据与冷数据3.1版本的HDFS专门用来存储EC编码的冷数据。由于新增冷备集群的方案增加了集群运维的成本架构也不够优雅只是暂时的解决办法。在2021年我们离线集群完成了HDFS从2.6到3.1的全面升级正式支持EC编码在2022年我们完成绝大部分冷备集群的数据到离线集群的迁移增量数据全部写到离线集群中。3.1.2 客户端我们没有对Client2.x客户端访问EC文件做兼容性的开发更多是通过推动用户升级客户端来访问EC文件例如Spark2任务切换至Spark3任务。该方案增加了用户迁移的成本但同时也减少了HDFS侧的开发成本用户任务逐步往Spark3迁移也更符合未来的规划。3.2 EC 异步转换由于EC编码会带来对文件读写性能的下降对EC编码的定位主要应用在冷数据的存储业务并不直接写EC数据而是采用后台转储的方式把三副本数据转储成EC数据。对不同业务而言对冷的标准都不一致不能用统一的标准来衡量数据的冷热。在推广EC编码的过程中平台并不用统一的标准来“强制”把用户数据转为EC是否转为EC的最终决定权在用户。我们向用户提供分区访问频率的数据作为参考帮助用户来了解不同分区路径的访问频次让用户更好地选择哪些分区转为EC编码。用户可以通过大数据开发者平台(Big data developer platform)设置x天前的数据转为EC存储后台程序会将相应分区通过Hadoop distcp将三副本写入到已设置EC策略的目录中再用新目录替换掉原目录其中目录名称不变保证了元数据一致用户无需修改代码。图片3.3 Distcp 数据校验先来介绍一下HDFS两种校验和的方式。3.3.1 MD5MD5CRC此方式为HDFS默认的校验方式这种校验方式会进行两次MD5计算一次CRC计算从名字就可以反映出来。块级校验和所有chunk CRC的级联的MD5值。an MD5 of a concatenation of chunk CRCs文件级校验和所有块校验和的级联的MD5值。the MD5 of the concatenation of all the block checksums由定义可知这种方式对于HDFS分块大小敏感不同的分块大小块级校验和不一样导致文件校验和也会不一样。图片3.3.2 Composite CRCComposite CRC一个新的校验和计算方式。当计算块校验和不是简单地将chunk CRC进行级联concatenation而是将chunk CRC进行数学式的组合mathematically compose计算文件校验和时对文件所有的chunk CRC进行数学式组合。因此对于文件校验和该计算方式对于分块大小并不敏感。 CRC算法相关论文。图片在数据进行distcp的过程中HDFS会进行校验和校验确保distcp的源数据与新数据一致但正如前文所说EC编码会带来存储布局的改变相同的文件三副本与EC数据存储的块大小块数量都不一致这让HDFS默认的MD5MD5CRC的方式变得不再适用。需要将校验方式改为COMPOSITE CRC。可通过 dfs.checksum.combine.mode 改变校验和校验的方式MD5MD5CRC(默认值) or COMPOSITE_CRC)。即使distcp过程中会进行校验为了确保万无一失我们还会对前后的分区目录的校验和校验。(目录校验和计算方式为将目录下文件MD5值排序再进行MD5计算为了保证转EC前后文件的一致性多加一道校验的工序是值得的。3.4 文件损坏与修复文件损坏与丢块是HDFS EC应用绕不开的一个话题原因是在Hadoop EC特性新推出的过程中有若干与文件损坏相关的bug。EC文件损坏的过程主要发生在补块阶段计算结果的不准确导致了新补的块与原来的块内容不一致。我们在EC推广的过程中也狠狠地踩过文件损坏的“坑”。如何避免文件损坏如何对补块的结果进行校验如何修复损坏文件是三个重要的需要解决的问题。3.4.1 如何避免文件损坏通过对社区的调研我们打了若干的patch来解决文件损坏与丢块的问题。3.4.2 对补块结果的校验我们引入了HDFS-15759Patch提供了一个对EC补块的校验功能在DN执行补块任务时对补块结果进行校验。如果校验失败会抛出异常并且补块任务会进行重试。3.4.3 EC批量校验工具我们对开源的EC批量校验工具进行了定制化的改造工具能够对EC目录进行批量扫描扫描出目录中的损坏的EC文件在此感谢Stephen ODonnell对工具的开源。原理大致如下对数据块进行EC编码通过比对新生成的校验块和原来的校验块来验证是否存在文件损坏。如果比对通过则没有文件损坏如果比对不通过则存在文件损坏。图片工具支持MR可以分布式执行此外也可只对一个条带进行比对只生成校验块的第一个条带比对与原校验块第一个条带是否一致这些都大大提高了批量校验EC文件的效率。工具地址https://github.com/sodonnel/hdfs-ec-validator3.4.4 修复损坏文件在我们的集群绝大部分损坏的文件都是ORC文件ORC文件发生损坏时由于其元数据分布的方式会出现元数据的损坏ORC无法解析。假设一个块组内数据块编号为1~6校验块编号为7~9数据块1损坏我们可以通过读取数据块2~6加上任一一个校验块得到完好的文件对于ORC文件而言判断是否完好取决于能否正常解析。HDFS客户端get文件的时候默认只会读取数据块我们通过改造HDFS客户端使我们能够读取块组内指定编号的块通过各种排列组合得到一个完好的文件之后将完好的文件覆盖掉HDFS上的损坏文件来达到文件修复的目的。图片3.5 机器异构存储策略由于EC数据访问频率低将EC数据存储到大存储的机器上利用机器异构降低我们的单位存储成本。在HDFS中如果文件写入的路径设置了hot存储策略的目录则会优先把文件存储到disk存储介质当中如果设置了cold存储策略的目录则会优先把文件存储到archive存储介质当中。因此当我们将大存储机器的盘都设置为Archive并且将EC目录设置为Cold存储策略即可将EC数据存放到大存储机器上使TCO降低进一步实现存储降本。图片四、总结与展望vivo的HDFS集群已存有几百PB的数据采用EC-RS6-3-1024k策略存储相比三副本EC-RS6-3-1024k方式能带来50%的存储收益节省了数百PB的存储空间为公司带来了巨大的收益。目前我们推荐用户将访问频次较少的数据转为EC因为EC会带来读取性能的下降如何减少EC带来的读取性能下降以及后续细化对用户数据的冷热分层对越冷的数据采用冗余度越低的EC策略EC补块速度优化等都是后续继续大规模推进EC需要解决的重要难题。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

抚州专业的企业网站建设公司长春建设集团网站

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个Git命令智能生成器,用户输入自然语言描述(如我想撤销上一次提交),AI自动输出对应的Git命令(如git reset HEAD~1&…

张小明 2026/3/2 22:04:48 网站建设

怎么在vps上做网站申请注册公司需要什么资料

深入解析文件系统安全:权限、加密与数据保护 1. 粘性位(Sticky Bits) 在Linux和Unix系统中,粘性位在文件和目录上有着不同的表现。对于文件,较新的Unix版本不再支持粘性位,而Linux从一开始就未在文件上使用该标志。但在目录方面,粘性位的支持依然活跃。 当一个目录设…

张小明 2026/1/19 18:07:35 网站建设

大淘客cms网站建设软装设计图

绿色移动云计算安全框架解析 一、引言 智能手机和平板电脑等移动技术正变得越来越重要,因为高效的计算和有益的通信方式不受时间和地点的限制。这些设备正通过采用云计算平台或移动云服务,逐步取代笔记本电脑或台式机系统。移动云计算(MCC)是云计算和移动计算的结合,数据…

张小明 2026/3/2 13:52:00 网站建设

新闻类网站模板南京网站建设网站设计 雷仁网络

51单片机串口通信实战:从“点灯”到与PC对话的完整跨越你有没有过这样的经历?在开发板上烧录好程序,LED也亮了,按键也能响应——一切看起来都正常。可当你想把传感器采集的数据发给电脑看看时,串口助手却一片空白&…

张小明 2026/3/2 22:23:59 网站建设

咸阳网站建设公司wordpress自定义背景

Docker在生产环境中的角色与应用 在现代软件开发和部署中,Docker 已经成为了一个不可或缺的工具。它为开发者和运维人员提供了一种高效、便捷的方式来管理应用程序的生命周期。下面我们将详细探讨 Docker 在生产环境中的各个方面。 资源限制 在 Linux 系统中,资源限制是在…

张小明 2026/1/19 18:06:03 网站建设

网站html后台模板网站主题如何制作

2025年3月20日起,新版《网络安全等级测评报告模板》正式启用,标志着等保测评进入“精准防控”新阶段。对企业而言,合规不再是简单满足条款,而是要应对云原生、物联网等新增场景的防护要求,这让不少运维人员在测评中频频…

张小明 2026/1/19 18:05:32 网站建设