HDFS中的集中缓存(Centralized Cache Management in HDFS)

HDFS新特性Centralized Cache Management介绍 概述     HDFS作为Hadoop底层存储架构实现,提供了高可容错性,以及较高的吞吐量等特性。在Hadoop 2.3版本里,HDFS提供了一个新特性——Centralized Cache Management。该特性能够让用户显式地把某些HDFS文件强制映射到内存中,防止被操作系统换出内存页,提高内存利用效率,有效加快文件访问速度。对于Hive来说,如果对某些SQL查询里需要经常读取 阅读详情
集中缓存有两层概念:
  1. 第一层是缓存,即为存储在HDFS中文件提供缓存的机制,从而可以加速DFSClient对文件的读操作;
  2. 第二层概念是集中式的管理,传统的HDFS缓存依赖了OS本身的缓存机制,但是这种缓存机制不能被管理员或中央节点进行管理,不能自由的控制哪些文件缓存,哪些文件不进行缓存;集中式的管理可以提高了对缓存内存的可控性;
HDFS中集中缓存架构如下所示:

  1. User通过api入口与NN进行交互,告诉NN缓存哪些文件,或者取消对那些文件的缓存;
  2. NN中维护了缓存path列表;在每次接受到User的缓存请求时候,把请求的Path转化为一系列的Blocks,并把这些Blocks加入到一个待cache的队列中
  3. 在DN中缓存的真实内容是Blocks,在DN每次心跳协议与NN进行交互时候,NN会把属于该DN的缓存的Blocks放在心跳协议的返回值中返回给DN,DN进行缓存中
  4. 同时DN维持一个NN之间类似心跳协议的定时协议,定时同步DN中缓存Block的状态;
  5. DFSClient在读取缓存中的文件Blocks时,可以直接从Cache中读取;
HDFS集中缓存两个主要概念:Cache Directive和Cahce Pool
  1. Cache Directive:一个directive是一个缓存的path,它可以是目录,也可以是文件;注意:目录的缓存是非递归的,只缓存目录内第一层的文件,不会缓存目录中目录;一个Directive有一个参数replication,表示该path的缓存的副本数;注意,可以对一个文件进行多次缓存;一个Directive有一个参数expiration,可以控制缓存的TTL(time-to-live),目前该时间为绝对时间,可以表示为分钟,小时和天数,比如 -ttl 30m, 4h, 2d。 测试显示一个cache过期了,NN不会自动将它从缓存列表中删除,只是在不再反馈给DFSClient进行读操作,cache的内存是否会自动释放,待测试; 测试结果表示不会释放内存,所以过期的cache,还是需要手动的去删除它;
  2. Cache Pool:是Cache的管理单元,每个Pool拥有与Unix相似的权限,同时Pool也有quota limit限制
cacheadmin 命令行控制
  1. Directive控制:集中缓存中一个文件是否会被缓存,完全用管理员来控制,管理员可以通过" hdfs cacheadmin -addDirective"来添加缓存,该命令会返回一个缓存id;“hdfs cacheadmin -removeDirective”通过该命令来删除指定缓存id的缓存;“ hdfs cacheadmin -removeDirectives”通过该命令来删除指定缓存path的缓存,该命令可以一次删除多个缓存;“hdfs cacheadmin -listDirectives”显示当前所有的缓存;详细的参数,在命令行中输入 hdfs cacheadmin可以看得到;或者参考:http://hadoop.apache.org/docs/r2.3.0/hadoop-project-dist/hadoop-hdfs/CentralizedCacheManagement.html 官方文档
  2. Pool控制:可以通过"hdfs cacheadmin -addPool"创建一个pool,“hdfs cacheadmin -modifyPool”删除一个pool,"hdfs cacheadmin -removePool"删除一个pool,“ hdfs cacheadmin -removePool”删除一个pool
HDFS相关配置信息:
  1. dfs.datanode.max.locked.memory:集中cache的[必须配置]官方描述如下"The amount of memory in bytes to use for caching of block replicas in memory on the datanode. The datanode's maximum locked memory soft ulimit (RLIMIT_MEMLOCK) must be set to at least this value, else the datanode will abort on startup. By default, this parameter is set to 0, which disables in-memory caching. If the native libraries are not available to the DataNode, this configuration has no effect." ;单位为byte,默认该值为0,从描述中可以看到。如果该值为0,相当于关闭了集中缓存的功能;同时该值不能大于ulimit的限制;从描述中还可以看到,集中缓存对native lib有依赖,描述如下:"In order to lock block files into memory, the DataNode relies on native JNI code found in libhadoop.so. Be sure to enable JNI if you are using HDFS centralized cache management."
  2. dfs.cachereport.intervalMsec:单位为毫秒,用于控制DN向NN汇报DN上缓存的状态,,默认为10秒;
  3. dfs.namenode.path.based.cache.refresh.interval.ms:NN维持的cahce会可以自动更新,如果文件被追加写,目录下面新增了文件,NN会扫描path所有的block进行更新;该参数就是用来控制这个扫描的间隔,单位为毫秒,默认为5分钟;
  4. dfs.datanode.fsdatasetcache.max.threads.per.volume:DN中维护缓存的状态或者IO读写的线程数,默认为4
Jira:https://issues.apache.org/jira/browse/HDFS-4949

HDFS集中式缓存管理(Centralized Cache Management) Hadoop从2.3.0版本开始支持HDFS缓存机制,HDFS允许用户将一部分目录或文件缓存在HDFS当中,NameNode会通知拥有对应块的DataNodes将其缓存在DataNode的内存当中 集中式缓存管理有着许多显著的优势: 防止那些被频繁使用的数据从内存中清除因为DataNode的缓存由NameNode来管理,applications在做任务安排时可以查询这个缓存的列表, 阅读详情

相关推荐

HDFS集中式缓存

DFS中的集中化缓存管理是一个明确的缓存机制,它允许用户指定要缓存的HDFS路径。NameNode会和保存着所需快数据的所有DataNode通信,并指导他们把块数据缓存在off-heap缓存中

【大数据Hadoop】HDFS3.3.1-Namenode-缓存管理

Hadoop 2.3.0 版本新增了集中式缓存管理功能,允许用户将一些文件和目录保存到HDFS缓存中。HDFS集中式缓存是由分布在Datanode上的堆外内存组成的,并且由Namenode 统一管理添加集中式缓存功能的 HDFS 集群具有以下显著的优势。阻止了频繁使用的数据从内存中清除。因为集中式缓存是由 Namenode 统一管理的,所以 HDFS 客户端可以根据数据块的缓存情况调度任务,从而提高了数据块的读性能。

如切如磋,如琢如磨,臻于至善。 989

存储/缓存技术中的HDFS 的多安全级数据销毁机制设计(一)

摘 要:在云计算应用中,数据安全是用户首要关心的问题,因此云中数据安全的研究也成为当前云计算研究的重点。针对开源云计算存储系统HDFS 中的数据不能彻底销毁,从而可能导致数据泄露的问题,设计了HDFS 的多安全级数据销毁机制。一方面,该机制在删除数据前使用数据覆写算法覆写原数据,可以有效预防云中数据的恶意恢复,防止数据泄露,从而达到彻底销毁数据的目的;另一方面,该机制采用多安全级可定义的方法,采取多种覆写算法销毁数据,平衡了安全需求和性能需求。仿真实验表明,该机制可以在HDFS 环境下有效地覆写Block 文件达到彻底销毁原始数据的目的,同时不同的覆写算法时间开销也不同,保证了效率和安全的平衡

《深入HDFS》--HDFS缓存

HDFS缓存 hdfs缓存是为了减少对数据的重复访问请求,hdfs的缓存通过缓存块实现。 缓存块 缓存块由普通文件块转换得来。缓存指在要访问的dataNode的内存中,访问时命中缓存则无需读取磁盘,可以大大提高用户读取文件的速度。 缓存块的生命周期 在缓存块中,其内部枚举State代码如下: private static enum State { CACHING, ...

SW_LCC的博客 746

Cloudflare 5秒盾逆向实战:13次请求背后的Python补环境框架搭建指南

本文深入解析了如何通过Python构建浏览器环境模拟框架,以应对Cloudflare 5秒盾等现代Web防护机制。文章详细拆解了其背后复杂的13次请求链,涵盖了JavaScript执行引擎集成、DOM事件模拟、网络请求控制及Canvas指纹等环境检测的完整实现方案,为自动化数据采集和逆向工程提供了实战指南。

gold的博客 347

医药行业新零售项目数据分析报告——基于Excel的分析与可视化

不同平台客户支付金额用数字+百分比展示更直观。各大区支付金额分析较为粗浅,后续可加入不同大区人数、配送费等进行细分分析。图表略微单一,可采用组合图,运用两个及以上维度对数据进行分析。数据来源本项目数据来源于某机构的项目案例,以上分析内容均为本人原创,不涉嫌抄袭。原做项目,新平台首发。

2401_84213513的博客 1495

Hadoop中哪些地方使用了缓存,作用分别是什么?

MapReduce作业可以使用分布式缓存(Distributed Cache)来缓存常用的文件和资源,这样在任务执行过程中,可以在任务节点上直接访问这些缓存的数据,避免重复传输和加载数据,从而提高任务执行效率。·数据块缓存:HDFS的数据块缓存允许将热门数据块缓存到DataNode节点的内存中,从而加快对这些数据块的访问速度,减少重复读取磁盘的开销。·元数据缓存:HDFS的元数据缓存允许NameNode节点将常用的文件元数据信息缓存到内存中,以加快文件查找和定位的速度。

zy1992As的博客 332

三角洲自动购买工具 —— 基于 OCR 的价格识别与自动点击

通过的方式,我们可以轻松实现自动化的“价格监控 + 自动点击”工具。它的优势在于通用性—— 只要能截屏识别价格,就能用于任何程序,不依赖特定 API。未来可以扩展的功能:自动保存配置到文件。支持多价格区域检测。增加快捷键启停功能。

qq_62975494的博客 2418

HDFS配置的缓存和压缩策略

接着通过压缩编解码器创建压缩输出流,将数据读取并压缩后写入输出流。在解压缩文件时,同样需要创建输入流和输出流,并根据压缩编解码器创建解压缩输入流。块压缩模式将按照文件块进行压缩,而记录压缩模式将按照每条记录进行压缩。的缓存策略主要有以下几个方面的参数配置:读取缓存、写入缓存、以及缓存提供者。的压缩策略主要有以下几个方面的参数配置:压缩算法、压缩模式、以及压缩块大小。配置缓存和压缩策略的原理和相关参数,并提供完整的代码注释案例。的压缩块大小可以通过以下参数进行配置,默认值为。的读取缓存使用的是内存映射文件(

互联网知识分享 1328

在 IW31 录入班次与当班负责人,并让 IW38 列表同步显示:基于 IWO10018 + IWOC0004 的一套可落地增强方案

摘要 本文详细介绍了在SAP PM模块中实现工厂设备维护订单增强的完整方案,重点解决两个核心需求:在订单创建时新增班次负责人和班次字段,并在订单列表中直接显示这些信息。文章从需求分析、技术设计到具体实现步骤进行了系统阐述。 关键实现步骤包括: 通过CI_AUFK结构扩展AUFK表,确保字段持久化存储 使用IWO10018增强在IW31/IW32/IW33事务中添加输入界面 通过IWOC0004增强在IW38订单列表中显示新增字段 采用优化的数据填充策略提升性能 该方案不仅满足业务需求,还考虑了用户体验和系统

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 174

基于STM32设计的便携式心电信号监测系统_474

本课题设计并实现了一种基于STM32单片机的便携式心电信号监测系统。系统以STM32F103C8T6为核心控制单元,结合PulseSensor心率传感器,实现对人体心率信号的采集与处理。通过单片机内部ADC模块对传感器输出的模拟电压信号进行采样,并对采集数据进行分析处理,从而计算得到实时心率值。

159

HDFS集群的Namenode对缓存的管理

HDFS集群的Namenode对缓存的管理  HDFS的2.3.0版本新增了集中式缓存管理功能,允许用户将一些文件和目录保存到HDFS缓存中。HDFS集中式缓存是由分布在Datanode上的堆外内存组成的,并由Namenode统一管理。  添加了集中式缓存功能的HDFS集群的优势:  1.阻止了频繁使用的数据从内存中清除  2.HDFS客户端可以根据数据块的缓存情况调度任务,提高数据块的读性能  3.数据块被Datanode缓存后,客户端就可以使用一个新的更高效的零拷贝机制读取数据块,零拷贝读取数据块的客户

loser与你 555

YOLOv8多传感器融合技术——毫米波雷达融合技术详解

本文介绍了YOLOv8与毫米波雷达融合技术在自动驾驶系统中的应用。毫米波雷达具有全天候工作、测距测速精准等优势,但存在分辨率低等局限。通过融合YOLOv8的视觉检测能力,可显著提升系统在恶劣环境下的感知性能。文章详细阐述了融合实现方法,包括雷达数据处理、目标投影匹配、置信度融合等关键技术,并提供了评估指标和应用场景分析。这种多传感器融合方案能有效弥补单一传感器的不足,为自动驾驶提供更可靠的环境感知能力,是实现高级别自动驾驶的重要技术支撑。

u010117029的博客 174

HDFS中的集中缓存 (Centralized Cache Management in HDFS)

集中缓存有两层概念: 第一层是缓存,即为存储在HDFS中文件提供缓存的机制,从而可以加速DFSClient对文件的读操作;第二层概念是集中式的管理,传统的HDFS缓存依赖了OS本身的缓存机制,但是这种缓存机制不能被管理员或中央节点进行管理,不能自由的控制哪些文件缓存,哪些文件不进行缓存;集中式的管理可以提高了对缓存内存的可控性; HDFS中集中缓存架构如下所示:

a118170653的专栏 693

由浅入深的详细解读汽车PDU与BDU

本文详细解读新能源汽车的PDU高压配电单元和BDU电池包断路单元,涉及电气件参数设计、选型、结构设计、电气安全、散热设计、继电器控制与诊断,提供汽车电子知识和技术解析。

让你爱上电路设计 1万+

(论文加源码)基于CNN和LSTM的脑电情绪识别(数据集为DEAP和seed)

论文及源码见个人主页:https://download.youkuaiyun.com/download/qq_45874683/84118637?spm=1001.2014.3001.5503 (论文加源码)基于CNN和LSTM的脑电情绪识别(数据集为DEAP和seed)4D-CRNN 目录 目录: 运行过程: 1. 运行1D文件(没有什么bug): 2. 再运行3D文件(没有出现bug): 3. 最后运行main文件(出现了两个bug)(前提需要配置好tensorflow的框架): 第一个bug是..

qq_45874683的博客 6363

十一:Centralized Cache Management in HDFS 集中缓存管理

集中的HDFS缓存管理,该机制可以让用户缓存特定的hdfs路径,这些块缓存在堆外内存中。namenode指导datanode完成这个工作。Centralized cache management in HDFS has many significant advantages.Explicit pinning prevents frequently used data from being ...

weixin_30642267的博客 156

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Centralized Cache Management in HDFS

Centralized Cache Management inHDFS Overview HDFS中的集中式缓存管理是一个显式的管理缓存的机制,它允许用户指定被HDFS缓存的路径。NameNode将与磁盘上有所需的Block的DataNode通信,命令其在堆外缓存里缓存Block。 HDFS中的集中式缓存管理有许多重要的优势。 1.明确地防止频繁使用的数据被赶出内存。当工作集的

来啊 快活啊 2653

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

hdfs中央缓存Centralized Cache

HDFS中央缓存管理 HDFS提供了一个高效的缓存加速机制——Centralized Cache Management,可以将一些经常被读取的文件(例如Hive中的fact表)pin到内存中。这些DataNode的缓存也是由NameNode所管理的(NameNode所管理的cache依然是以block形式,而DataNode也会定期向NameNode汇报缓存状态),而客户端可以高效得读取被缓存的数据块;为了能锁定内存,该实现依赖于JNI使用libhadoop.so,所以POSIX资源限制也要进行相应的设置(

348

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

HDFS centralized cache management

Hadoop 2.3.0解决了如下几个问题:

我想静静 1030

Hadoop浅解Centralized Cache Management(集中式缓存管理)

HDFS集中式缓存管理概观HDFS的集中化缓存管理是一个明确的缓存机制,它可以将用户指定的HDFS路径进行缓存。NameNode会和保存着所需快数据的所有DataNode进行通信,并指导他们把块数据缓存在off-heap缓存中。HDFS上的集中式缓存管理具有明显的优势: 1. 明确的锁定可以阻止频繁使用的数据被从内存中清除。当数据集的大小超过了主内存大小(这种情况对于许多HDFS负载都是司空见惯的

Nobigo 768
上一篇: Hadoop 2.3.0编译
ColZer
博客等级 码龄14年 42粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值