hadoop影象分割

2022-11-30 15:18:01 字數 3947 閱讀 2949

hadoop是apache lucene創始人doug cutting建立的,lucene是乙個廣泛使用的文字搜尋系統庫。hadoop起源於apache nutch,乙個開源的網路搜尋引擎, 它本身也是lucene專案的一部分。

hadoop的子專案及後續模組所使用的名稱也往往與其功能不相關,通常也以大象或其他動物為主題取名(例如"pig")。較小一些的元件,名稱通常具有較好的描述性(也因此更俗)。這個原則很好,這意味著你可以通過它的名字大致猜測它的功能,例如,jobtracker 用於跟蹤mapreduce作業。

從頭開始構建乙個網路搜尋引擎是乙個雄心勃勃的計畫,不僅是因為編寫乙個爬取並索引網頁的軟體比較複雜,更因為這個專案需要乙個專門的團隊來實現--專案中包含許多需要隨時修改的元件。同時,構建這樣乙個系統的代價非常高--據mike cafarella和doug cutting估計,乙個支援10億網頁的索引系統單是硬體上的投入就高達50萬美元,另外每月執行維護費用也高達3萬美元。 不過,他們認為這項工作仍然是值得的,因為它開創了優化搜尋引擎演算法的平台。

nutch專案始於2023年,乙個可以執行的網頁爬取工具和搜尋引擎系統很快"浮出水面"。但後來,開發者認為這一架構可擴充套件度不夠,不能解決數十億網頁的搜尋問題。2023年發表的一篇**為此提供了幫助,文中描述的是谷歌產品架構,該架構稱為谷歌分布式檔案系統,簡稱gfs。

gfs或類似的架構,可以解決他們在網頁爬取和索引過程中產生的超大檔案的儲存需求。特別關鍵的是,gfs能夠節省系統管理(如管理儲存節點)所花的大量時間。在2023年,他們開始著手實現乙個開源的實現,即nutch的分布式檔案系統(ndfs)。

2023年,谷歌發表**向全世界介紹他們的mapreduce系統。 2023年初,nutch的開發人員在nutch上實現了乙個mapreduce系統,到年中,nutch的所有主要演算法均完成移植,用mapreduce和ndfs來執行。

nutch的ndfs和mapreduce實現不只是適用於搜尋領域。在2023年2月, 開發人員將ndfs和mapreduce移出nutch形成lucene的乙個子專案,稱為 hadoop。大約在同一時間, doug cutting加入雅虎,雅虎為此組織了乙個專門的團隊和資源,將hadoop發展成乙個能夠處理web資料的系統(見第11頁的補充材料)。

在2023年2月,yahoo!宣布其搜尋引擎使用的索引是在乙個擁有1萬個核心的hadoop 集群上構建的。

2023年4月,hadoop打破世界紀錄,成為最快的tb級資料排序系統。通過乙個910節點的群集,hadoop在209 秒內(不到三分半鐘) 完成了對1 tb資料的排序,擊敗了前一年的297秒冠軍(詳情參見第553頁的"apache hadoop tb級資料排序"小節)。同年11月,谷歌在報告中聲稱,它的mapreduce對1 tb資料排序只用了68秒。

hdfs和mapreduce是hadoop的兩大核心。而整個hadoop的體系結構主要是通過hdfs來實現對分布式儲存的底層支援的,並且它會通過mapreduce來實現對分布式並行任務處理的程式支援。

我們首先介紹hdfs的體系結構,hdfs採用了主從(master/sl**e)結構模型,乙個hdfs集群是由乙個namenode和若干個datanode組成的。其中namenode作為主伺服器,管理檔案系統的命名空間和客戶端對檔案的訪問操作;集群中的datanode管理儲存的資料。hdfs允許使用者以檔案的形式儲存資料。

從內部來看,檔案被分成若干個資料塊,而且這若干個資料塊存放在一組datanode上。namenode執行檔案系統的命名空間操作,比如開啟、關閉、重新命名檔案或目錄等,它也負責資料塊到具體datanode的對映。datanode負責處理檔案系統客戶端的檔案讀寫請求,並在namenode的統一排程下進行資料塊的建立、刪除和複製工作。

下圖給出了hdfs的體系結構。

圖一 hdfs的體系結構圖

接下來介紹mapreduce的體系結構,mapreduce是一種並行程式設計模式,這種模式使得軟體開發者可以輕鬆地編寫出分布式並行程式。在hadoop的體系結構中,mapreduce是乙個簡單易用的軟體框架,基於它可以將任務分發到由上千台商用機器組成的集群上,並以一種高容錯的方式並行處理大量的資料集,實現hadoop的並行任務處理功能。。主節點負責排程構成乙個作業的所有任務,這些任務分布在不同的從節點上。

主節點監控它們的執**況,並且重新執行之前失敗的任務;從節點僅負責由主節點指派的任務。當乙個job被提交時,jobtracker接收到提交作業和配置資訊之後,就會將配置資訊等分發給從節點,同時排程任務並監控tasktracker的執行。

從上面的介紹可以看出,hdfs和mapreduce共同組成了hadoop分布式系統體系結構的核心。hdfs在集群上實現了分布式檔案系統,mapreduce在集群上實現了分布式計算和任務處理。hdfs在mapreduce任務處理過程中提供了檔案操作和儲存等支援,mapreduce在hdfs的基礎上實現了任務的分發、跟蹤、執行等工作,並收集結果,二者相互作用,完成了hadoop分布式集群的主要任務。

hadoop對影象處理還是乙個新興的研究方向,我們可以從下圖看出hadoop處理影象的流程:

圖二 hadoop處理影象流程

mapreduce的工作過程分為兩個階段:map階段和reduce階段。如圖三所示:

使用者程式直接把需要處理的**檔案對應路徑告訴mapreduce框架,作為mapreduce程式的輸入。imageinputformat對輸入進行劃分,imagerecordreader對輸入,進行記錄讀取,取得key值為imagesplit物件的路徑,value值為imagewritable。mapreduce框架把讀取的對傳遞給map程式進行執行,map程式對**進行相關操作後,利用reduce程式將處理後的影象分片進行整合,得到處理後的整個影象檔案。

reduce程式將構建的物件傳遞給imageoutputformat進行輸出。

hadoop通過writable對訊息進行序列化。writable介面定義了輸入輸入流的基本方法,mapreduce程式用他來序列化鍵 /值對。實驗實現了自定義的imagewritable對影象檔案進行編碼。

writable介面定義了兩個方法:乙個用於將其狀態寫入二進位制格式的dataoutput流,另乙個用於從二進位制格式的datainput流讀取其狀態。imagewritable重寫了這兩個方法,分別寫入和讀出**的相關資料:

**的高度和寬度,源影象的y軸高度,影象的路徑和影象的畫素資訊。

(1) 輸入格式:繼承了fileinputformat類。fileinputformat是所有使用檔案作為資料來源的inputformat實現的基類。

imageinputformat負責產生輸入分片並將它們分割成記錄。指定imagerecordreader將輸入分割成記錄,使用者可以定義記錄的大小,他小於或等於分片imagesplit。鍵是text型別,儲存該子**在檔案系統的路徑。

值是乙個記錄,它是imagewritable型別。

(2) 記錄閱讀器:imagerecordreader。map任務使用imagerecordreader來讀取記錄並且生成鍵/值對,然後傳遞給mao函式。

imagerecordreader重寫了recordreader定語的所以函式。其基本構造。imagerecordreader的nextkeyvalue()方法是得到下乙個鍵/值對,鍵位當前的處理的鍵,值通過計算得到的下乙個記錄要處理的影象的分片。

使用者可以自定義imagewriatble的大小,imagerecordreader的getconfig()方法用來接受使用者傳遞的資料。getconfig()函式主要接收3個引數:imagewritable的大小,需要利用的相鄰畫素點的便邊界個數和當前處理的影象是否為彩色影象。

圖三 mapreduce 資料流

hadoop執行中fileinputformat都是預設一行讀取的,所以必須過載檔案輸入流,本文中派生出jpegfileinputformat,jpegfileoutputformat檔案流。

public static class mymapper extends mapper

public void map(imageheader key, floatimage value, context context) throws ioexception, interruptedexception{

學術報告之影象分割技術

影象分割質量評價,就是通過對影象分割演算法的效能研究來篩選出更優的分割演算法,以達到優化分割的目的。為使評價方法實用準確,對評價方法提出了以下基本要求 應具備通用性,即所選定的評價方法能夠適用於不同的分割演算法及各種應用領域。應採用定量的和客觀的效能評價準則,這裡的定量是指能夠客觀的描述演算法的效能...

基於CT影象肺實質分割的方法

作者 娜孜古麗 庫爾曼別克哈力旦 阿布都熱依木楊娜娜 科技創新與應用 2013年第15期 摘要 醫學影像研究的發展為現階段肺癌病例的分析提供了平台,對肺部ct影象進行病灶區域的分割工作是對病灶區域定位的關鍵步驟。文章改進的閾值分割演算法的基礎上,提出一種簡潔有效的基於模板卷積的ct肺實質割演算法 首...

結合模糊聚類演算法的影象分割方法

第 卷第 期電腦開發與應用 文軍編號 結合模糊聚類演算法的影象分割方法 張勇昌 江蘇建築職業技術學院公共基礎學院江蘇徐州 摘要 在介紹聚類分析原理的基礎上,比較了幾種聚類分割演算法,得出了模糊 一均值聚類方法在影象分割中的優勢。最後,基於排列組合熵和灰度特徵,結合模糊 一均值聚類演算法對影象紋理進行...