HDFS:Hadoop Distributed File System 分佈式文件系統,其操作方式與linux相似,使用指令之前要在前面加上dfs。(注意:hdfs沒有當前目錄的概念,不能使用cd命令)
常規操作命令:
dfs -put ../hello hello
dfs -ls
dfs -get hello ./mypath/hello
dfs -rmr hello
dfs -cat part-r-00000 //打開文件,查看內容
dfsadmin -report //hdfs的信息情況
客戶端如何從HDFS上獲取文件呢?以獲取文件名爲“hello”的文件爲例:
客戶端向nameNode發起請求,詢問“hello”文件的位置信息。
namenode將查詢出的位置信息列表清單返回給客戶端。
客戶端根據清單去連接目標dataNode,獲取文件、數據。
有趣的是:HDFS集羣的出錯是常態的,也是正常的。因此,HDFS會做冗餘數據,冗餘份數可以在hdfs-site.xml文件中設置複製因子來指定副本數量,一般3份。
HDFS在複製冗餘因子時,使用到了機架感知和心跳機制:
機架感知:以3份副本爲例:一般在本機架存放一個副本,其他機架存放一個副本。
心跳機制:nameNode與dataNode之間週期性的接收心跳信號,對於沒有按時發送心跳的dataNode會被標記爲宕機,踢出Hadoop集羣。hadoop會在系統不太繁忙時,重新複製缺少的副本。
回收站
當刪除一個文件時,物理上並沒有被真正刪除,這個文件塊是可以被快速恢復的。回收站的文件經過一段時間後,文件會被永久刪除。這個時間段是可配置的。注意:回收站使用前需要先打開。