本文源碼:GitHub·點這裏 || GitEE·點這裏java
大數據領域一直面對的兩大核心模塊:數據存儲,數據計算,HDFS做爲最重要的大數據存儲技術,具備高度的容錯能力,穩定並且可靠。HDFS(Hadoop-Distributed-File-System),它是一個分佈式文件系統,用於存儲文件,經過目錄樹來定位文件;設計初衷是管理數成百上千的服務器與磁盤,讓應用程序像使用普通文件系統同樣存儲大規模的文件數據,適合一次寫入,屢次讀出的場景,且不支持文件的修改,適合作數據分析。c++
HDFS具備主/從體系結構,有兩個核心組件,NameNode與DataNode。git
NameNodegithub
負責文件系統的元數據(MetaData)管理,即文件路徑名、數據塊ID、存儲位置等信息,並配置副本策略,處理客戶端讀寫請求。算法
DataNodespring
執行文件數據的實際存儲和讀寫操做,每一個DataNode存儲一部分文件數據塊,文件總體分佈存儲在整個HDFS服務器集羣中。shell
Client編程
客戶端,文件切分上傳HDFS的時候,Client將文件切分紅一個一個的Block,而後進行上傳;從NameNode獲取文件的位置信息;與DataNode通訊讀取或者寫入數據; Client經過一些命令來訪問或管理HDFS。設計模式
Secondary-NameNode服務器
不是NameNode的熱備,可是分擔NameNode工做量,好比按期合併Fsimage和Edits,並推送給NameNode;在緊急狀況下,可輔助恢復NameNode。
數據塊多份複製存儲的示意,文件/users/sameerp/data/part-0,複製備份設置爲2,存儲的block-ids分別爲一、3;文件/users/sameerp/data/part-1,複製備份設置爲3,存儲的block-ids分別爲二、四、5;任何單臺服務器宕機後,每一個數據塊至少還存在一個備份服務存活,不會影響對文件的訪問,提升總體容錯性。
HDFS中的文件在物理上是分塊存儲(Block),塊的大小能夠經過參數dfs.blocksize來配置,塊設置過小,會增長尋址時間;塊設置的太大,從磁盤傳輸數據的時間會很慢,HDFS塊的大小設置主要取決於磁盤傳輸速率。
一、基礎命令
查看Hadoop下相關Shell操做命令。
[root@hop01 hadoop2.7]# bin/hadoop fs [root@hop01 hadoop2.7]# bin/hdfs dfs
dfs是fs的實現類
二、查看命令描述
[root@hop01 hadoop2.7]# hadoop fs -help ls
三、遞歸建立目錄
[root@hop01 hadoop2.7]# hadoop fs -mkdir -p /hopdir/myfile
四、查看目錄
[root@hop01 hadoop2.7]# hadoop fs -ls / [root@hop01 hadoop2.7]# hadoop fs -ls /hopdir
五、剪貼文件
hadoop fs -moveFromLocal /opt/hopfile/java.txt /hopdir/myfile ## 查看文件 hadoop fs -ls /hopdir/myfile
六、查看文件內容
## 查看所有 hadoop fs -cat /hopdir/myfile/java.txt ## 查看末尾 hadoop fs -tail /hopdir/myfile/java.txt
七、追加文件內容
hadoop fs -appendToFile /opt/hopfile/c++.txt /hopdir/myfile/java.txt
八、拷貝文件
copyFromLocal命令和put命令相同
hadoop fs -copyFromLocal /opt/hopfile/c++.txt /hopdir
九、HDFS文件拷貝到本地
hadoop fs -copyToLocal /hopdir/myfile/java.txt /opt/hopfile/
十、HDFS內拷貝文件
hadoop fs -cp /hopdir/myfile/java.txt /hopdir
十一、HDFS內移動文件
hadoop fs -mv /hopdir/c++.txt /hopdir/myfile
十二、合併下載多個文件
基礎命令get和copyToLocal命令效果相同。
hadoop fs -getmerge /hopdir/myfile/* /opt/merge.txt
1三、刪除文件
hadoop fs -rm /hopdir/myfile/java.txt
1四、查看文件夾信息
hadoop fs -du -s -h /hopdir/myfile
1五、刪除文件夾
bin/hdfs dfs -rm -r /hopdir/file0703
GitHub·地址 https://github.com/cicadasmile/big-data-parent GitEE·地址 https://gitee.com/cicadasmile/big-data-parent
推薦閱讀:編程體系整理
序號 | 項目名稱 | GitHub地址 | GitEE地址 | 推薦指數 |
---|---|---|---|---|
01 | Java描述設計模式,算法,數據結構 | GitHub·點這裏 | GitEE·點這裏 | ☆☆☆☆☆ |
02 | Java基礎、併發、面向對象、Web開發 | GitHub·點這裏 | GitEE·點這裏 | ☆☆☆☆ |
03 | SpringCloud微服務基礎組件案例詳解 | GitHub·點這裏 | GitEE·點這裏 | ☆☆☆ |
04 | SpringCloud微服務架構實戰綜合案例 | GitHub·點這裏 | GitEE·點這裏 | ☆☆☆☆☆ |
05 | SpringBoot框架基礎應用入門到進階 | GitHub·點這裏 | GitEE·點這裏 | ☆☆☆☆ |
06 | SpringBoot框架整合開發經常使用中間件 | GitHub·點這裏 | GitEE·點這裏 | ☆☆☆☆☆ |
07 | 數據管理、分佈式、架構設計基礎案例 | GitHub·點這裏 | GitEE·點這裏 | ☆☆☆☆☆ |
08 | 大數據系列、存儲、組件、計算等框架 | GitHub·點這裏 | GitEE·點這裏 | ☆☆☆☆☆ |