Hadoop的配置文件被拆分為core-site.xml hdfs-site.xml mapred-site.xml
其中的core-site.xml hdfs-site.xml
是站在HDFS角度上的配置文件;core-site.xml mapred-site.xml
是站在MapReduce角度上的配置文件拍霜。
HDFS 的設(shè)計前提與目標
1 硬件錯誤是常態(tài)而不是異常
2 流式數(shù)據(jù)訪問, 運行在HDFS的應用主要是以流式數(shù)據(jù)讀取為主惫企, 做批量處理而不是用戶交互處理。 因此HDFS更關(guān)注數(shù)據(jù)訪問的高吞吐量夕土。
3大規(guī)模數(shù)據(jù)集筒愚。HDFS的典型文件大小可能在GB甚至TB級別蚜退,因此HDFS支持大文件存儲,并提供整體上高的數(shù)據(jù)傳輸帶寬牡肉,能在一個集群里擴展數(shù)百個結(jié)點捧灰。
4簡單一致性模型⊥炒福 HDFS的應用程序要對文件實行一次性寫毛俏,多次讀的訪問模式。
5 移動計算比移動數(shù)據(jù)更劃算饲窿。對于大文件來說煌寇,如果在數(shù)據(jù)旁操作,那么效率會比較高逾雄》埽 特別是數(shù)據(jù)非常大的時候效果更加明顯,可以減少網(wǎng)絡(luò)的擁塞和提高系統(tǒng)的吞吐量嘲驾。這就意味著淌哟,把計算遷移到數(shù)據(jù)的附近更好。而不是把數(shù)據(jù)傳輸?shù)匠绦蜻\行的地方辽故。
HDFS是一個主從體系徒仓,集群擁有一個NameNode和一些DataNodes。NameNode管理文件系統(tǒng)的元數(shù)據(jù)誊垢。DataNode存儲實際的數(shù)據(jù)掉弛≈⒓客戶端通過與NameNode和DataNode交互訪問文件系統(tǒng)。聯(lián)系NameNode獲得文件的元數(shù)據(jù)殃饿, 真正的IO操作直接和DataNode來交互的谋作。
HDFS的文件通常是按照64MB切分成不同的數(shù)據(jù)塊(Block), 每個數(shù)據(jù)塊盡可能的分散存儲于不同的DataNode中
NameNode使用事務(wù)日志(EditLog)來記錄HDFS元數(shù)據(jù)的變化乎芳,使用映象文件(FsImage)存儲文件系統(tǒng)的命名空間遵蚜,包含文件的映射,屬性等奈惑。日志和映象文件都存儲在NameNode的本地文件系統(tǒng)中吭净。
NameNode啟動時,從磁盤中讀取映象文件和事務(wù)日志肴甸,把事務(wù)日志的事務(wù)都應用到內(nèi)存的映象文件中寂殉。然后將新的元數(shù)據(jù)刷新到本地磁盤的新的映象文件中,這樣可以截去舊的事務(wù)日志原在,這個過程稱為檢查點(Checkpoint)友扰。HDFS還設(shè)有SecondaryNameNode節(jié)點,它輔助NameNode處理映象文件和事務(wù)日志庶柿。NameNode啟動的時候合并映象文件和事務(wù)日志村怪,而Secondary NameNode會周期性的從NameNode上復制映象文件和事務(wù)日志到臨時目錄。合并生成新的文件再重新上傳到NameNode澳泵。NameNode更新映象文件并清理事務(wù)日志实愚。控制事務(wù)日志的大小兔辅。
HDFS可靠性措施
1 冗余備份
2 副本存放
3 心跳檢測
4 安全模式
5 數(shù)據(jù)完整性檢測
6 空間回收
7 元數(shù)據(jù)磁盤失效 映象文件和事務(wù)日志是HDFS的核心數(shù)據(jù)結(jié)構(gòu),如果這些文件損壞击喂,將導致HDFS不可用维苔。NameNode可以配置為支持維護映象文件和事務(wù)日志的多個副本,任何改動將同步到它們的副本中
8 快照//目前還不支持
HDFS下的文件操作
1列出HDFS文件
hdfs dfs -ls
要注意在HDFS中沒有當前工作目錄著一個概念懂昂,也沒有cd這個命令介时。
2 列出HDFS目錄下某個文檔中的文件
hdfs dfs -ls in
ls -文件命
瀏覽HDFS的某個文件
3 上傳文件到HDFS
hdfs dfs -put test1 test
將當前目錄下的test1文件上傳到HDFS并重命名為test
4將HDFS中的文件復制到本地系統(tǒng)中
hadoop dfs -get in getin
5 刪除,通過-rmr 文件
命令刪除HDFS下名為out的文檔
hadoop dfs -rmr out
6 查看HDFS下的某個文件
hadoop dfs cat in/*
7 使用幫助凌彬, -help commandName
來獲取幫助
管理與更新
hadoop dfsadmin -report
通過‘-report’命令查看HDFS的基本統(tǒng)計信息沸柔。
退出安全模式:NameNode在啟動時會自動進去安全模式,這是NameNode的一種狀態(tài)铲敛,在這個階段褐澎,文件系統(tǒng)不允許做任何修改。他的目的是在系統(tǒng)啟動時檢查各個DataNode上數(shù)據(jù)塊的有效性伐蒋。同時根據(jù)策略對數(shù)據(jù)塊進行必要的復制和刪除工三, 當數(shù)據(jù)塊最小百分比數(shù)滿足配置的最小副本數(shù)條件時迁酸, 會自動退出安全模式。
系統(tǒng)會顯示"Name node is in safe mode"俭正,等待17秒或者使用下面的命令退出安全模式
hadoop dfsadmin -safemode leave
進入安全模式的命令
hadoop dfsadmin -safemode enter
4 添加節(jié)點
向HDFS集群中 添加節(jié)點要和NameNode使用相同的配置奸鬓,一般是直接從NameNode 上面復制。然后修改$HADOOP_HOME/conf/master文件掸读,加入NameNode主機名串远。然后在NameNode上修改$HADOOP_HOME/conf/slaves文件,再建立到新節(jié)點的無密碼ssh登錄儿惫,最后運行啟動命令bin/start-all.sh
5 負載均衡
可以使用命令bin/start-balancer.sh
重新平衡DataNodeh上的數(shù)據(jù)塊的分布抑淫。