HDFS 的集中式缓存功能,说实话还挺实用的,尤其是在一些频繁访问的大数据任务时。你可以直接指定某个路径缓存,NameNode 就会告诉各个 DataNode 把对应的块数据缓到内存外的区域,访问快了不止一点点。

缓存块是锁定的,别的任务抢不走,这点在内存不够时有用。你也能根据缓存块放任务,这样 IO 打得少了,任务跑得也顺多了。对那些 Hive 的小表、SLA 要求高的应用,都蛮合适的。

缓存指令缓存池配合着用,权限控制也搞得挺细,谁能用、缓存多少都能设。操作上不复杂,用hdfscacheadmin -addDirective就能搞定,加上-replication-ttl还能定缓存副本和时间。

,这玩意儿对提升数据读取性能、节省集群内存都挺有。如果你在搞 Hadoop、跑大数据任务,建议把这个机制用起来看看,尤其是遇到 I/O 瓶颈那种场景。