




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、技術(shù)創(chuàng)新,變革未來HDFS文件系統(tǒng)技術(shù)詳解內(nèi)容HDFS文件讀寫HDFS副本策略HDFS Shell HDFS Java APIHadoop序列化Read From HDFSHDFS 如何讀取文件獲取DistributedFileSystem實例DistributedFileSystem通過RPC獲得第一批block的locations,這些 locations按照hadoop拓?fù)浣Y(jié)構(gòu)排序,距離客戶端近的排在前面客戶端調(diào)用read方 法,連接離客戶端最近的datanode數(shù)據(jù)從datanode流向客戶端第一個block塊的數(shù)據(jù)讀完,就會關(guān)閉指向第一個block塊的datanode連接,接著讀取下
2、一個block塊第一批block都讀完,就會去namenode拿下一批block的locations,然后繼續(xù)讀,所有的block塊都讀完,就會關(guān)閉流Write To HDFSHDFS 如何寫入文件客戶端調(diào)用 DistributedFileSystem 的create方法,創(chuàng)建一個新文件DistributedFileSystem 通過 RPC調(diào)用 NameNode,去創(chuàng)建一個沒有blocks關(guān)聯(lián)的新文件創(chuàng)建前,NameNode 會做各種校驗,比如文件是否存在,客戶端有無權(quán) 限創(chuàng)建等DFSOutputStream會把數(shù)據(jù)切成一個個小packet,然后排成隊列 dataqueue,并問詢 Name
3、Node 這個新的 block 最適合存儲的3個DataNodeDFSOutputStream 還有一個隊列叫 ack queue,也是由 packet 組成, 等待DataNode的收到響應(yīng),當(dāng)所有DataNode都表示已經(jīng)收到,這時ack queue才會把對應(yīng)的packet包移除掉客戶端完成寫數(shù)據(jù)后,調(diào)用close方法關(guān)閉寫入流最后通知元數(shù)據(jù)節(jié)點(diǎn)寫入完畢Replication(副本)副本因子一般為3副本存放策略需要對可靠性、寫入帶寬和讀取帶 寬進(jìn)行權(quán)衡2個副本在1個機(jī)架的不同節(jié)點(diǎn)上, 另1個副本在 另1個機(jī)架節(jié)點(diǎn)上,其他副本隨機(jī)存儲針對讀請求,HDFS提供離客戶端最近的副本Hadoop啟動
4、時,在安全模式下會檢查副本數(shù)副本存放策略HDFS 訪問HDFS 提供了兩種數(shù)據(jù)訪問接口:Shell接口和Java API 接口這些接口將文件分割之后,存儲在不同的DataNode上對HDFS里面的文件進(jìn)行操作,具體每個Block放 在哪臺DataNode上面,對于開發(fā)者來說是透明的HDFS Shell(1)HDFS基本命令和 Linux 命令基本相同,區(qū)分大 小寫,格式如下:HDFS 資源URI格式如下:HDFS Shell(2) 基本命令創(chuàng)建文件夾:hdfs dfs -mkdir/log/20161001上傳文件或目錄:hdfs dfs -put log.txt /log/20161001/
5、或hdfs dfs -copyFromLocal log.txt /log/20161001/顯示目錄下的文件: hdfs dfs -ls /log/20161001/如果是文件,返回文件信息如下:權(quán)限 用戶ID 組ID 文件大小 修改日期 修改時間 權(quán)限 文件名如果是目錄,返回目錄信息如下:權(quán)限 用戶ID 組ID 修改日期 修改時間 目錄名遞歸顯示目錄下的文件:hdfs dfs -ls -R /log/20161001/HDFS Shell(3) 基本命令查看內(nèi)容:hdfs dfs -text /log/20161001/log.txt或-cat、-tail命令,但對于壓縮文件只能用 -te
6、xt 參數(shù)來查 看,否則是亂碼復(fù)制到本地(默認(rèn)當(dāng)前目錄):hdfs dfs -get/log/20161001/log.txt/home/hadoop或hdfs dfs -copyToLocal /log/20161001/log.txt/home/Hadoop刪除 文件: hdfs dfs -rm /log/20161001/log.txt刪除文件夾: hdfs dfs rm -r /log/20161001/log.txt連接文件到本地: hdfs dfs -getmerge/user/hadoop/output/ /home/hadoop/merge -將output目錄 下的所有文件合
7、并到本地merge文件中HDFS Shell(4) 基本命令復(fù)制文件:-將file1hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2文件復(fù)制到file2hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2/user/hadoop/dir-將文件file1,file2復(fù)制到dir目錄下移動文件:hdfs dfs -mv /user/hadoop/file1 /user/hadoop/file2-將文件 file1移動到file2hdfs dfs -mv /user/hadoop/file1 /us
8、er/hadoop/file2/user/hadoop/file3 /user/hadoop/dir-將file1 file2 file3 移動 到dir目錄下HDFS Shell(4) 集群間復(fù)制distcp 分布式復(fù)制程序,是由 MapReduce 作業(yè)來實現(xiàn)的, 它是通過集群中并行運(yùn)行的 map 來完成集群之間大量數(shù)據(jù)的 復(fù)制hadoop distcp hdfs:/cloud001:9000/a/b hdfs:/cloud002:9000/a,默認(rèn)情況下 distcp 會跳過目標(biāo)路徑 下已經(jīng)存在的文件hadoop distcp -overwrite hdfs:/cloud001:9000
9、/a/b hdfs:/cloud002:9000/a,覆蓋現(xiàn)有文件hadoop distcp -update hdfs:/cloud001:9000/a/bhdfs:/cloud002:9000/a,更新有改動過的文件HDFS Shell(5)管理命令查看正在運(yùn)行的 Job:mapred job -list,-list all顯示所有 job關(guān)閉正在運(yùn)行的 Job: mapred job -kill job_2732108212572_0001檢查 HDFS 塊狀態(tài),查看是否損壞: hdfs fsck /檢查 HDFS 塊狀態(tài),并刪除損壞的塊: hdfs fsck / -delete檢查 HD
10、FS 狀態(tài),包括 DataNode 信息: hdfs dfsadmin reportHadoop 進(jìn)入安全模式:hdfs dfsadmin -safemode enterHadoop 離開安全模式: hdfs dfsadmin -safemode leave平衡集群中的文件: sbin/start-balancer.shHDFS Java API獲取 HDFS 文件系統(tǒng)創(chuàng)建文件目錄刪除文件或文件目錄獲取目錄下的所有文件文件上傳至 HDFS從 HDFS 下載文件獲取 HDFS 集群節(jié)點(diǎn)信息查找某個文件在 HDFS 集群的位置Hadoop 序列化為什么不用Java的序列化計算量開銷大序列化的結(jié)果體
11、積大,有時能達(dá)到對象大小的數(shù) 十倍而Hadoop在集群之間進(jìn)行通訊或者RPC調(diào)用的 時候,需要頻繁序列化和反序列化,因此要求序列 化要快,且體積要小,占用帶寬要小Hadoop 序列化Hadoop實現(xiàn)的序列化特點(diǎn)緊湊:緊湊的格式能充分利用網(wǎng)絡(luò)帶寬,而帶寬 是數(shù)據(jù)中心最稀缺的資源之一快速:進(jìn)程通信形成了分布式系統(tǒng)的骨架,所以 需要盡量減少序列化和反序列化的性能開銷互操作:能支持不同語言寫的客戶端和服務(wù)端進(jìn)行交互Hadoop自帶的序列化類型(1)為便于理解 Hadoop 自帶的 Writable 類型,用以下 表格展示 Java 基本類型和 Writable 的對應(yīng)關(guān)系。Hadoop自帶的序列化類型
12、(2)除了上圖Hadoop中的Writable類型,Text類型也 很常用Text 類是一種 UTF-8 格式的 Writable 類型可以將它理解為一種與 java.lang.String 類似的Writable 類型可以通過 set(byte utf8) 方法設(shè)置 Text 實例Hadoop序列化接口Hadoop中定義了兩個序列化接口:Writable 接口 和 Comparable 接口這兩個接口可以合并成一個接口WritableComparableHadoop Writable接口Writable類有兩種常用操作:賦值和取值,以 IntWritable為例來分別說明,IntWritable 是對 Java 的 int 類型的封裝Writable 接口如下, 所有實現(xiàn)了Writable接口的類都可以 被序列化和反序列化:Hadoop Comparable接口所有實現(xiàn)了Comparable的對象都可以和自身相同 類型的對象比較大小。該接口定義為:Hadoop 自定義WritableHadoop 自帶一系列Writable實現(xiàn),如IntWritabl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三農(nóng)村社群營銷作業(yè)指導(dǎo)書
- 文化產(chǎn)業(yè)園區(qū)發(fā)展情況表
- 農(nóng)資化肥購銷協(xié)議
- 2024年藥物運(yùn)載系統(tǒng)藥品項目資金申請報告
- 2025年上半年宣城市宣州區(qū)檢察院警示教育基地招考易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽銅陵學(xué)院招聘高層次人才77人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽蚌埠市淮上區(qū)招聘編外人員考試筆試易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽省馬鞍山市含山縣人民政府辦公室招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽省阜陽市潁上縣住建(城管)局招聘300人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽省渦陽縣政府購買治安輔助人員易考易錯模擬試題(共500題)試卷后附參考答案
- 新疆省新疆生產(chǎn)建設(shè)兵團(tuán)2025屆小升初數(shù)學(xué)高頻考點(diǎn)檢測卷含解析
- 2025年安徽省合肥熱電集團(tuán)招聘50人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 第一次月考測試卷(試題)-2023-2024學(xué)年人教版六年級數(shù)學(xué)下冊
- 新人教版小學(xué)五年級數(shù)學(xué)下冊全冊同步課堂練習(xí)題
- A類業(yè)余無線電操作技術(shù)能力驗證題目題庫1
- 民族宗教政策講座課件
- 幼兒園校車安全管理臺賬
- 人教版高中生物學(xué)選擇性必修教材簡介及實施建議課件
- 湯姆·索亞歷險記(節(jié)選)課件教學(xué)
- 古代漢語文選無標(biāo)點(diǎn)(第一冊,第二冊)
- 靜物素描玻璃器皿塑造
評論
0/150
提交評論