只知道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

相关文章

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念

【即时通讯】轮询方式实现

技术栈 LayUI、jQuery实现前端效果。django4.2、django-ninja实现后端接口。 代码仓 - 后端 代码仓 - 前端 实现功能 首次访问页面并发送消息时需要设置昵称发送内容为空时要提示用户不能发送空消息前端定时获取消息,然后展示在页面上。 效果展示 首次发送需要设置昵称 发送消息与消息展示 提示用户不能发送空消息 后端接口 发送消息 DB = []@ro

脏页的标记方式详解

脏页的标记方式 一、引言 在数据库系统中,脏页是指那些被修改过但还未写入磁盘的数据页。为了有效地管理这些脏页并确保数据的一致性,数据库需要对脏页进行标记。了解脏页的标记方式对于理解数据库的内部工作机制和优化性能至关重要。 二、脏页产生的过程 当数据库中的数据被修改时,这些修改首先会在内存中的缓冲池(Buffer Pool)中进行。例如,执行一条 UPDATE 语句修改了某一行数据,对应的缓

Java 多线程的基本方式

Java 多线程的基本方式 基础实现两种方式: 通过实现Callable 接口方式(可得到返回值):