日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hadoop学习;datajoin;chain签名;combine()

發布時間:2025/6/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hadoop学习;datajoin;chain签名;combine() 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

hadoop有種簡化機制來管理job和control的非線性作業之間的依賴。job對象時mapreduce的表現形式。job對象的實例化可通過傳遞一個jobconf對象到作業的構造函數中來實現。

x.addDeopendingJob(y)意味著x在y完畢之前不會啟動。

鑒于job對象存儲著配置和依賴信息。jobcontrol對象會負責監管作業的運行,通過addjob()。你能夠為jobcontrol加入作業,當全部作業和依賴關系加入完畢后。調用jobcontrol的run()方法,生成一個線程提交作業并監視其運行,有allFinised()。getFailedJobs()方法

hadoop引入chainMapper和chainReducer來簡化預處理和后處理

driver會先設置“全局”jobconf對象。包括作業名,輸入路徑和輸出路徑等,它一次性加入全部步驟,然后按順序運行

ChainMapper.addMapper()方法的簽名來具體了解怎樣一步步的鏈接作業


byvalue用于推斷是否是值傳遞。若為false則採用引用傳遞。初始mapper的輸出內容保存在內存中,假設后期不再調用傳入的值,能夠這樣,效率高,一般設為true


reduce函數接收輸入數據,并對其值進行交叉乘積,reduce生成這些值的全部合并結果。

交叉乘積得到的每一個合并結果被送入函數combine()(不是combiner)生成一個輸出記錄。對于隨意特定的合并,combine能夠選擇不輸出。交叉乘積的本質確保了combine看到的記錄都有同樣的連接鍵

在解釋怎樣使用DatajoingMapperBase和DataJoinReduceBase之前,你須要了解在代碼通篇所使用的一個抽象數據類TaggedMapOutput(用Text標簽封裝記錄的數據類型)

在數據流的描寫敘述中,mapper輸出的包帶有一個組鍵和一個被標簽記錄的值。datajoin軟件包指定組鍵為text類型。而值為TaggerMapOutput類型,它詳細實現了getTag()和setTag(Text Tag)方法

作為mapper的輸出,TaggerMapOutput必須是Writable類型,因此我們的子類必須實現readFile()和write()方法

DataJoinMapper運行全部的封裝。指定了三個能夠填充的抽象方法

generateInputTag在map任務開始前調用。來為這個map任務所處理的全部記錄指定一個全局標簽

假設橫跨幾個文件,能夠用它們的前綴作為標簽

完畢map任務初始化后,為每一個記錄調用DataJoinMapperBase的map()方法。里面調用generateTaggedOutput()和generateGroupKey()方法

原則上。在同一文件里,不同的記錄能夠用不同的標簽,在標準情況下,我們希望一個標簽代表一個數據源,它早先由generateInputTag()計算好并存在this.InputTag中


總結

以上是生活随笔為你收集整理的hadoop学习;datajoin;chain签名;combine()的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。