hadoop 主要就是用來解決大資料的儲存和計算問題的!
那麼什麼是大資料那?
資料量級很大的應用處理,資料集在tb及以上,或日增量在/g的資料!
所以大資料的特點便是4v,何為4v?
1 vomule(大量):資料量大至少為tb或日增gb以上的
2 variety (多樣):資料多樣,結構化資料,非結構化資料,半結構化資料!
3 velocity(快速):相對來說處理的速度是快的!
4 value(價值):在海量沒有價值的資料中挖掘出有價值的資料來!
注意:大資料的核心處理型別通常為文字型別
大資料目前面臨的問題便是
1,儲存
如何解決大資料,大量資料的儲存問題那!hadoop 提供了hdfs (hadoop的檔案分布式儲存系統)
2,統計計算
如何解決現有大規模的資料集中統計和計算的問題!hadoop 提供了mapreduce (對hdfs中的資料進行做統計和計算)
hdfs (hadoop distribute file system):hadoop 的分布式檔案儲存系統,它核心的解決了大資料的儲存問題!
hdfs的基礎架構圖
主要是有namenode 和 datanode
namenode是hdfs的入口,管理者,它不儲存真正的資料,只儲存元資料1
!namenode 的持久化機制
利用了fsimage(類式於快照,記錄當前的資料狀態)和edits(日誌)檔案來保證資料的高可用!
job 作業的總流程
0,先建立job作業
1,設定inputformat給map 傳送資料
2,設定map(自己根據需求寫**來實現想要的區域性統計計算)
3,shuffle這個不用自己設定,是自動的
4,設定redice (自己根據需求寫**來實現想要的匯**計計算)
5,設定outputformat將弄好的資料存放到hdfs!
~,關閉job作業
map 任務的個數程式設計師是無法確定的,是和切片的個數一一對應的,切片是一種邏輯切片,和檔案的大小有關,當檔案大於128*1.1=140.8m時便會進行切片,剩餘不大於140.8便是一片,大於則會再切!
reduce 任務的個數是有程式設計師來確定的,可以有0-n個,比如做資料清洗便不需要進行彙總計算reduce的個數便可以設定為0,如果設定多個reduce任務的話會所得到的資料也會存在不同的reduce 分割槽檔案裡! 可以自定義分割槽將資料按需求放到不同檔案裡去!
多個reduce 是可以提高彙總計算的效率的!
合併 combiner
合併又被稱為map 端的reduce ,主要是對map 區域性端的資料先進行一次reduce,從而減少map 端輸出資料頻繁傳送給reduce 處理時所帶來的網路壓力問題!
通過這種在map 端提前對輸出的資料進行一次reduce,既可以減少網路壓力,又可以提高效率!不過combiner在mapreduce 程式設計模型裡是預設關閉的!
shuffle 分析
shuffle 又被分為map 端shuffle 和 reduce 端shuffle !
map 端的shuffle ,每乙個map 輸出的資料都會進入環形緩衝區(預設100m)當資料達到80%的緩衝區佔比時,便會進行溢寫操作(寫入到磁碟)形成乙個個的小檔案,之後會對這些小檔案進行分割槽合併到一起(沒開combiner的話只是簡單的物理合併)(混洗)!
reduce 端的shuffle,會將map 端shuffle 傳來的資料進行按區分到各個reduce 任務上去,在將這乙個個同區的檔案和並成乙個大的檔案(混洗),傳送給reduce 來進行統計計算
元資料是指用來儲存真正資料資訊的資料!比如真正資料儲存的位置,大小名稱時間戳等!
datanode真正用來儲存真正資料的節點!儲存的是乙個個的資料塊[^2],代表著乙個真實的物理機!
[^2]:資料塊hadoop 為了通過多個節點儲存大的資料集,hdfs會將大的資料集切分成一塊塊的資料塊,在現有的hadoop 2版本中,預設一塊的大小為128m。 ↩︎
hadoop簡單了解
四大模組 三大核心 hdfs mapreduce yarn 生態圈 分布式系統 hdfs檔案系統的介紹 分而治之 將大檔案 大批量檔案,分布式存放在大量伺服器上,以便於採取分而治之的方式對海量資料進行運算分析 重點概念 檔案切塊副本存放元資料 namenode提供元資料服務,元資料資訊要載入到記憶體...
Hadoop 簡單介紹
概述 hadoop是apache公司旗下乙個分布式基礎架構,主要解決大資料儲存和計算問題,是谷歌公司三篇 的具體實現 gfs hadoop,mapreduce mr,bigtable hbase 兩個版本 1.x版本的mapreduce既負責計算又負責資源的排程。2.x版本將mapreduce的資源...
Hadoop 簡單概念記錄
hadoop的核心,hdfs 與 mapreduce mapreduce 適合一次寫入 多次讀取資料的應用,關係型資料庫則更適合持續更新的資料。mapreduce 的高階查詢語言 如 phoenix pig hive mapreduce 的核心特徵,資料本地化 data locality 因此獲得良...