所有的檔案都是以 block 塊的方式存放在 hdfs 檔案系統當中, 在 hadoop1 當中, 檔案的 block 塊預設大小是 64m, hadoop2 當中, 檔案的 block 塊大小預設是 128m, block 塊的大小可以通過 hdfs-site.xml 當中的配置檔案進行指定
dfs.block.size
塊大小 以位元組為單位
引入塊機制的好處
乙個檔案有可能大於集群中任意乙個磁碟
使用塊抽象而不是檔案可以簡化儲存子系統
塊非常適合用於資料備份進而提供資料容錯能力和可用性
通常 datanode 從磁碟中讀取塊, 但對於訪問頻繁的檔案, 其對應的塊可能被顯式的快取在 datanode 的記憶體中, 以堆外塊快取的形式存在. 預設情況下,乙個塊僅快取在乙個 datanode 的記憶體中,當然可以針對每個檔案配置 datanode 的數量. 作業排程器通過在快取塊的 datanode 上執行任務, 可以利用塊快取的優勢提高讀操作的效能.
例如:連線(join) 操作中使用的乙個小的查詢表就是塊快取的乙個很好的候選
使用者或應用通過在快取池中增加乙個 cache directive 來告訴 namenode 需要快取哪些檔案及存多久. 快取池(cache pool) 是乙個擁有管理快取許可權和資源使用的管理性分組.
例如乙個檔案 130m, 會被切分成 2 個 block 塊, 儲存在兩個 block 塊裡面, 實際占用磁碟 130m 空間, 而不是占用256m的磁碟空間
hdfs 的檔案許可權機制與 linux 系統的檔案許可權機制類似
r:read w:write x:execute
許可權x
對於檔案表示忽略, 對於資料夾表示是否有許可權訪問其內容 如果 linux 系統使用者 zhangsan 使用 hadoop 命令建立乙個檔案, 那麼這個檔案在 hdfs 當中的 owner 就是 zhangsan hdfs 檔案許可權的目的, 防止好人做錯事, 而不是阻止壞人做壞事. hdfs相信你告訴我你是誰, 你就是誰 HDFS 塊快取和聯邦HDFS
塊快取 對於訪問頻繁的塊,顯式地快取在datanode的記憶體中,以堆外塊快取的方式存在 利用快取塊的優勢提高讀操作的效能。聯邦hdfs namenode在記憶體中儲存了每個檔案與每個資料塊的引用關係,超大集群的namenode記憶體會成為瓶頸 hdfs允許擴充套件namenode,不同的namen...
HDFS中的檔案訪問許可權
針對檔案和目錄,hdfs有與posix 可移植作業系統介面 非常相似的許可權模式。一共提供三類許可權模式 唯讀許可權 r 寫入許可權 w 和可執行許可權 x 讀取檔案或列出目錄內容時需要唯讀許可權。寫入乙個檔案,或是在乙個目錄上建立以及刪除檔案或目錄,需要寫入許可權。對於檔案而言,可執行許可權可以忽...
HDFS檔案許可權及ACL訪問控制
1 許可權相關配置 1 hdfs site.xml設定啟動acl dfs.permissions.enabledname truevalue 預設值為true,即啟用許可權檢查。如果為 false,則禁用 property dfs.namenode.acls.enabledname truevalu...