內(nèi)容參考鏈接:慕課網(wǎng)--Hadoop大數(shù)據(jù)平臺架構(gòu)基礎篇
Google大數(shù)據(jù)技術(3大):MapReduce、BigTable、GFS
革命性的變化
- 成本降低,能用Pc 機,就不用大型機和高端存儲。
- 軟件容錯硬件故障視為常態(tài),通過軟件保證可靠性。
- 簡化并行分布式計算,無須控制節(jié)點同步和數(shù)據(jù)交換。
模仿Google大數(shù)據(jù)技術的開源實現(xiàn):Hadoop
Hadoop是什么:分布式存儲+分布式計算平臺
包含兩個核心組成:
(1)HDFS:分布式文件系統(tǒng),存儲海量的數(shù)據(jù)
(2)MapReduce****:并行處理框架,實現(xiàn)任務分解和調(diào)度
Hadoop可以用來做什么:搭建大型數(shù)據(jù)倉庫,PB級數(shù)據(jù)的存儲、處理、分析、統(tǒng)計等業(yè)務。
Hadoop優(yōu)勢:
- 高擴展
- 低成本
- 成熟的生態(tài)圈
Hadoop生態(tài)系統(tǒng):
1、Hive:sql->mapreduce
2、Hbase:存儲結(jié)構(gòu)化數(shù)據(jù)的分布式數(shù)據(jù)庫
與傳統(tǒng)的關系型數(shù)據(jù)庫不同,Hbase放棄事務特性,追求更高的擴展;
與hdfs不同:hbase提供數(shù)據(jù)的隨機讀寫和實時訪問,實現(xiàn)對表數(shù)據(jù)的讀寫功能;
3、Zookeeper:監(jiān)控Hadoop集群中每個節(jié)點的狀態(tài)
Hadoop安裝:
(1) 準備liunx環(huán)境
(2) 安裝JDK
(3) 配置hadoop
HDFS的體系架構(gòu):
HDFS基本概念:
-
塊
HDFS的文件被分成塊進行存儲;塊的默認大小為64MB;塊是文件存儲處理的邏輯單元 -
NameNode
是管理節(jié)點,存放文件元數(shù)據(jù)
(1) 文件與數(shù)據(jù)塊的映射表
(2) 數(shù)據(jù)塊與數(shù)據(jù)節(jié)點的映射表 -
DataNode
是工作節(jié)點,存放數(shù)據(jù)塊

HDFS中數(shù)據(jù)管理與容錯:
(1) 數(shù)據(jù)塊副本,每個數(shù)據(jù)塊3個副本,分布在兩個機架內(nèi)的三個節(jié)點

(2) 心跳檢測:DataNode定期向NameNode發(fā)送心跳信息

(3) 二級NameNode
定期同步元數(shù)據(jù)映像文件和修改日志,NameNode發(fā)生故障時,備胎轉(zhuǎn)正

HDTS讀取文件的流程:

HDTS寫入文件的流程:

HDFS的特點:
1、 數(shù)據(jù)冗余,硬件容錯
2、 流式的數(shù)據(jù)訪問,寫一次,讀多次
3、 存儲大文件
HDFS
適合數(shù)據(jù)批量讀取吞吐量高;
不適合交互式應用,比如數(shù)據(jù)庫,低延遲很難滿足
適合一次寫入多次讀取,順序讀寫
不支持多用戶并發(fā)寫相同文件
命令:
hadoop fs –ls /
把當前目錄下HDFS文件夾打印出來
hadoop fs –put tt.txt input/
把本地的一個文件tt.txt放到input目錄下
hadoop fs –mkdir input
建立input目錄
hadoop fs –get input/tt.txt tt1.txt
從hdfs下載文件到本地
hadoop dfsadmin –report
查看文件系統(tǒng)內(nèi)所有信息
MapReduce原理:
分而治之,一個大任務分成多個子任務(Map),并行執(zhí)行后,合并結(jié)果(reduce)

MapReduce的運行流程:

基本概念
- job &task
一個job會被拆分成多個task,task分為MapTask和ReduceTask - JobTracker
(1) 作業(yè)調(diào)度
(2) 分配任務,監(jiān)控任務執(zhí)行進度
(3) 監(jiān)控taskTracker的狀態(tài) - TaskTracker
(1) 執(zhí)行任務
(2) 向JobTracker匯報任務狀態(tài)
MapReduce作業(yè)執(zhí)行過程:

MapReduce的容錯機制:
(1) 重復執(zhí)行
重復執(zhí)行4次后,若還是失敗,則放棄
(2) 推測執(zhí)行
Map端執(zhí)行完成后,reduce端才會開始,比如某個taskTracker算的特別慢,會找一個跟這個taskTracker一樣任務的去執(zhí)行,保證整個任務不會因為某個tasktracker的故障而執(zhí)行效率低。
Mapreduce的應用案例:
(1)應用案例一:wordcount單詞計數(shù)
計算文件中出現(xiàn)每個單詞的頻數(shù)
輸入結(jié)果按照字母順序進行排序
(2)應用案例二:利用MR進行排