(分布式儲存系統hdfs【redundant reliable storage】+分布式計算框架mapreduce【data process】+資源管理系統yarn【cluste resource management】)
(1)分布式儲存系統hdfs(hadoop distributed file system)
基本原理:將檔案切分成等大的資料塊,儲存到多台機器上,將資料切分、容錯、負載均衡等功能透明化,可將hdfs看成是乙個容量巨大、具有高容錯性的磁碟。
應用場景:海量資料的可靠性儲存
hdfs優點:高容錯性(資料自動儲存多個副本,副本丟失後自動恢復);
適合批處理(移動計算而非資料、資料位置暴露給計算框架);
適合大資料處理(gb、tb、甚至pb級資料、百萬規模以上的檔案數量、10k+節點規模);
預設資料塊大小為64mb,可配置,如果檔案大小不到64mb,則單獨存成乙個block;
預設每個block有三個副本;
hdfs寫流程如下——
hdfs讀流程如下——
(2)資源管理系統yarn(yet another resource negotiator)
hadoop2.0新增系統,負責集群的資源管理和排程,使得多種計算框架執行在乙個集群中。
yarn基本架構如下——
yarn執行過程剖析如下——
(3)分布式計算框架mapreduce
具有良好的擴充套件性、高容錯性,適合pb級以上海量資料的
離線處理。
將計算過程分為兩個階段,map和reduce,map階段並行處理輸入資料,reduce階段對map結果進行彙總。運用shuffle連線map和reduce兩個階段(map task將資料寫到本地磁碟,reduce task從每個map task上讀取乙份資料)
mapreduce架構如下——
mapreduce執行流程如下——
(4)hadoop2.0生態系統
構建在hadoop上的資料倉儲,定義一種資料流語言——pig latin,通常用於離線分析。
(6)mahout(資料探勘庫)
基於hadoop的機器學習和資料探勘的分布式計算框架,實現了三大類演算法:推薦、聚類、分類。
(7)zookeeper(分布式協作服務)
解決分布式環境下資料管理問題——統一命名、狀態同步、集群管理、配置同步
(8)sqoop(資料同步工具)
連線hadoop與傳統資料庫之間的橋梁,支援多種資料庫,包括mysql、db2等;
插拔式,使用者可根據需要支援新的資料庫;
本質上是乙個mapreduce程式,充分利用mr分布式並行的特點與mr的容錯性特點;
(9)flume(日誌收集工具)
(10)oozie(作業流排程系統)
(1)hbase資料模型
table:表——類似於傳統資料庫中的表
column family:列簇
row key:行鍵——table的主鍵
timestamp:時間戳——每行資料都對應乙個時間戳
基於mr的資料倉儲,最初用於解決海量結構化的日誌資料統計問題,etl工具;構建在hadoop上的資料倉儲;
hive定義了一種類sql查詢語言——hql
通常用於進行離線資料處理(採用mapreduce)
多維度資料分析,
流式計算,是指被處理的資料像流水一樣不斷地流入系統,而系統需針對每條資料進行實時處理和計算,並永不停止(直到使用者顯式殺死程序);
————————乙個唯美食與遠方不可辜負的程式媛——————————————
怎樣進行大資料的入門級學習
學習大資料的話,可以給你乙個大綱,入門可以參考。推薦乙個大資料學習群 119599574每天晚上20 10都有一節 免費的 大資料直播課程,專注大資料分析方法,大資料程式設計,大資料倉儲,大資料案例,人工智慧,資料探勘都是純乾貨分享,一般的學習方法如下 1 linux命令基礎實戰 大資料架構體系結構...
怎樣進行大資料的入門級學習?
我認為從事data analytics或data science需要具備以下技能 programming hack 這個方面比較廣泛,並不是純粹指程式設計技能,要不然對於非cs的同學會覺得遙不可及。幾個點說一下 學習大資料的話,可以給你乙個大綱,入門可以參考。大資料的前景和意義也就不言而喻了,未來,...
怎樣進行大資料的入門級學習
一般的學習方法如下 1 linux命令基礎實戰 大資料架構體系結構及開源元件介紹 要掌握 linux基本操作 常見的linux命令需要會 2 hadoop基礎 hadoop基礎,對hadoop架構 核心元件hdfs yarn做了深入淺出的介紹,讓你快速把握hadoop的核心技術和工作原理,逐漸形成分...