大資料 基礎知識 3

2021-10-09 12:23:06 字數 2231 閱讀 7501

小白學資料,只為記錄學習程序,對每個問題有新的理解會及時更正。

一、hive中常用的儲存格式

1.textfile儲存格式

textfile是按行儲存的方式,沒有進行壓縮,磁碟開銷大,並且上傳檔案到hdfs是通過put方式

2.orc儲存格式

orc是按行和按列結合的儲存格式,若有1w條資料,orc模式先把1w行的表拆分成100行乙個的小表,再對每個小表進行按列儲存。

create

table test_orc

(id int

,name string,

price float

)row format delimited fields

terminated

by'\t'

stored as orc

3.parquet儲存格式

支援較好的查詢,壓縮,但是寫入速度較慢

create

table test_orc

(id int

,name string,

price float

)row format delimited fields

terminated

by'\t'

stored as parquet

占用記憶體從大到小:textfile > parquet > orc

sql讀取速度: orc > parquet > textfile

二、mapreduce的執行流程

1.map端按照塊的大小對資料進行拆分,預設乙個塊是128m,設分成了n個塊

2.對每個拆分資料,啟動乙個maptask任務,每個maptask任務併發進行,互不干擾

3.每個maptask任務把資料處理成乙個個鍵值對,然後按照鍵值,把每個拆分後的資料分割槽,每個map有m個分割槽,這樣便形成了n組分區好的資料,每組裡面有m個分割槽

4.reduce階段,每個reduce去拉不同map產生的相同分割槽的資料,產生m個reduce

5.每個reduce啟動乙個reducetask任務去處理這些資料,各個reducetask也是併發進行,互不干擾

6.將每個reducetask產生的資料合併輸出

三、maptask任務詳解

1、read(讀取)階段:預設使用textinputformat,讀取切分好的資料,並將資料解析成鍵值對,輸入到map階段

2、map階段:根據業務邏輯重新計算鍵值對,形成新的鍵值對,並將資料輸出到環形緩衝區

3、collect(收集)階段:將輸入的鍵值對,執行分割槽排序,根據key,value和reduce的數量,來進行分割槽,再在區內排序,對key值按照字典順序排序,排序方法:快排

4、溢寫階段:當環形緩衝區被占用了80%,這些資料會被溢寫到磁碟中,不影響後續的資料進入環形緩衝區

5、combine(合併)階段:將多個溢位的檔案進行合併排序,排序方法:歸併排序

四、reducetask任務詳解

當所有的map任務結束後,開啟reduce任務

1、copy(拷貝)階段:reduce端主動去拷貝map端處理好的資料到reducetask本地磁碟,優先拷貝到記憶體中,當超出記憶體閾值,拷貝到磁碟中

2、merge(合併)階段:去記憶體和磁碟中的資料進行合併,防止記憶體使用過多,或者磁碟檔案過多

3、sort(排序)階段:將maptask按照key區域性排序好的資料,對key再進行全域性歸併排序,使得相同key的資料聚集在一起,把相同的key對應的資料,輸入給乙個reduce

4、reduce階段:根據業務邏輯,處理這些資料,並使用textoutputformat方法,,輸出資料

五、shuffle機制詳解

shuffle機制用於將maptask任務產生的檔案,傳輸到reducetask,介於map和reduce之間

1、collect(收集)階段:將maptask產生的資料輸出到乙個大小為100m的環形緩衝區

2、溢寫階段:當環形緩衝區占用超過80%時,處罰溢寫,在溢寫之前,會對資料進行分割槽排序

3、merge(合併)階段:合併多次溢寫出來的資料,採用歸併排序

4、壓縮階段:把每個maptask產生的資料進行壓縮

5、copy(拷貝)階段:reduce端拷貝壓縮的資料到記憶體中,如果記憶體不夠,拷貝到磁碟中

6、merge(合併)階段:把不同分割槽的資料進行合併,磁碟和磁碟合併,記憶體和記憶體合併

7、sort(排序)階段:在合併的同時進行排序操作,因為採用的是歸併排序,最終形成乙個分割槽對應一塊資料

大資料基礎知識

一種規模大到在獲取 儲存 管理 分析方面大大超出了傳統資料庫 軟體工具能力範圍的資料集合,具有海量的資料規模 快速的資料流轉 多樣的資料型別和價值密度低四大特徵。大資料需要特殊的技術,以有效地處理大量的容忍經過時間內的資料。適用於大資料的技術,包括大規模並行處理 mpp 資料庫 資料探勘 分布式檔案...

大資料基礎知識(待續)

最近要參與大資料治理專案,但大資料相關知識是零,因此從頭開始了解學習。本人學習目的是用於測試,因此jindui 第二步了解mr,mapreduce,mr對hadoop來說是至關重要的,關於這個概念的理解,可以參考這位知友的回答當然慕課網上也有,可以花五分鐘看一下,基於此,基本對hadoop有基本了解...

大資料相關基礎知識

apache hadoop專案包括以下四個主要模組 1 hadoop common hadoop的通用工具集 2 hadoop distributed file system hdfs 分布式檔案系統 3 hadoop yarn 任務排程 集群資源管理框架 4 hadoop mapreduce 基於...