Hadoop從2.3.0版本開(kāi)始支持HDFS緩存機(jī)制躁染,HDFS允許用戶將一部分目錄或文 件緩存在HDFS當(dāng)中,NameNode會(huì)通知擁有對(duì)應(yīng)塊的DataNodes將其緩存在
DataNode的內(nèi)存當(dāng)中亿扁。
優(yōu)勢(shì)
- 防止那些被頻繁使用的數(shù)據(jù)從內(nèi)存中清除
- 因?yàn)镈ataNode的緩存由NameNode來(lái)管理,applications在做任務(wù)安排時(shí)可以查詢這個(gè)緩 存的列表干旁,使用一個(gè)被緩存的塊副本能夠提高讀性能
- 當(dāng)塊被DataNode緩存之后盖喷,客戶端可以使用一個(gè)新的、高效的雷绢、zero-copy的讀API泛烙,因 為緩存中的數(shù)據(jù)已經(jīng)被計(jì)算過(guò)checksum,當(dāng)使用新API時(shí)翘紊,客戶端基本上是零開(kāi)銷(xiāo)的
- 可以提高集群的內(nèi)存利用率蔽氨。當(dāng)使用操作系統(tǒng)的緩存時(shí),對(duì)一個(gè)塊的重復(fù)讀會(huì)導(dǎo)致所有 的副本都會(huì)被放到緩沖區(qū)當(dāng)中帆疟,當(dāng)使用集中式緩存時(shí)鹉究,用戶可以指定n個(gè)副本中的m個(gè) 才會(huì)被緩存,可以節(jié)約n-m的內(nèi)存
使用場(chǎng)景
- 集中式緩存對(duì)那些頻繁訪問(wèn)的的文件是非常有用的踪宠,例如hive中經(jīng)常被使用的fact表就 非常適合緩存
- 另一方面自赔,緩存一年的查詢結(jié)果可能沒(méi)那么有用了,因?yàn)檫@個(gè)結(jié)果可能只會(huì)被查看一次
有助于提高混合類(lèi)型作業(yè)的SLA性能柳琢,把高優(yōu)先級(jí)的數(shù)據(jù)緩存起來(lái)可以確保它不會(huì)與低 優(yōu)先級(jí)的數(shù)據(jù)競(jìng)爭(zhēng)磁盤(pán)IO
命令行
image.png