现在的位置: 首页 > 综合 > 正文

Hadoop中容错恢复的问题

2019年05月05日 ⁄ 综合 ⁄ 共 834字 ⁄ 字号 评论关闭

请教--关于Hadoop中容错恢复的问题

hadoop设计的初衷就是容错.计算任务(MapReduce task)能够在节点宕机或其它随机错误自行恢复

先把数据用编码矩阵 编码生成一个中间文件 体积是原来的120%(打个比方),这个20%中是完整文件的冗余信息,译码的时候通过把这中间文件 按照译码矩阵 译出 体积在100%~105%之间, 这个编码和译码的技术 可以恢复原始文件

因为要写成论文,我想从Hadoop的容错恢复中 用我的编码和译码技术 不知道Hadoop里面有没有这样的接口。。

我想问的是:Hadoop中容错和恢复使用的是什么技术? 不知道Hadoop中是不是采用和我说的类似的编码译码技术。。。

 

楼主的设想好复杂啊
hadoop的容错机制很简单:
  针对文件内容:文件拆成小块后,每个小块在不同的datanode上存上N份。任意一个datanode挂了,还有N-1份数据是正确的。N越大资源占用越多,可靠性越大。
  针对文件记录:可以在磁盘上不同目录、不同分区存上N份。通过硬件本身提供的容灾能力保证总有一份正确数据被保留下来。

同时hadoop自己也会做块的内容验证的:
  针对文件内容:hadoop会记录每块内容的“内容摘要”,用于判断文件内容是否与文件记录相符合
  针对文件记录:hadoop有版本验证、检查点、日志记录等方式保证内容正确

至于楼主提到的编码译码,好像在容灾的时候不需要用这个。

TOP

 
你这是存储层的容错技术,Hadoop 的容错体现在 中间结果materialization和speculative execution上,

你说的是硬件层次的容错,比如RAID,和Hadoop的软件层容错不是一个层次的事情,如果实在要加,可以加到map输出的中间结果上,然后reduce读中间结果的时候进行解码

抱歉!评论已关闭.