從hdfs讀取image檔案

2021-10-07 22:47:47 字數 568 閱讀 5280

發現從hdfs直接讀取image檔案response = image.open(filepath)會報錯路徑不存在,出現這個問題是因為pil的image.open(filepath)只能開啟本地路徑裡的檔案,不能開啟hdfs裡的。

而且hdfs是相對路徑,所以直接開啟的話是找不到的。

所以要從hdfs讀取,還是要用client那一套。

response = client.hdfs_client.

open

(filepath)

response讀進來的是二進位制檔案,所以要再組合成ndarray

image_arr = cv2.imdecode(np.frombuffer(response.data, np.uint8)

, cv2.imread_color)

但現在是ndarry還不是image啊,所以還要再組合一下

image = image.fromarray(image_arr)

這樣的image就是pil支援的格式了

done!

祝好!

HDFS讀取檔案步驟

client呼叫filesystem.open 該filesystem指向的例項是distrbutedfilesystem dfs 它通過rpc請求到namenode.namenode收到請求後,對於每乙個塊返回存有該副本的datanode位址。並且依照 網路拓撲 來排序。就近原則 dfs獲取到bl...

HDFS 檔案讀取過程

client向namenode發起rpc請求,來確定請求檔案block所在的位置 namenode會視情況返回檔案的部分或者全部block的主機列表,namenode會對列表進行排序,排序兩個規則 網路拓撲結構中距離 client 近的排靠前 心跳機制中超時匯報的 dn 狀態為 stale,這樣的排...

HDFS檔案讀取和寫入

讀取檔案 一 讀取方式一 寫入哪個datanode是不確定的,主要尋找讀取速度較快的datanode 怎麼找到這種datanode,從以下幾個方面 是否有本機位置,本機架位置,本機房位置 依次重試讀取檔案,直到讀取檔案成功 二 讀取方式二 backupread 每次讀取時,client會並行試著讀取...