
hadoop2.xx 集群搭建:http://bigtrash.blog.51cto.com/8966424/1830423

創(chuàng)新互聯(lián)從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目做網(wǎng)站、成都做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元鎮(zhèn)賚做網(wǎng)站,已為上家服務(wù),為鎮(zhèn)賚各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575
1.HDFS(Hadoop Distributed File System):hadoop分布式文件系統(tǒng),由管理文件系統(tǒng)元數(shù)據(jù)(metadata)的NameNode和存儲實際數(shù)據(jù)的DataNode組成。
通過分布式的存儲機制支持線性增長的海量存儲能力
數(shù)據(jù)自動冗余,無須通過RAID進行備份
一次寫入,多次讀,不能修改,簡單一致,1.xx版不支持append功能
按照“數(shù)據(jù)就近”原則分配節(jié)點執(zhí)行
2.NameNode:管理hdfs的命名空間
保存metadata信息:
文件owership與permissions
文件包含那些Block
Block保存在哪個DataNode
NameNode的metadata信息存儲到磁盤中的fsp_w_picpath,在hdfs啟動后加載到內(nèi)存;
內(nèi)存中NameNode操作信息會保存到磁盤中的edits日志中。
NameNode啟動時的安全模式階段:
1)不產(chǎn)生數(shù)據(jù)寫
2)收集DataNode的報告,當(dāng)數(shù)據(jù)塊達到最小副本數(shù)以上,則視為安全;當(dāng)安全塊達到一定比例后,過若干時間退出安全模式
3)針對副本數(shù)不足的數(shù)據(jù)塊,自動復(fù)制使其達到最小副本數(shù)
3.DataNode:真正存儲數(shù)據(jù)的地方
以Block形式存儲,每個塊Block預(yù)設(shè)128M,比目前大多數(shù)文件系統(tǒng)的block塊大,但是物理存儲上不會占用這么多的空間
每個區(qū)塊至少分到三臺(默認(rèn))DataNode上,其副本數(shù)可以調(diào)整。其副本機制提高可靠度和讀取吞吐量
啟動DataNode線程時,遍歷本地文件系統(tǒng),產(chǎn)生一份hdfs數(shù)據(jù)塊和本地文件的對應(yīng)關(guān)系列表,并匯報給NameNode。
4.Secondary NameNode:
當(dāng)NameNode啟動時,需要合并硬盤上的fsp_w_picpath(HDFS的最新狀態(tài))和edits(fsp_w_picpath創(chuàng)建后的),需要消耗大量的啟動時間。這里的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中導(dǎo)入namenode
常用配置文件:
dfs.namenode.checkpoint.period #edits觸發(fā)一次合并的時間
fs.checkpoint.size #edits觸發(fā)一次合并的大小臨界值
dfs.namenode.checkpoint.dir #指定secondary namenode的保存路勁
dfs.namenode.checkpoint.edits.dir #指定secondary namenode的edits保存路徑
6.Backup Node:namenode的完全備份。除了提供Checkpoint功能,還復(fù)制master內(nèi)存中的Namespace到自己的內(nèi)存中。Backup Node不僅接收NameNode上的edits保存到磁盤,還應(yīng)用edits到自己的Namespace內(nèi)存復(fù)本,建立了Namespace的完全備份。
目前hdfs只支持一個backup node,使用了backup之后就不能使用checkpoing了
dfs.backup.address #backup node的位置
dfs.backup.http.address #backup node web界面地址
dfs.backup.address配置的節(jié)點上,運行bin/hdfs namenode -checkpoint
7. Block三副本放置策略:
副本1:client的節(jié)點上
副本2:不同機架的節(jié)點上
副本3:與副本2同一機架的另一個節(jié)點上
8.DataNode損壞處理機制:
1.從DataNode中讀取Block的時候,它會計算checksum
2.計算后的checksum與創(chuàng)建時值不一樣,說明該block已經(jīng)損壞
3.client會讀取其他DataNode上的block,NameNode標(biāo)記該塊已經(jīng)損壞,然后復(fù)制block達到預(yù)設(shè)的副本數(shù)(通常在文件創(chuàng)建后三周(默認(rèn))驗證其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:查看指定目錄下內(nèi)容
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:創(chuàng)建一個文件
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的基本統(tǒng)計數(shù)據(jù)
-safemode:安全模式
-finalizeUpgrade:移除集群最后一次升級前的備份
-refreshNodes:重新讀取hosts和exclude文件(dfs.hosts.exclude選項中指定),NameNode重新識別節(jié)點的改動
-printTopology:顯示集群的拓?fù)?/p>
-upgradeProgress status/details/force:顯示升級狀態(tài)/升級狀態(tài)的細(xì)節(jié)/強制升級操作
hadoop fsck: 文件管理
-move 破損的文件移至/lost+found目錄
-delete 刪除破損的文件
-openforwrite 打印正在打開寫操作的文件
-files 打印正在check的文件名
-blocks 打印block報告 (需要和-files參數(shù)一起使用)
-locations 打印每個block的位置信息(需要和-files參數(shù)一起使用)
-racks 打印位置信息的網(wǎng)絡(luò)拓?fù)鋱D (需要和-files參數(shù)一起使用)
start-balancer.sh -threshold:數(shù)據(jù)塊重新分布
可以通過Web服務(wù)查看集群中NameNode和DataNode的狀態(tài)。
http://master:50070/ :顯示集群當(dāng)前基本狀態(tài)