批處理主要操作大容量靜態資料集(有邊界資料),並在計算結束後返回結果。
批處理模式中使用的資料集通常符合以下特徵:
有界:資料是限的
持久:資料通常儲存在某種持久儲存中
大量:批處理是處理極為海量資料集的唯一方法
批處理非常適合需要訪問全套記錄才能完成的計算工作,例如計算總數以及平均數。但是不適合對處理時間要求較高的場合,因為處理大量資料通常需要大量的時間。
apache hadoop是一種專用於批處理的處理框架。hadoop是首個在開源社群獲得極大關注的大資料框架。基於谷歌有關海量資料處理所發表的多篇**與經驗的hadoop重新實現了相關演算法和元件堆疊,讓大規模批處理技術變得更易用。
新版hadoop包含多個元件,即多個層,通過配合使用可處理批資料:
hdfs:hdfs是一種分布式檔案系統層,可以對集群節點之間的儲存和複製進行協調,它確保了當某些節點故障發生後資料依然可用。可將其作為資料**,或是儲存中間態的處理結果,亦或是儲存計算的最終結果。
yarn:yarn是yet another resource negotiator(另乙個資源管理器)的縮寫,可充當hadoop堆疊的集群協調元件。該元件負責協調並管理底層資源和排程作業的執行。通過充當集群資源的介面,yarn使得使用者能在hadoop集群中使用比以往的迭代方式執行更多型別的工作負載。
mapreduce:mapreduce是hadoop的原生批處理引擎。
批處理 × hadoop
hadoop的批處理功能來自mapreduce引擎,mapreduce的處理技術符合使用鍵值對的map、shuffle、reduce演算法要求。基本處理過程包括:
從hdfs檔案系統讀取資料集
將資料集拆分成小塊並分配給所有可用節點
針對每個節點上的資料子集進行計算(計算的中間態結果會重新寫入hdfs)
重新分配中間態結果並按照鍵進行分組
通過對每個節點計算的結果進行彙總和組合對每個鍵的值進行「reducing」
將計算而來的最終結果重新寫入 hdfs
優勢和侷限
由於這種方法嚴重依賴持久儲存,每個任務需要多次執行讀取和寫入操作,因此速度相對較慢。但另一方面由於磁碟空間通常是伺服器上最豐富的資源,這意味著mapreduce可以處理非常海量的資料集。同時也意味著相比其他類似技術,hadoop的mapreduce通常可以在廉價硬體上執行,因為該技術並不需要將一切都儲存在記憶體中。mapreduce具備極高的縮放潛力,生產環境中曾經出現過包含數萬個節點的應用。
mapreduce的學習曲線較為陡峭,雖然hadoop生態系統的其他周邊技術可以大幅降低這一問題的影響,但通過hadoop集群快速實現某些應用時依然需要注意這個問題。
圍繞hadoop已經形成了遼闊的生態系統,hadoop集群本身也經常被用作其他軟體的組成部件。很多其他處理框架和引擎通過與hadoop整合也可以使用hdfs和yarn資源管理器。
Hadoop大資料處理
hadoop大資料處理 以大資料處理系統的三大關鍵要素 儲存 計算 與 容錯 為起點,深入淺出地介紹了如何使用hadoop這一高效能分布式技術完成大資料處理任務。本書不僅包含了使用hadoop進行大資料處理的實踐性知識和示例,還以 並茂的形式系統性地揭示了hadoop技術族中關鍵元件的執行原理和優化...
JDBC 大資料和批處理
目標 把 儲存到資料庫中!在my.ini中新增如下配置!max allowed packet 10485760 blob binary large object 二進位製大物件 位元組資料大物件 clob chractor large object 字元資料大物件 1.什麼是sql當中的大資料 所謂...
大資料處理架構Hadoop
hive 資料倉儲 把sql語句轉換成mapreduce作業 pig流資料處理 乙個基於hadoop的大規模資料分析平台提供類似sql的查詢語言pig latin oozie作業流排程系統 hadoop上的工作流管理系統 zookeeper分布式協調服務 提供分布式協調一致性服務 hbase列族資料...