您好,登錄后才能下訂單哦!
hadoop2.xx 集群搭建:http://bigtrash.blog.51cto.com/8966424/1830423
1.HDFS(Hadoop Distributed File System):hadoop分布式文件系統,由管理文件系統元數據(metadata)的NameNode和存儲實際數據的DataNode組成。
通過分布式的存儲機制支持線性增長的海量存儲能力
數據自動冗余,無須通過RAID進行備份
一次寫入,多次讀,不能修改,簡單一致,1.xx版不支持append功能
按照“數據就近”原則分配節點執行
2.NameNode:管理hdfs的命名空間
保存metadata信息:
文件owership與permissions
文件包含那些Block
Block保存在哪個DataNode
NameNode的metadata信息存儲到磁盤中的fsp_w_picpath,在hdfs啟動后加載到內存;
內存中NameNode操作信息會保存到磁盤中的edits日志中。
NameNode啟動時的安全模式階段:
1)不產生數據寫
2)收集DataNode的報告,當數據塊達到最小副本數以上,則視為安全;當安全塊達到一定比例后,過若干時間退出安全模式
3)針對副本數不足的數據塊,自動復制使其達到最小副本數
3.DataNode:真正存儲數據的地方
以Block形式存儲,每個塊Block預設128M,比目前大多數文件系統的block塊大,但是物理存儲上不會占用這么多的空間
每個區塊至少分到三臺(默認)DataNode上,其副本數可以調整。其副本機制提高可靠度和讀取吞吐量
啟動DataNode線程時,遍歷本地文件系統,產生一份hdfs數據塊和本地文件的對應關系列表,并匯報給NameNode。
4.Secondary NameNode:
當NameNode啟動時,需要合并硬盤上的fsp_w_picpath(HDFS的最新狀態)和edits(fsp_w_picpath創建后的),需要消耗大量的啟動時間。這里的Secondary NameNode定時去下載namenode的fsp_w_picpath文件和edits文件進行合并,同時namenode上啟用新的edits,然后再將合并后的fsp_w_picpath上傳覆蓋namenode,并開啟一個新的edits日志,減少了hdfs啟動啟動時間。
5.Checkpoint node:可能是為了避免名字上的混淆,1.0.4 版本后建議使用CheckPoint Node去代替Secondary NameNode,作用及配置基本一樣。
使用bin/hdfs namenode -checkpoint去啟動
啟動NameNode時-importCheckpoint,可以從checkpioint中導入namenode
常用配置文件:
dfs.namenode.checkpoint.period #edits觸發一次合并的時間
fs.checkpoint.size #edits觸發一次合并的大小臨界值
dfs.namenode.checkpoint.dir #指定secondary namenode的保存路勁
dfs.namenode.checkpoint.edits.dir #指定secondary namenode的edits保存路徑
6.Backup Node:namenode的完全備份。除了提供Checkpoint功能,還復制master內存中的Namespace到自己的內存中。Backup Node不僅接收NameNode上的edits保存到磁盤,還應用edits到自己的Namespace內存復本,建立了Namespace的完全備份。
目前hdfs只支持一個backup node,使用了backup之后就不能使用checkpoing了
dfs.backup.address #backup node的位置
dfs.backup.http.address #backup node web界面地址
dfs.backup.address配置的節點上,運行bin/hdfs namenode -checkpoint
7. Block三副本放置策略:
副本1:client的節點上
副本2:不同機架的節點上
副本3:與副本2同一機架的另一個節點上
8.DataNode損壞處理機制:
1.從DataNode中讀取Block的時候,它會計算checksum
2.計算后的checksum與創建時值不一樣,說明該block已經損壞
3.client會讀取其他DataNode上的block,NameNode標記該塊已經損壞,然后復制block達到預設的副本數(通常在文件創建后三周(默認)驗證其checksum)
9.HDFS的訪問方式:
HDFS SHELL 命令
HDFS JAVA API
HDFS REST API
HDFS FUSE
HDFS lib hdfs:C/C++訪問接口
thrift
。。。
10.Hadoop與HDFS的交互類shell:hadoop fs –help命令
hadoop fs –ls PATH:查看指定目錄下內容
hadoop fs –cat PATH/FILE:查看FILE
hadoop fs –put LOCAL_PATH/FILE HADOOP_PATH:將本地文件存儲至hadoop
hadoop fs –put LOCAL_PATH HADOOP_PATH:將本地文件夾存儲至hadoop
hadoop fs –rm PATH/FILE:刪除FILE
hadoop fs –rmr PATH:刪除PATH下所有文件
hadoop fs –mkdir PATH: 新建目錄
hadoop fs -touchz PATH/FILE:創建一個文件
hadoop fs –mv PATH/OLD_FILE PATH/NEW_FILE: 文件重命名
......
11.hdfs管理
hadoop-deamon.sh start namenode #啟動namenode
hadoop-deamon.sh start datanode #啟動datanode
hdfs dfsadmin -help:獲取一些hdfs管理的操作
-report:報告HDFS的基本統計數據
-safemode:安全模式
-finalizeUpgrade:移除集群最后一次升級前的備份
-refreshNodes:重新讀取hosts和exclude文件(dfs.hosts.exclude選項中指定),NameNode重新識別節點的改動
-printTopology:顯示集群的拓撲
-upgradeProgress status/details/force:顯示升級狀態/升級狀態的細節/強制升級操作
hadoop fsck: 文件管理
<path> 檢查這個目錄中的文件是否完整
-move 破損的文件移至/lost+found目錄
-delete 刪除破損的文件
-openforwrite 打印正在打開寫操作的文件
-files 打印正在check的文件名
-blocks 打印block報告 (需要和-files參數一起使用)
-locations 打印每個block的位置信息(需要和-files參數一起使用)
-racks 打印位置信息的網絡拓撲圖 (需要和-files參數一起使用)
start-balancer.sh -threshold:數據塊重新分布
可以通過Web服務查看集群中NameNode和DataNode的狀態。
http://master:50070/ :顯示集群當前基本狀態
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。