大數據實踐課——HDFS分佈式文件系統
- 分佈式存儲
Master主節點:
存放文件系統的目錄樹狀結構,
slave節點:
放真實的數據
block塊:
版本1:64m
版本2:128m
replication:
副本機制,3個
namespace:
命名空間管理,管理着整個服務器集羣的所有文件。
傳統解決方案:
移動數據:將數據向計算移動
移動計算:將計算向數據移動
1、任務分解
2、結果彙總
hadoop是一個開源的、可靠的、可擴展的分佈式並行計算框架。
GFS MapReduce BigTable
HDFS(分佈式文件系統)
角色:
1.NameNode:文件系統大管家,監管着文件系統的目錄和結構,由他維護文件系統的數據元素(文件名、block location)
2.DataNode:存放真實數據(block數據)
3.client:客戶端
MapReduce(計算框架)
HBase 數據庫,基於列式存儲的數據庫
-
分佈式計算
-
Hadoop(一種生態/平臺)介紹
Hadoop是一個開源的、可靠的、可擴展的分佈式並行計算框架
-可靠的:主要是副本機制…
-可擴展的
-分佈式並行計算框架
分佈式文件系統HDFS+計算框架MapReduce
Hadoop不是數據庫,Hbase纔是數據庫(基於列式存儲的數據庫)底層語言:Java
面向大數據處理
大數據:目前的軟硬件環境無法處理的數據,只能依靠特殊方式來處理
離線分析:並不是在生產系統上直接對數據進行處理,需要把生產環境的數據導入到另外的環境中(數據倉庫),並不是實時分析
Hadoop使用行業:電子商務、京東、淘寶 -
Hadoop架構
·hive是基於Hadoop的一個工具,提供完整的sql查詢功能,可以將sql語句轉換爲MapReduce任務進行處理。
·Hbase是一個開源的,基於列存儲的分佈式數據庫
·HDFS是一個分佈式文件系統。有着高容錯性特點,並且設計用來部署在低廉的硬件上,適合那些有着超大數據集的應用程序。
·MapReduce是一種編程模式,用於大規模數據集(大於1TB)的並行運算。
HDFS(分佈式文件系統)角色:
1.NameNode:文件系統大管家,監管着文件系統的目錄和結構,由他維護文件系統的數據元素(文件名、block location)
2.DataNode:存放真實數據(block數據)
3.client:客戶端
- Hadoop的架構1.x
Client:
HDFS:
NameNode:
DataNode:
MapReduce中兩個核心進程:(JobTacker TaskTacker只存在於1.x版本,2.x版本中爲yarn)
JobTacker:只有一個,主節點,實現作業調度和監視每個節點上的作業執行情況
TaskTacker:從節點,作業執行情況主動向JobTacker進行彙報
Java基礎裏的核心知識點:
1、面向對象
2、反射機制
3、IO socket TCP/UDP
4、Java設計模式
單例
工廠(實例、靜態)
觀察者
代理(靜態、動態)
基於接口的代理:jdk
基於類的代理:cglib
Hadoop的核心設計
兩大核心
1、MapReduce
Map:任務分解
Reduce:結果的彙總
2、HDFS
NameNode:文件管理
DataNode:文件存儲
Client:文件獲取
元數據:描述數據的數據
例如:表明,字段、數據類型
真實數據:實際數據
HDFS:
提供分佈式存儲機制,提供可線性增長的海量存儲能力
自動數據冗餘,無需使用Raid,無需另行備份
爲進一步分析計算提供數據基礎
架構模型:
文件元數據MetaData,文件數據:
元數據
數據本身
(主)NameNode節點保存文件元數據:單節點
(從)DataNode節點保存文件Block數據:多節點
DATaNode與NameNode保持心跳,提交Block列表
HdfsClient與NameNode交互元數據信息
HdfsClient與DataNode交互文件Block數據
命令:
jps -查看當前開啓的進程
start-dfs.sh -啓動Hadoop重點hdfs進程
stop-dfs.sh -關閉hdfs進程
//SecondaryNameNode並不是NameNode的副本
內存受限問題解決辦法:
Fell(聯邦機制)
NameNode單點故障問題解決辦法:
HA模式(高可用模式)