只知道Hadoop 3副本容错?用这种方式给公司节省五十万硬盘成本

本文主要是介绍只知道Hadoop 3副本容错?用这种方式给公司节省五十万硬盘成本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

 

EC的设计目标

EC背景

EC在RAID应用

EC与HDFS

EC在Hadoop架构的调整

NameNode元数据存储

Client

DataNode

EC存储方案

EC编码和解码

容错性和存储效率

连续存储还是条纹单元存储

EC策略关键属性

EC策略命名

online-EC

自定义EC策略

XOR算法与RS算法

部署HDFS EC

集群配置要求

EC配置

EC命令

验证测试

新上传一个293M的文件到冷数据目录

使用distcp迁移数据

基于Hive使用EC

按时间分区设置EC

按数据使用频率设置EC


EC的设计目标

  • Hadoop默认的3副本方案需要额外的200%的存储空间、和网络IO开销
  • 而一些较低I/O的warn和cold数据,副本数据的访问是比较少的(hot数据副本会被用于计算)
  • EC可以提供同级别的容错能力,存储空间要少得多(官方宣传不到50%),使用了EC,副本始终为1

EC背景

EC在RAID应用

  • EC在RAID也有应用,RAID通过EC将文件划分为更小的单位,例如:可以按照bit、byte或者block来划分。
  • 然后将这些条纹单元存储在不同的磁盘中

条纹单元:官方称之为Stripe Unit,我把它隐喻为斑马身上的黑白条纹,就称每个文件经过EC处理后的就是一个个的条纹单元。

image-20210116102333723

EC编码奇偶校验单元

image-20210116113700640

根据剩余条纹单元和奇偶校验单元恢复数据。

image-20210116104607373

EC与HDFS

一个具有6个块,3副本会消耗6 x 3 = 18个块存储空间。而EC只需要 6个Block,再加上3个奇偶校验,仅需要6 + 3 = 9个块。节省了一半的存储空间。

EC在Hadoop架构的调整

使用EC有几个重要优势:

  1. Online-EC,在写入数据的时候就是以EC方式写入的,而不是先存完数据再开始进行EC编码处理(offline-EC)。
  2. Online-EC将一个小

这篇关于只知道Hadoop 3副本容错?用这种方式给公司节省五十万硬盘成本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/294003

相关文章

AJAX请求上传下载进度监控实现方式

《AJAX请求上传下载进度监控实现方式》在日常Web开发中,AJAX(AsynchronousJavaScriptandXML)被广泛用于异步请求数据,而无需刷新整个页面,:本文主要介绍AJAX请... 目录1. 前言2. 基于XMLHttpRequest的进度监控2.1 基础版文件上传监控2.2 增强版多

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

springboot security之前后端分离配置方式

《springbootsecurity之前后端分离配置方式》:本文主要介绍springbootsecurity之前后端分离配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录前言自定义配置认证失败自定义处理登录相关接口匿名访问前置文章总结前言spring boot secu