Hadoop从2.3.0版本号開始支持HDFS缓存机制,HDFS同意用户将一部分文件夹或文件缓存在HDFS其中。NameNode会通知拥有相应块的DataNodes将其缓存在DataNode的内存其中

集中式缓存管理有着很多显著的优势:

  1. 防止那些被频繁使用的数据从内存中清除
  2. 由于DataNode的缓存由NameNode来管理,applications在做任务安排时能够查询这个缓存的列表,使用一个被缓存的块副本能够提高读性能
  3. 当块被DataNode缓存之后。client能够使用一个新的、高效的、zero-copy的读API。由于缓存中的数据已经被计算过checksum,当使用新API时,client基本上是零开销的
  4. 能够提高集群的内存利用率。当使用操作系统的缓存时,对一个块的反复读会导致全部的副本都会被放到缓冲区其中,当使用集中式缓存时。用户能够指定n个副本中的m个才会被缓存,能够节约n-m的内存

使用方法

集中式缓存对那些频繁訪问的的文件是很实用的。比如hive中常常被使用的fact表就很适合缓存;还有一方面,缓存一年的查询结果可能没那么实用了。由于这个结果可能仅仅会被查看一次

也有助于提高混合类型作业的SLA性能。把高优先级的数据缓存起来能够确保它不会与低优先级的数据竞争磁盘IO

使用:

[hadoop@master hadoop]$ hdfs cacheadmin -addPool admin               【加入一个pool】
Successfully added cache pool admin.
[hadoop@master hadoop]$ hdfs cacheadmin -listPools                         【查看pool列表】
Found 1 result.
NAME   OWNER   GROUP   MODE            LIMIT  MAXTTL
admin  hadoop  hadoop  rwxr-xr-x   unlimited   never
[hadoop@master hadoop]$ hdfs cacheadmin -addDirective -path /input -pool admin 【将一个文件夹加入pool】
Added cache directive 1
[hadoop@master hadoop]$ hdfs cacheadmin -listDirectives                        【查看已缓存的数据】
Found 2 entriesID POOL    REPL EXPIRY  PATH      1 admin      1 never   /input    2 test       1 never   /output/0
[hadoop@master hadoop]$ hdfs cacheadmin -removeDirective 1             【按id清除缓存】
Removed cached directive 1
[hadoop@master hadoop]$ hdfs cacheadmin -listDirectives
Found 1 entryID POOL   REPL EXPIRY  PATH      2 test      1 never   /output/0
[hadoop@master hadoop]$ hdfs cacheadmin -removeDirectives -path /output/0  【按path清除缓存】
Removed cache directive 2
Removed every cache directive with path /output/0
[hadoop@master hadoop]$ hdfs cacheadmin -listDirectives
Found 0 entries

转载于:https://www.cnblogs.com/lxjshuju/p/6897290.html

HDFS集中式缓存管理(Centralized Cache Management)相关推荐

  1. HDFS集中式的缓存管理原理与代码剖析--转载

    原文地址:http://yanbohappy.sinaapp.com/?p=468 Hadoop 2.3.0已经发布了,其中最大的亮点就是集中式的缓存管理(HDFS centralized cache ...

  2. Spring Boot 2.x基础教程:使用集中式缓存Redis

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 之前我们介绍了两种进程内缓存的用法,包括Spring B ...

  3. 探讨下如何更好的使用缓存 —— 集中式缓存Redis的BitMap存储、管道与事务、以及与本地缓存一起构建多级缓存

    大家好,又见面了. 通过前面的文章,我们一起剖析了Guava Cache.Caffeine.Ehcache等本地缓存框架的原理与使用场景,也一同领略了以Redis为代表的集中式缓存在分布式高并发场景下 ...

  4. Spring Boot中的缓存支持(二)使用Redis做集中式缓存

    上一篇介绍了在Spring Boot中如何引入缓存.缓存注解的使用.以及EhCache的整合. 虽然EhCache已经能够适用很多应用场景,但是由于EhCache是进程内的缓存框架,在集群模式下时,各 ...

  5. reactjs redux集中式状态管理最简入门案例

    reactjs redux集中式状态管理最简入门案例

  6. 5 个最值得注意的开源集中式日志管理工具

    集中式日志记录与安全性一样,是 IT 基础结构(包括 Web 应用程序和硬件设备)中核心资源监控和健全管理的一个基本方面.有能力的运维团队能够搭建一个日志监控和管理系统,来应对系统故障或应用程序的怪异 ...

  7. 集中式日志管理各种方案对比

    集中式日志管理各种方案对比 RSYSLOG 优点 系统自带,不需要安装扩展. 缺点 文档很不清晰,配置很不方便 PAPERTRAILS 优点 PT 就是这么一个工具.通过它你可以从一个窗口轻松的查找多 ...

  8. 使用集中式身份管理服务详解

    系统需要使用集中式身份管理服务,首先要在局域网内创建集中身份管理服务器(如LDAP,NIS) 集中式身份管理系统至少需要两项服务: 1 账户信息,常用的解决方案包括LDAP(轻量级目录访问协议,用于A ...

  9. Mobx和Mobx-react:集中式状态管理

    一.Mobx (1) Mobx是一个功能强大,上手非常容易的状态管理工具. (2) Mobx背后的哲学很简单: 任何源自应用状态的东西都应该自动地获得.只获取与自己相关的数据,不获取无关数据(redu ...

最新文章

  1. 解决thinkphp在开发环境下文件模块找不到的问题
  2. eclipse 常见问题及解决
  3. 不同系统下的shell的不同_不同论文检测系统有哪些区别?
  4. docker创建rabbitmq容器命令
  5. 输入序列连续的序列检测
  6. php5.4 windows2003,PHP实战:Windows2003下php5.4安装配置教程(IIS)
  7. C#LeetCode刷题-双指针
  8. 救救孩子?强制实名游戏不足四成 青少年视力保护状况堪忧
  9. centos(7.0) 上 crontab 计划任务
  10. socket 关于同一条TCP链接数据包到达顺序的问题
  11. RedHat7安装QQ
  12. 医咖会SPSS免费教程学习笔记—Fisher精确检验
  13. 编写程序,统计某旅馆住宿客人的总数,要求输入客人姓名,输出客人编号(按先后顺序自动生成),姓名以及总人数。...
  14. h5移动端开发之禁用微信浏览器字体大小设置
  15. 也许你看了一本假的天龙八部
  16. 前端vs图片:2 图片深度、图片分类等基本信息
  17. 苹果AirPlay浅析
  18. 软考——系统架构设计师工作日志
  19. 回归云平台的本质,通过平台+应用模式实现软件资源线上共享
  20. 呼叫中心系统和外呼机器人的高效组合

热门文章

  1. 用IJ和gradle启动elasticsearch5.4.3
  2. JAVA语法--位运算
  3. 从cpan上安装perl模块
  4. pycharm配置python路径_pycharm如何配置python环境
  5. type=radio增加onclick没有效果_张启东:如何有效增强KTV音响效果的立体感?
  6. trigger error php,php trigger_error函数怎么用
  7. python获取按键状态_谁在用 python 弹奏一曲菊花台
  8. Windows CE 程序设计 (3rd 版)
  9. JVM(六)为什么新生代有两个Survivor分区?
  10. Kubernetes使用集群联邦实现多集群管理