Hadoop框架:HDFS简介与Shell管理命令
本文源碼:GitHub·點這里 || GitEE·點這里
一、HDFS基本概述
1、HDFS描述
大數據領域一直面對的兩大核心模塊:數據存儲,數據計算,HDFS作為最重要的大數據存儲技術,具有高度的容錯能力,穩定而且可靠。HDFS(Hadoop-Distributed-File-System),它是一個分布式文件系統,用于存儲文件,通過目錄樹來定位文件;設計初衷是管理數成百上千的服務器與磁盤,讓應用程序像使用普通文件系統一樣存儲大規模的文件數據,適合一次寫入,多次讀出的場景,且不支持文件的修改,適合做數據分析。
2、基礎架構
HDFS具有主/從體系結構,有兩個核心組件,NameNode與DataNode。
NameNode
負責文件系統的元數據(MetaData)管理,即文件路徑名、數據塊ID、存儲位置等信息,并配置副本策略,處理客戶端讀寫請求。
DataNode
執行文件數據的實際存儲和讀寫操作,每個DataNode存儲一部分文件數據塊,文件整體分布存儲在整個HDFS服務器集群中。
Client
客戶端,文件切分上傳HDFS的時候,Client將文件切分成一個一個的Block,然后進行上傳;從NameNode獲取文件的位置信息;與DataNode通信讀取或者寫入數據; Client通過一些命令來訪問或管理HDFS。
Secondary-NameNode
不是NameNode的熱備,但是分擔NameNode工作量,比如定期合并Fsimage和Edits,并推送給NameNode;在緊急情況下,可輔助恢復NameNode。
3、高容錯性
數據塊多份復制存儲的示意,文件/users/sameerp/data/part-0,復制備份設置為2,存儲的block-ids分別為1、3;文件/users/sameerp/data/part-1,復制備份設置為3,存儲的block-ids分別為2、4、5;任何單臺服務器宕機后,每個數據塊至少還存在一個備份服務存活,不會影響對文件的訪問,提高整體容錯性。
HDFS中的文件在物理上是分塊存儲(Block),塊的大小可以通過參數dfs.blocksize來配置,塊設置太小,會增加尋址時間;塊設置的太大,從磁盤傳輸數據的時間會很慢,HDFS塊的大小設置主要取決于磁盤傳輸速率。
二、基礎Shell命令
1、基礎命令
查看Hadoop下相關Shell操作命令。
[root@hop01 hadoop2.7]# bin/hadoop fs [root@hop01 hadoop2.7]# bin/hdfs dfsdfs是fs的實現類
2、查看命令描述
[root@hop01 hadoop2.7]# hadoop fs -help ls3、遞歸創建目錄
[root@hop01 hadoop2.7]# hadoop fs -mkdir -p /hopdir/myfile4、查看目錄
[root@hop01 hadoop2.7]# hadoop fs -ls / [root@hop01 hadoop2.7]# hadoop fs -ls /hopdir5、剪貼文件
hadoop fs -moveFromLocal /opt/hopfile/java.txt /hopdir/myfile ## 查看文件 hadoop fs -ls /hopdir/myfile6、查看文件內容
## 查看全部 hadoop fs -cat /hopdir/myfile/java.txt ## 查看末尾 hadoop fs -tail /hopdir/myfile/java.txt7、追加文件內容
hadoop fs -appendToFile /opt/hopfile/c++.txt /hopdir/myfile/java.txt8、拷貝文件
copyFromLocal命令和put命令相同
hadoop fs -copyFromLocal /opt/hopfile/c++.txt /hopdir9、HDFS文件拷貝到本地
hadoop fs -copyToLocal /hopdir/myfile/java.txt /opt/hopfile/10、HDFS內拷貝文件
hadoop fs -cp /hopdir/myfile/java.txt /hopdir11、HDFS內移動文件
hadoop fs -mv /hopdir/c++.txt /hopdir/myfile12、合并下載多個文件
基礎命令get和copyToLocal命令效果相同。
hadoop fs -getmerge /hopdir/myfile/* /opt/merge.txt13、刪除文件
hadoop fs -rm /hopdir/myfile/java.txt14、查看文件夾信息
hadoop fs -du -s -h /hopdir/myfile15、刪除文件夾
bin/hdfs dfs -rm -r /hopdir/file0703三、源代碼地址
GitHub·地址 https://github.com/cicadasmile/big-data-parent GitEE·地址 https://gitee.com/cicadasmile/big-data-parent推薦閱讀:編程體系整理
| 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·點這里 | ☆☆☆☆☆ |
總結
以上是生活随笔為你收集整理的Hadoop框架:HDFS简介与Shell管理命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在CISCO上做单臂路由
- 下一篇: Information Theory,