hadoop纠删码

耀灵1年前技术文章357

纠删码是CDH6/Hadop3引入的新功能,之前的HDFS都是副本方式容错,默认情况下,一个文件有三个副本,可以容忍任意2个副本(Datanode)不可用,是以牺牲空间的代价提供了数据的可用性,带来了2倍的冗余开销。例如1TB的数据,需要3TB的空间来进行存储。而纠删码可以在同等可用性的情况下,节省更多的空间。

以RS-6-3-1024k为例,6份原始数据,编码后生成3份校验数据,一共9份数据,只要最终有6份数据存在,就可以得到原始数据,它可以容忍任意3份数据不可用,而冗余的空间(3)只有原始空间(6)的0.5倍,只有副本方式(6*3-6=12)的1/4,因此,可以节约更多的空间成本。

对于RS-3-2-1024k来说,3份原始数据,编码后生成2分校验数据,一共5份数据,可以容忍任意2份数据不可用,冗余空间(2)只有原始空间67%,只有副本方式的(3*3-3=6)的1/3。可见RS-6-3-1024k比RS-3-2-1024k策略能节约更多空间。

1、CDH6 默认没有开启纠删码,需要在cloudera manager中进行设置,启用后需要重启HDFS服务。

1.jpg



2.jpg


3.jpg

相关文章

两款方案详解,企业线下数据库迁移至云上ScyllaDB(1)

两款方案详解,企业线下数据库迁移至云上ScyllaDB(1)

方案一通过扩缩容(上线新节点和下线老节点)方式迁移,这个过程数据库通过数据传输到新节点。整个过程不停机上下线节点的数据传输时存在压力。某个节点存在不可控的故障导致节点无法启动时,数据存在丢失的风险。新...

将Nexus作为容器镜像仓库的配置过程

将Nexus作为容器镜像仓库的配置过程

Docker,Helm和Kubernetes的简化容器管理Nexus Repository建立在广泛的企业存储功能之上,是适用于所有Docker镜像和Helm Chart存储库的强大的注册表。Nexu...

trino容器对接alluxio(四)

trino容器对接alluxio(四)

前提:本文是基于已经部署了trino容器和 集群中部署了alluxio组件的基础上,进行的trino与alluxio的组件对接,alluxio已经开启了高可用模式。本文的冒烟测试是在trino对接ld...

Dockerfile编写指南

Dockerfile编写指南

一、背景  在k8s提出抛弃docker,拥抱其他的cri插件的情况下,为什么还有这篇指南呢?首先Dockerfile作为容器打包的标准,已经存在了很多年了。其中的编写技巧到现在也是一直延续的,所以并...

Kubernetes源码解读(五)--Reflector源码分析

Reflector 的任务就是向 apiserver watch 特定类型的资源,拿到变更通知后将其丢到 DeltaFIFO 队列中。1、Reflector的启动过程Reflector定义在k8s.i...

grafana版本升级

grafana版本升级

      因Grafana需接入腾讯云监控数据,安装腾讯云监控插件。腾讯云监控应用插件需运行在 Grafana ≥ 7.3且 < 8.0 的版本上。当前使用版本为...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。