1. 程式人生 > >Hadoop 檔案讀流程

Hadoop 檔案讀流程

1)流程圖

    

2)流程解讀

    1. 客戶端執行命令(或者程式碼讀取),呼叫的是dfs的FileSystem.open的方法,open傳的是檔案路徑 

    2. 根據檔案路徑去NN找,NN把block塊和所在位置的資訊的對映關係,返回給一個FSDataInoputStream的物件

    3. 客戶端拿到FSDataInoputStream物件(即block塊地址列表),根據最近的網段去迴圈讀取block塊

    4. 讀取完後會有一個check的動作,check完之後會關閉與DN的連線

    5. 以130M檔案為例,會有2個block,6個副本,分佈在不同機器上。 

    6. 當拿第一個block的機器是有問題的,會去拿第二個副本的機器上拿,依次類推

    7. 假如全部副本都損壞,即檔案損壞,不能讀取了

    8. 當所有block都讀取完後,會拼裝成一個完整的資料流,再轉換成檔案的內容

    9.最後close,關閉輸入流

3)客戶端操作

    對於客戶端,操作是透明的,使用者體現就是連續的資料流

【來自@若澤大資料】

相關推薦

Hadoop 檔案流程

1)流程圖    2)流程解讀    1. 客戶端執行命令(或者程式碼讀取),呼叫的是dfs的FileSystem.open的方法,open傳的是檔案路徑     2. 根據檔案路徑去NN找,NN把block塊和所在位置的資訊的對映關係,返回給一個FSDataInoputSt

hdfs——hadoop檔案寫操作

在hadoop中,有三大法寶——HDFS,MapReduce,Hbase,但是無論是MapReduce,Hbase還是hadoop中的其他元件如:Hive等他們要處理的資料還是處理完了的資料都是儲存在HDFS中。可見HDFS可以說是hadoop儲存的基礎和核心,

大資料開發之Hadoop篇----hdfs流程

讀流程所涉及到的有client,NameNode和DataNode這個三個,我們來了解下這三個之間在讀流程裡都是幹什麼的。 1,當我們輸入一條讀入資料的命令的時候,如:hdfs dfs -ls /  或者 hdfs dfs -cat /user/hadoop/xxx時,client就通

Java: Hadoop檔案系統的寫操作

所需jar包路徑: hadoop-2.8.5/share/hadoop/common hadoop-2.8.5/share/hadoop/common/bin hadoop-2.8.5/share/hadoop/hdfs hadoop-2.8.5/share/hadoop/hdfs

學習筆記:從0開始學習大資料-5.hadoop hdfs檔案寫api操作

學習測試,網上下的程式碼,測試通過,助於理解讀寫程式流程 package com.linbin.testmaven; import java.net.URI; import java.text.SimpleDateFormat; import java.util.Date; import or

hdfs中namenode及DataNode,源資料資訊,檔案流程

客戶端呼叫create()來建立檔案 DistributedFileSystem用RPC呼叫元資料節點,在檔案系統的名稱空間中建立一個新的檔案。 元資料節點首先確定檔案原來不存在,並且客戶端有建立檔案的許可權,然後建立新檔案。 DistributedFileSystem返回DFSOutputStream

hadoopsequence檔案時,會將檔案拷貝兩份,然後進map處理

讀取sequencefile,在設定輸入路徑的時候,如果設定成 SequenceFileInputFormat.addInputPath(job, new Path(args[0])); 則會把檔案拷貝兩份。 正確的還是應該設定成: FileInputFormat.s

Linux基礎之檔案流程

讀檔案流程 程序呼叫庫函式向核心發起讀檔案請求; 核心通過檢查程序的檔案描述符定位到虛擬檔案系統的已開啟檔案列表表項; 呼叫該檔案可用的系統呼叫函式read(); read()函式通

Hadoop之HDFS檔案寫過程

       4.DFSOutputStream將資料分成塊,寫入data queue。data queue由Data Streamer讀取,並通知元資料節點分配資料節點,用來儲存資料塊(每塊預設複製3塊)。分配的資料節點放在一個pipeline裡。Data Streamer將資料塊寫入pipeline中的第

檔案寫基本流程

讀檔案 1、程序呼叫庫函式向核心發起讀檔案請求; 2、核心通過檢查程序的檔案描述符定位到虛擬檔案系統的已開啟檔案列表表項; 3、呼叫該檔案可用的系統呼叫函式read() 3、read()函式通過檔案表項鍊接到目錄項模組,根據傳入的檔案路徑,在目錄項模組中

Hadoop程式設計學習(四):使用FileSystem類進行檔案寫及檢視檔案資訊

http://www.cnblogs.com/beanmoon/archive/2012/12/11/2813235.html 在這一節我們要深入瞭解Hadoop的FileSystem類——這是與與hadoop的檔案系統互動的重要介面。雖然我們只是著重於HDFS的實現,但

Hadoop檔案寫(Java)

前言 在本文件中,你將瞭解到如何用Java介面讀寫Hadoop分散式系統中的檔案,以及編碼的轉換等問題。其中有些細節,在你不知道的時候,是非常容易出錯的。 這邊讀寫檔案分以下三種情況: 1. 在非Map Reduce過程中讀寫分散式檔案系統中的檔案 比如說,你想自己遍歷

hdfs檔案核心流程詳解巧說

一.hdfs寫資料流程(面試重點) 1)客戶端(fs)向namenode請求上傳檔案,namenode檢查目標檔案是否已存在,父目錄是否存在。 2)namenode返回是否可以上傳。 3)客戶端請

hadoop 流程和寫流程

hadoop HDFD讀流程 hadoop HDFD寫流程 package com.lhj.hadoop; import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt

淺談HDFS的流程

tps otto 如果 rmp dfs margin 驗證 https class 1、使用HDFS提供的客戶端Client,向遠程的Namenode發起RPC請求;2、Namenode會視情況返回文件的部分或者全部block列表,對於每個block,Namenode都會返

PGM格式影象檔案

        private int mWidth;         private int mLength;         private int mColor;

Java 之 檔案寫及效能比較總結

Java 之 檔案讀寫及效能比較總結 2014年05月12日 17:56:49 閱讀數:21765  幹Java這麼久,一直在做WEB相關的專案,一些基礎類差不多都已經忘記。經常想得撿起,但總是因為一些原因,不能如願。 其實不是沒有時間,只是有些時候疲於總結,今得空,下定決心

json.dump json.load與檔案寫操作

一.寫檔案 info={"name":"李小龍",'age':66,'love':"cat"} fp=open('testdict1.txt','w+',encoding='utf-8') fp.write(info) ls=list('1234567890') # print(ls) f

C檔案寫函式

fopen() 函式原型 函式原型:FILE * fopen(const char * path, const char * mode); FILE *fp ; fp = fopen("D:\\a.txt","r"); \\是一種轉義字元,他表示一個\,就像\n表示回車一樣,即

NOIP複賽複習(三)檔案寫與數論模板

檔案讀入讀出 假設題目名為“add”,那麼資料夾名為“add”,c++程式名為“add.cpp”,讀入檔名為“add.in”,輸出檔名為“add.out”。四個的拼寫均不可有誤,包括大小寫差異。千萬不要除錯後就忘記修改檔案讀入讀出了。  #include<cstdio&