亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Hadoop流程記錄如何跨塊邊界分割?

Hadoop流程記錄如何跨塊邊界分割?

Hadoop流程記錄如何跨塊邊界分割?根據 Hadoop - The Definitive GuideFileInputFormats定義的邏輯記錄通常不適合HDFS塊。例如,TextInputFormat的邏輯記錄是行,它們將經常跨越HDFS邊界。這與你的程序的功能沒有關系 - 例如,線路不會丟失或損壞 - 但它值得了解,因為它確實意味著數據本地映射(即,與它們在同一主機上運行的映射)輸入數據)將執行一些遠程讀取。這導致的輕微開銷通常不顯著。假設記錄行分為兩個塊(b1和b2)。處理第一個塊(b1)的映射器將注意到最后一行沒有EOL分隔符,并從下一個數據塊中取出剩余的行(b2)。映射器如何處理第二個塊(b2)如何確定第一個記錄是不完整的并且應該從塊(b2)中的第二個記錄開始處理?
查看完整描述

3 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

我認為如下:InputFormat負責將數據拆分為邏輯拆分,同時考慮到數據的性質。
沒有什么可以阻止它這樣做,雖然它可以為作業增加顯著的延遲 - 圍繞所需的分割大小邊界的所有邏輯和讀取都將在jobtracker中發生。 
最簡單的記錄感知輸入格式是TextInputFormat。它的工作原理如下(據我從代碼中理解) - 輸入格式按大小創建拆分,無論行如何,但LineRecordReader始終:
a)跳過拆分中的第一行(或部分),如果不是第一次分割
b)在分割的邊界之后讀取一行(如果數據可用,那么它不是最后一次分割)。

查看完整回答
反對 回復 2019-07-25
  • 3 回答
  • 0 關注
  • 682 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號