Hadoop框架:HDFS简介与Shell管理命令
本文源碼:GitHub·點(diǎn)這里 || GitEE·點(diǎn)這里
一、HDFS基本概述
1、HDFS描述
大數(shù)據(jù)領(lǐng)域一直面對的兩大核心模塊:數(shù)據(jù)存儲,數(shù)據(jù)計算,HDFS作為最重要的大數(shù)據(jù)存儲技術(shù),具有高度的容錯能力,穩(wěn)定而且可靠。HDFS(Hadoop-Distributed-File-System),它是一個分布式文件系統(tǒng),用于存儲文件,通過目錄樹來定位文件;設(shè)計初衷是管理數(shù)成百上千的服務(wù)器與磁盤,讓應(yīng)用程序像使用普通文件系統(tǒng)一樣存儲大規(guī)模的文件數(shù)據(jù),適合一次寫入,多次讀出的場景,且不支持文件的修改,適合做數(shù)據(jù)分析。
2、基礎(chǔ)架構(gòu)
HDFS具有主/從體系結(jié)構(gòu),有兩個核心組件,NameNode與DataNode。
NameNode
負(fù)責(zé)文件系統(tǒng)的元數(shù)據(jù)(MetaData)管理,即文件路徑名、數(shù)據(jù)塊ID、存儲位置等信息,并配置副本策略,處理客戶端讀寫請求。
DataNode
執(zhí)行文件數(shù)據(jù)的實(shí)際存儲和讀寫操作,每個DataNode存儲一部分文件數(shù)據(jù)塊,文件整體分布存儲在整個HDFS服務(wù)器集群中。
Client
客戶端,文件切分上傳HDFS的時候,Client將文件切分成一個一個的Block,然后進(jìn)行上傳;從NameNode獲取文件的位置信息;與DataNode通信讀取或者寫入數(shù)據(jù); Client通過一些命令來訪問或管理HDFS。
Secondary-NameNode
不是NameNode的熱備,但是分擔(dān)NameNode工作量,比如定期合并Fsimage和Edits,并推送給NameNode;在緊急情況下,可輔助恢復(fù)NameNode。
3、高容錯性
數(shù)據(jù)塊多份復(fù)制存儲的示意,文件/users/sameerp/data/part-0,復(fù)制備份設(shè)置為2,存儲的block-ids分別為1、3;文件/users/sameerp/data/part-1,復(fù)制備份設(shè)置為3,存儲的block-ids分別為2、4、5;任何單臺服務(wù)器宕機(jī)后,每個數(shù)據(jù)塊至少還存在一個備份服務(wù)存活,不會影響對文件的訪問,提高整體容錯性。
HDFS中的文件在物理上是分塊存儲(Block),塊的大小可以通過參數(shù)dfs.blocksize來配置,塊設(shè)置太小,會增加尋址時間;塊設(shè)置的太大,從磁盤傳輸數(shù)據(jù)的時間會很慢,HDFS塊的大小設(shè)置主要取決于磁盤傳輸速率。
二、基礎(chǔ)Shell命令
1、基礎(chǔ)命令
查看Hadoop下相關(guān)Shell操作命令。
[root@hop01 hadoop2.7]# bin/hadoop fs [root@hop01 hadoop2.7]# bin/hdfs dfsdfs是fs的實(shí)現(xiàn)類
2、查看命令描述
[root@hop01 hadoop2.7]# hadoop fs -help ls3、遞歸創(chuàng)建目錄
[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、查看文件內(nèi)容
## 查看全部 hadoop fs -cat /hopdir/myfile/java.txt ## 查看末尾 hadoop fs -tail /hopdir/myfile/java.txt7、追加文件內(nèi)容
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內(nèi)拷貝文件
hadoop fs -cp /hopdir/myfile/java.txt /hopdir11、HDFS內(nèi)移動文件
hadoop fs -mv /hopdir/c++.txt /hopdir/myfile12、合并下載多個文件
基礎(chǔ)命令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描述設(shè)計模式,算法,數(shù)據(jù)結(jié)構(gòu) | GitHub·點(diǎn)這里 | GitEE·點(diǎn)這里 | ☆☆☆☆☆ |
| 02 | Java基礎(chǔ)、并發(fā)、面向?qū)ο蟆eb開發(fā) | GitHub·點(diǎn)這里 | GitEE·點(diǎn)這里 | ☆☆☆☆ |
| 03 | SpringCloud微服務(wù)基礎(chǔ)組件案例詳解 | GitHub·點(diǎn)這里 | GitEE·點(diǎn)這里 | ☆☆☆ |
| 04 | SpringCloud微服務(wù)架構(gòu)實(shí)戰(zhàn)綜合案例 | GitHub·點(diǎn)這里 | GitEE·點(diǎn)這里 | ☆☆☆☆☆ |
| 05 | SpringBoot框架基礎(chǔ)應(yīng)用入門到進(jìn)階 | GitHub·點(diǎn)這里 | GitEE·點(diǎn)這里 | ☆☆☆☆ |
| 06 | SpringBoot框架整合開發(fā)常用中間件 | GitHub·點(diǎn)這里 | GitEE·點(diǎn)這里 | ☆☆☆☆☆ |
| 07 | 數(shù)據(jù)管理、分布式、架構(gòu)設(shè)計基礎(chǔ)案例 | GitHub·點(diǎn)這里 | GitEE·點(diǎn)這里 | ☆☆☆☆☆ |
| 08 | 大數(shù)據(jù)系列、存儲、組件、計算等框架 | GitHub·點(diǎn)這里 | GitEE·點(diǎn)這里 | ☆☆☆☆☆ |
總結(jié)
以上是生活随笔為你收集整理的Hadoop框架:HDFS简介与Shell管理命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在CISCO上做单臂路由
- 下一篇: Information Theory,