HDFS的塊緩存和訪問權限

Block 塊存儲

所有的文件都是以 block 塊的方式存放在 HDFS 文件系統當中, 在 Hadoop1 當中, 文件的 block 塊默認大小是 64M, hadoop2 當中, 文件的 block 塊大小默認是 128M, block 塊的大小可以通過 hdfs-site.xml 當中的配置文件進行指定

<property>
    <name>dfs.block.size</name>
    <value>塊大小 以字節爲單位</value>
</property>

引入塊機制的好處

  1. 一個文件有可能大於集羣中任意一個磁盤
  2. 使用塊抽象而不是文件可以簡化存儲子系統
  3. 塊非常適合用於數據備份進而提供數據容錯能力和可用性

塊緩存

通常 DataNode 從磁盤中讀取塊, 但對於訪問頻繁的文件, 其對應的塊可能被顯式的緩存在 DataNode 的內存中, 以堆外塊緩存的形式存在. 默認情況下,一個塊僅緩存在一個 DataNode 的內存中,當然可以針對每個文件配置 DataNode 的數量. 作業調度器通過在緩存塊的 DataNode 上運行任務, 可以利用塊緩存的優勢提高讀操作的性能.

例如:

連接(join) 操作中使用的一個小的查詢表就是塊緩存的一個很好的候選

用戶或應用通過在緩存池中增加一個 Cache Directive 來告訴 NameNode 需要緩存哪些文件及存多久. 緩存池(Cache Pool) 是一個擁有管理緩存權限和資源使用的管理性分組.

例如一個文件 130M, 會被切分成 2 個 block 塊, 保存在兩個 block 塊裏面, 實際佔用磁盤 130M 空間, 而不是佔用256M的磁盤空間

HDFS 文件權限驗證

HDFS 的文件權限機制與 Linux 系統的文件權限機制類似

r:read  w:write  x:execute

權限 x 對於文件表示忽略, 對於文件夾表示是否有權限訪問其內容 如果 Linux 系統用戶 zhangsan 使用 Hadoop 命令創建一個文件, 那麼這個文件在 HDFS 當中的 Owner 就是 zhangsan HDFS 文件權限的目的, 防止好人做錯事, 而不是阻止壞人做壞事. HDFS相信你告訴我你是誰, 你就是誰

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章