大數據技術:MapReduce分片階段詳解

2021-01-08 成都加米谷大數據

MapReduce作為第一代的大數據計算引擎,其經典地位至今仍然得到認可,MapReduce之後的Spark計算引擎,本質上來說,依然是借用了MapReduce的核心思想。今天的大數據技術分享,我們就主要來講講MapReduce計算前的準備階段,也就是Split分片階段。通常來說,MapReduce運行可以分為4個階段,分別是Split階段—Map階段 —Shuffle階段 —Reduce階段。Split是正式計算前的重要準備階段。

1、Split輸入分片的概念所謂輸入分片,並不是真的把原來的一個大文件,比如說10MB的文件,切分成10個1MB的小文件,這裡的分片不是物理分片,而是邏輯分片。所謂邏輯分片就是根據文件的字節索引進行分割,比如0~1MB位置定義為第一個分片,1MB~2MB定義為為第二個分片,依次類推……而原來的大文件還是原來的大文件,不會受到影響,因此,輸入分片(input split)存儲的並非數據本身,而是一個分片長度和一個記錄數據的位置的數組。2、分片數量與Map Task數量的關係?Map Task的個數等於split的個數。Mapreduce在處理大文件的時候,會根據一定的規則,把大文件劃分成多個分片,這樣能夠提高map的並行度。劃分出來的就是InputSplit,每個map處理一個InputSplit,因此,有多少個InputSplit,就有多少個map task。3、由誰來劃分分片?主要是InputFormat類來負責劃分Split。InputFormat類有2個重要的作用:1)將輸入的數據切分為多個邏輯上的InputSplit,其中每一個InputSplit作為一個map的輸入。2)提供一個RecordReader,用於將InputSplit的內容轉換為可以作為map輸入的k,v鍵值對。FileInputFormat是InputFormat的子類,是使用比較廣泛的類,輸入格式如果是hdfs上的文件,基本上用的都是FileInputFormat的子類,如TextInputFormat用來處理普通的文件,SequceFileInputFormat用來處理Sequce格式文件。FileInputFormat類中的getSplits(JobContext job)方法是劃分split的主要邏輯。4、分片的大小由誰來決定?每個輸入分片的大小是固定的,默認情況下,輸入片(InputSplit)的大小與數據塊(Block)的大小是相同的。Hadoop 2.x默認的block大小是128MB,Hadoop 1.x默認的block大小是64MB,可以在hdfs-site.xml中設置dfs.block.size,注意單位是byte。分片大小範圍可以在mapred-site.xml中設置,最小分片大小:mapred.max.split.size,minSplitSize大小默認為1B,maxSplitSize大小默認為Long.MAX_VALUE = 92233720368547758075、默認分片大小與Block分塊大小是相同的原因?Hadoop在存儲有輸入數據(HDFS中的數據)的節點上運行map任務,可以獲得高性能,這就是所謂的數據本地化。所以最佳分片的大小應該與HDFS上的塊大小一樣,因為如果分片跨越2個數據塊,對於任何一個HDFS節點(Hadoop系統保證一個塊存儲在一個datanode上,基本不可能同時存儲這2個數據塊),分片中的另外一塊數據就需要通過網絡傳輸到map任務節點,與使用本地數據運行map任務相比,效率則更低。優點就是可以實現分塊優化,減少網絡傳輸數據,使用本地數據運行map任務。關於大數據技術,MapReduce分片階段,以上就為大家做了詳細的介紹了。MapReduce作為大數據計算的代表性框架,理解和掌握MapReduce實際的程序執行,也是非常有必要的。

相關焦點

  • MapReduce Shuffle 和 Spark Shuffle 區別看這篇就夠了
    在shuffle之前,也就是在map階段,MapReduce會對要處理的數據進行分片(split)操作,為每一個分片分配一個MapTask任務。接下來map會對每一個分片中的每一行數據進行處理得到鍵值對(key,value)此時得到的鍵值對又叫做「中間結果」。此後便進入reduce階段,由此可以看出Shuffle階段的作用是處理「中間結果」。
  • 深入學習MongoDB分片(Sharding)集群技術
    1.1 分片的目的高數據量和吞吐量的資料庫應用會對單機的性能造成較大壓力,大的查詢量會將單機的CPU耗盡,大的數據量對單機的存儲壓力較大,最終會耗盡系統的內存而將壓力轉移到磁碟IO上。為了解決這些問題,有兩個基本的方法:垂直擴展和水平擴展。垂直擴展:增加更多的CPU和存儲資源來擴展容量。
  • 王嘉平:號稱「公鏈分片」技術的五大謊言|鏈聞硬核
    在吹過牛、賺過錢,然後牛皮破了,賺到錢又賠出去之後,整個行業是時候好好探討一些有利於技術發展的「真問題」了。本周,鏈聞繼續發表王嘉平先生的另一篇文章,就市場追捧和關注的「分片技術」,切開了、揉碎了進行分析,告訴大家這個話題最基本、但是也是最值得了解的知識:為什麼我們需要分片技術?理想的分片技術究竟應該解決什麼問題?基於此,他也提出了目前市面上已有的分片方案存在的五個誤區。
  • 號稱「公鏈分片」技術的五大謊言 - 區塊鏈公鏈如何才能快起來 (系列之二)
    分片(Sharding)技術就是針對這一思路提出的。分片最初是基於資料庫系統提出的,泛指橫向切分資料庫伺服器的負荷,用多個資料庫伺服器平行服務的方式,以提升整體的服務吞吐量和數據容量。實際上,分片並不單指一種特定的技術,而是一大類橫向切分系統負荷,多實例並行,以提高整體性能和容量的技術。不過,分片這個提法在區塊鏈技術中過於寬泛。
  • redis學習筆記(六)分片集群
    另一種方式是分片集群的方式,主要講多個redis實例組成一個集群,將redis的數據劃分多份,每一份由一個實例來保存。·  橫向擴展    即增加當前redis分片實例的個數,將數據分成多分,保存在不同的分片實例中。    優點:    1、與縱向擴展相比,擴展性更好,如果需要保存更多的數據只是要增加redis的分片實例即可。
  • 公鏈十字路口: 海納百川的異構分片
    上一階段我們討論的是DeFi專題, 現在讓我們進入公鏈十字路口系列的第一次分享:【QuarkChain:海納百川的異構分片】, 來和夸克一起聊聊分片這件事
  • 大數據系列之MapReduce的shuffle原理
    我們都知道 MapReduce 計算模型一般包括兩個重要的階段: Map 是映射, 負責數據的過濾分發; Reduce 是規約, 負責數據的計算歸併。Reduce 的數據來源於 Map, Map 的輸出即是 Reduce 的輸入, Reduce 需要通過 Shuffle 來獲取數據。
  • 分片到極致分片?ETH2.0信標鏈和波卡中繼鏈有何區別?
    2020年的區塊鏈行業風起雲湧,DeFi的泡沫之夏,分布式存儲項目的全面鋪開,幾大公鏈巨頭集中爆發,熱潮退燒之後,下半年也始終圍繞以太坊的公鏈擴容和波卡的多鏈生態進行探討。按照官方公布的路線圖,ETH2.0主網上線將分為0、1、2三個階段,0階段的任務就是上線信標鏈。作為ETH2.0啟動的排頭兵,信標鏈的重要性不言而喻。而此前我們在對比ETH2.0和波卡時,說的最多的一句話就是:「波卡就是極致的分片」,言外之意波卡和ETH2.0在結構上極為相似。
  • 【blocktimes線上專訪】分片如何解決百億人的公鏈需求
    蘭榮堅:大家上午好,我是Harmony(和夢鏈)的聯合創始人蘭榮堅,很高興和大家討論分片技術的細節,以及現階段分片技術的發展方向。Harmony是一天基於分片技術的高性能公鏈項目,團隊位於美國矽谷。很多項目在用分片技術解決這個擴容問題,Zilliqa可以說是第一個利用分片技術的公鏈項目,Zilliqa對網絡層和交易層進行了分片,但是沒有對狀態進行分片,這裡的狀態是指區塊鏈帳本的數據,所以zilliqa的每個節點都需要存儲整個網絡全部帳本信息。對於一個高性能區塊鏈,這個帳本本大小增長極快,一年就要有上TB的大小,這樣對於存儲容量小的節點來說是個壞消息,因為他們就不能加入的網絡中了。
  • AIoT再成焦點 海納雲論道2020中國軟體技術大會
    12月18日,由中國科學院軟體研究所、中科軟(603927)科技聯合主辦的2020中國軟體技術大會將在北京隆重舉行,作為國內引領的物聯網智慧社區/園區生態平臺,海納雲受邀參會,並與IBM、華為、騰訊、阿里巴巴等頭部企業及國內外知名企業技術大咖、行業技術專家圍繞大數據與AI平臺、雲計算與移動架構、產品設計與研發等熱點話題
  • 支付寶資深技術專家尹博學:新一代金融核心突破之全分布式單元化...
    螞蟻也經歷了單活、同城雙活、兩地三中心,三個階段。其中兩地三中心是同城雙活加一個冷備。隨著螞蟻業務和業務量複雜度的越來越高,業務對於基礎架構的要求也越來越高,即擴展能力、容災能力、灰度能力要求越來越高。最終螞蟻發展到了單元化架構,將主要業務拆分單元即分片,裝入不同的邏輯單元內,每個分片的資料庫實現三地五中心部署即三地五中心的單元化架構。
  • Python中str、list、numpy分片操作
    跟之前列表的分片的區別在於,numpy數組分片是原始數組的視圖,數據沒有被複製,視圖上任何的修改都會直接反映到源數據上,如果不希望修改到源數據,則用arr[5:8].copy():>>> arr_slice = arr[5:8]>>> arr_slicearray([12, 12, 12])>>> arr_slice
  • 搜狗搜索公開課 詳解搜尋引擎技術應用及趨勢
    搜狗搜索公開課 詳解搜尋引擎技術應用及趨勢 2015年07月16日 13:44作者:投稿編輯:丁蓓蓓文章出處:泡泡網原創   作為國內搜尋引擎巨頭
  • 大數據時代,數據挖掘技術的應用!
    信息技術的快速發展,網際網路的信息量逐漸增多,大數據時代到來,大數據時代之下,對於數據的運用成為了主流,數據挖掘成為各行業在大數據時代尤為重要的發展重心。當今時代之下,各類數字信息技術的快速發展,信息化已經成為了社會主要的發展趨勢,也成為了國民經濟增長的重要方式。
  • 星環科技孫元浩:大數據技術將是企業未來的核心競爭力
    關於新基建建設,一方面是信息基礎設施建設,包括機房、大數據軟體、雲等等;另一方面是融合基礎設施建設,把新一代的新技術融合到各個行業當中去,加速他們的轉型;此外還有創新基礎設施,主要是一些基礎的創新,偏重在核心技術方面的研究。我們可以看到,大數據技術實際上在各個行業當中都在不斷融合,在新基建處於核心位置,加速各行業和企業的數位化轉型。
  • 如何實現1080P延遲低於500ms的實時超清直播傳輸技術
    知道 H.264 的原理和分組編碼技術後所謂的秒開技術就比較簡單了,只要發送方從最近一個 GOP 的 I 幀開發發送給接收方,接收方就可以正常解碼完成的圖像並立即顯示。但這會在視頻連接開始的時候多發一些幀數據造成播放延遲,只要在接收端播放的時候儘量讓過期的幀數據只解碼不顯示,直到當前視頻幀在播放時間範圍之內即可。
  • 醫療數據安全是醫療信息化發展優先議題,數據智能技術助力醫療大...
    醫療數據安全基本技術架構 三醫療數據安全領域細分應用場景及代表機構 四醫療數據安全代表數據智能技術應用產品/解決方案及應用案例新疆CA——醫院電子病歷系統信息安全解決方案:基於數字籤名技術,新疆CA為醫院設計了一套無紙化安全解決方案,
  • 技術更新太快學不動?騰訊TVP十場硬核技術分享助你抓住本源
    本次分享首先介紹 Keep 大數據平臺的建設之路:數據基礎設施的建設,數據產品的建設和數據服務的建設。接著介紹如何利用運動數據在運動意識、運動體驗和運動效果方向的探索。 硬核大綱: 1.Keep 大數據平臺的建設之路 - 數據基礎設施的建設之路 - 數據產品的建設之路 - 數據服務的建設之路 2.
  • V神帶你重新認識ETH2:理念、路線圖、技術
    但大家不知道的是,社區現在依然還有很大的分歧,比如關於是否使用分片做數據存儲,關於轉換共識後的合併,甚至有可能會出現分叉等等。而普通用戶對 ETH2 也並沒有宏觀的了解,ETH2 的性能到底是什麼樣的?為什麼 Phase2(第二階段)會暫時擱置?
  • 將新技術、大數據與現代財稅更好地融合
    中國科學院院士鄭志明,國信優易數據研究院院長車品覺,通過視頻方式參會。       論壇以「新技術、大數據與現代財稅」為主題,與會學者圍繞如何將新技術、大數據與現代財稅更好地融合,將之服務於金融,如何更有效地運用財政大數據,如何將人工智慧服務於金融普惠等問題展開深入研討。