接入層 - 匯集層 - 核心層
接入層(多個接入層接入乙個匯聚層) - 匯聚層(很多個)
client開始請求傳檔案,namenode建立乙個目錄(檢查檔案是否存在),並根據副本建立策略,返回乙個排好序的位置資訊(沒有寫入),開始根據位置資訊開始上傳,當第乙個包(1.x版本是64m)上時,將64m切分成多個小檔案,採用pipeline的方式,當第乙個小檔案上傳到1節點後,由1節點上傳第乙個小檔案到2節點,同時上傳第二個小檔案到1節點,當第乙個小檔案上傳到2節點後,由2節點上傳第乙個小檔案到3節點,同時由第一節點上傳第二個小檔案到2節點,64m全部傳輸完畢,通過心跳機制,匯報給namenode,寫入位置資訊。並且其中乙個節點掛掉,不影響其他節點繼續傳輸,最後匯報之後,由namenode通知沒有掛掉的節點進行copy操作,最終達到副本數。
why:
1、client只需要上傳乙個節點,三個節點都有
2、當返回第乙個64m包開始上傳時,第二個包拿到位置資訊,也開始切分上傳
通過返回的block列表,可以取這個檔案的某乙個部分,例如:0-8block、3-5block、6block等。這就使io對檔案任一位置單獨讀取的能力。
客戶端可以是人為,也可以是計算框架mapreduce,這樣就可以實現本地化讀取block,乙個block對應乙個mapreduce。
hdfs分布式檔案系統很好的支撐了計算層本地化讀取。
r: read; w:write; x:execute
許可權x對於檔案忽略,對於資料夾表示是否允許訪問其內容
結合其他技術,實現組織壞人做壞事,例如:
kerberos :認證 - 節點、使用者、許可權
①、 集群
②、角色==程序
namenode
不會持久化block的位置資訊
偏移量不會改變
datanode調整
備份高可用,容錯
可以調整很多個,為了計算向資料移動
snn
nn&dn
client
知識積累 大資料旅程 Linux 基本命令
ssh root 192.168.217.11 type 命令 type ifconfig file sbin ifconfig elf 二進位制可執行程式的格式 yum install man man pages type yum file usr bin python 二進位制檔案 echo h...
大資料基礎課之HDFS課程 讀流程 寫流程
1.寫流程 hdfs dfs ls hdfs檔案系統的根目錄 而不是linux hdfs dfs ls hdfs hadoop002 9000 hdfs hadoop002 9000 來自core site.xml hdfs dfs ls 讀取當前命令操作的使用者的路徑 user 使用者 hdfs ...
hdfs讀寫流程 大資料實戰之HDFS讀寫流程
hdfs是乙個分布式檔案系統,其中最需要關注的就是讀寫流程了,寫流程比讀流程更快,下面分別講解寫和讀的細節。一.hdfs寫流程 1 首先,客戶端利用hdfs client建立了distributed filesystem例項,再通過 distributed filesystem向namenode發起...