1、HDFS分散式檔案系統
阿新 • • 發佈:2018-11-09
1、HDFS分散式檔案系統
- 分散式儲存
- 分散式計算
2、hadoop
hadoop含有四個模組,分別是 common、 hdfs和yarn。
common
公共模組。
HDFS
hadoop distributed file system,hadoop分散式檔案系統,負責檔案的儲存管理。HDFS包括Namenode程序、DataNode程序和Secondary Namenode程序。
- NameNode
- DataNode
- Secondary Namenode
mapreduce
高度抽象的程式設計模型,包括對映和化簡兩個階段,是大資料計算技術的基礎。
yarn
資源排程框架,完成在job執行時,進行叢集整體資源的調配管理的。叢集中所有資源的配置都有ResourceManager完成。
HA
High availability,系統提供持續服務的能力,通常使用9的個數來衡量,例如5個9就是指99.999%。
high availability,高可用問題。
衡量系統持續提供服務的能力。通常使用幾個9衡量。
99.999% //摺合一年可以宕機5分鐘
99.9999% //摺合一年可以宕機5分鐘
hadoop部署模式
1.local 不會啟動任何程序。 2.pesudo 一個節點啟動所有程序(5). 3.full 在不同節點啟動不同程序。 4.HA模式 active(宕機) + standby(待命)
webui
http://namenode:50070/
http://2nn:50090/
http://datanode:50075/
hadoop
start-all.sh
start-dfs.sh
start-yarn.sh
hadoop-daemon.sh start namenode
hadoop-daemons.sh start datanode
副本的放置策略(273)
不同的hadoop版本,對副本的放置策略也不用。
機架感知
按照ip地址返回網路拓撲樹形結構/a/b/c/xxx | /a/b/c/xxx
網路拓撲距離
每個節點到達共同交換機的躍點數的總和。
zookeeper
協同服務,HA服務支援。 容災能力 : (n - 1) / 2 奇數.
namenode配置多個目錄
每個目錄下的內容相同,用於備份。
datanode配置多個目錄
每個目錄下的內容不同,用於擴容。
spark
hadoop
1.配額管理
1.1)空間配額
限制
1.2)目錄配額
限制目錄或檔案的個數
hdfs dfsadmin -setQuota 1 data2 //1保持目錄為空
hdfs dfsadmin -clsQuota data2 //1保持目錄為空
2.快照
瞬間照相(差異化儲存)。
3.OIV
offline image viewer,離線映象檢視器
fsimage(元資料)
4.OEV
offline edit viewer,離線編輯日誌檢視器。
edit存放的對dfs的操作過程。
映象控制(檢查點)
[hdfs-site.xml]
1.dfs.namenode.checkpoint.period=3600
兩次檢查點的時間間隔.
2.操作記錄數=1000,000
操作記錄超過該值,也會導致檢查點的建立。
dfs.namenode.checkpoint.txns
3.檢查週期(預設60)
dfs.namenode.checkpoint.check.period=60
4.設定檢查點檔案個數,預設是2
dfs.namenode.num.checkpoints.retained=2
5.手動融合映象檔案(需要安全模式)
hdfs dfsadmin -safemode enter
hdfs dfsadmin -saveNamespace
hdfs dfsadmin -safemode leave
6.從client可以下載映象檔案
//下載叢集的映象檔案到當前目錄下
hdfs dfsadmin -fetchImage .
metasave
儲存塊複製資訊等和datanode的心跳資訊到日誌檔案。
該日誌檔案在namenode的本地logs下。
hdfs dfsadmin -metasave 1.log
安全模式
hdfs dfsadmin -safemode get //檢視
hdfs dfsadmin -safemode enter //進入
hdfs dfsadmin -safemode leave //退出
hdfs dfsadmin -safemode wait //等待
快照
//啟用快照
hfds dfsadmin -allowSnapshot data
//禁用快照
hfds dfsadmin -disallowSnapshot data
//建立快照
hdfs dfs -createSnapshot data sp1
//刪除
hdfs dfs -deleteSnapshot data sp1
//重新命名
hdfs dfs -renameSnapshot data sp1 sp2
刪除目錄時,如果是可快照目錄並且有快照,無法刪除,需要
先刪除快照再刪除目錄。
舊節點退役(datanode下線)
1.描述
hdfs的datanode下線由dfs.hosts.exclude屬性控制,yarn的nodemanager下線
由yarn.resourcemanager.nodes.exclude-path控制。
2.dfs.hosts.exclude
配置datanode黑名單檔案路徑名,名單中的節點不允許連線到nn。如果該屬性不配置,
所有節點都可以連線。
3.dfs.hosts
配置datanode白名單檔案路徑名,名單中的節點允許連線到nn。如果該屬性不配置,
所有節點都可以連線。
4.規則
dfs.hosts dfs.host.exlucde result
---------------------------------------------------
NO NO Not
NO YES Not
YES NO Yes
YES YES Yes並將退役
5.退役實操
5.0)準備黑白名單
dfs_exclude.conf
dfs_include.conf
5.1)配置hdfs-site.xml的黑白名單屬性
<property>
<name>dfs.hosts</name>
<value>/soft/hadoop/etc/full/dfs_include.conf</value>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/soft/hadoop/etc/full/dfs_exclude.conf</value>
</property>
5.2)新增退役節點地址到黑名單,不要更新白名單
[dfs_exclude.conf]
s102
5.3)重新整理nn
hdfs dfsadmin -refreshNodes
5.4)進入webui,檢視退役的節點是否顯式為"退役中",開始複製資料塊到其他節點。
5.5)一旦複製完成,狀態顯式"Decommissioned",停止退役節點
5.6)從白名單中刪除退役節點
s103
s104
s106
5.7)再次重新整理節點
hdfs dfsadmin -refreshNodes
5.8)從slaves中刪除退役節點
s103
s104
s106
新節點上線(datanode)
1.準備環境
克隆新虛擬機器
配置ssh
刪除本地臨時目錄
2.實操過程
2.1)新增新地址到白名單
s103
s104
s106
s102
[刪除黑名單記錄]
2.2)重新整理名稱節點
hdfs dfsadmin -refreshNodes
2.3)更新slaves檔案
s103
s104
s106
s102
2.4)啟動新節點的datanode程序
[s102]
hadoop-daemon.sh start datanode
2.5)檢查webui
舊節點下線(nodemanager)
1.描述
hdfs的datanode下線由dfs.hosts.exclude屬性控制,yarn的nodemanager下線
由yarn.resourcemanager.nodes.exclude-path控制。
2.dfs.hosts.exclude
配置datanode黑名單檔案路徑名,名單中的節點不允許連線到nn。如果該屬性不配置,
所有節點都可以連線。
3.dfs.hosts
配置datanode白名單檔案路徑名,名單中的節點允許連線到nn。如果該屬性不配置,
所有節點都可以連線。
4.規則
dfs.hosts dfs.host.exlucde result
---------------------------------------------------
NO NO Not
NO YES Not
YES NO Yes
YES YES Yes並將退役
5.退役實操
5.0)準備黑白名單
yarn_exclude.conf
yarn_include.conf
5.1)配置yarn-site.xml的黑白名單屬性
<property>
<name>yarn.resourcemanager.nodes.include-path</name>
<value>/soft/hadoop/etc/full/yarn_include.conf</value>
</property>
<property>
<name>yarn.resourcemanager.nodes.exclude-path</name>
<value>/soft/hadoop/etc/full/yarn_exclude.conf</value>
</property>
5.2)新增退役節點地址到黑名單,不要更新白名單
[yarn_exclude.conf]
s102
5.3)重新整理nn
yarn rmadmin -refreshNodes
5.4)進入webui,檢視退役的節點是否顯式為"退役中",開始複製資料塊到其他節點。
http://rm:8088/
5.5)一旦複製完成,狀態顯式"Decommissioned",停止退役節點
5.6)從白名單中刪除退役節點
[yarn-include.conf]
s103
s104
s106
5.7)再次重新整理節點
yarn rmadmin -refreshNodes
5.8)從slaves中刪除退役節點
s103
s104
s106