hadoop - HDFS

你是無意穿堂風(fēng) 偏偏孤倨引山洪

寫在之前

首先我們用 Xshell 連接上云服務(wù)器:

ssh bigdata@47.94.18.202
Xshell5 連接云服務(wù)器

密碼看群里

連接成功:

連接成功

連接成功后我們可以查看下java 和 hadoop信息:
(感謝老師幫我們配的環(huán)境)

查看java 和 hadoop信息

目錄

1 在介紹HDFS之前要說的

2 為什么我們需要HDFS

3 HDFS的概念

4 HDFS關(guān)鍵運行機制

5 如何使用HDFS


1 介紹HDFS之前

背景

背景
Hadoop和HDFS的關(guān)系
關(guān)系1
關(guān)系2

2 為什么我們需要HDFS

1

分布化的文件系統(tǒng)會因為分布后的結(jié)構(gòu)不完整盼樟,導(dǎo)致系統(tǒng)復(fù)雜度加大熬北,并且引入的網(wǎng)絡(luò)編程,同樣導(dǎo)致分布式文件系統(tǒng)更加復(fù)雜帮毁。

問題

大數(shù)據(jù)不需要搬來搬去:

解決

DFS是用流處理方式處理文件依溯,每個文件在系統(tǒng)里都能找到它的本地化映像耿眉,所以對于用戶來說菌瘪,別管文件是什么格式的蚁袭,也不用在意被分到哪里征懈,只管從DFS里取出就可以了。

DFS

一般來說撕阎,文件處理過程中無法保證文件安全順利到達(dá)受裹,傳統(tǒng)文件系統(tǒng)是使用本地校驗方式保證數(shù)據(jù)完整,這就引出了一個問題:DFS存儲文件被散后虏束,難道需要特意安排每個分片文件的校驗碼棉饶?

HDFS的回答是NO!
分片數(shù)量和大小是不確定的镇匀,海量的數(shù)據(jù)本來就需要海量的校驗過程照藻,分片后加入每個分片的跟蹤校驗完全是在數(shù)滿天恒星的同時數(shù)了他們的行星稼跳。

HDFS解決方案是:分片冗余摹菠、本地校驗
(把一個大文件打散 把文件存多份 其中一個損壞 可以用其他恢復(fù))

解決方案

直觀上看涝缝,我們是給文件系統(tǒng)添堵茄蚯,文件越來越多
實際上媒区,DFS更加喜歡這樣的架構(gòu)逛尚。

結(jié)構(gòu)

數(shù)據(jù)冗余式存儲茄螃,直接將多份分片文件交給分片后的存儲服務(wù)器去校驗盯桦。

校驗

冗余后的分片文件還有個額外功能雪猪,只要冗余的分片文件中有一份是完整的栏尚,經(jīng)過多次協(xié)同調(diào)整后,其他分片文件也將完整只恨。

協(xié)同校驗

分布后的文件系統(tǒng)有個無法回避的問題译仗,因為文件不在一個磁盤導(dǎo)致讀取訪問操作的延時抬虽,這個是HDFS現(xiàn)在遇到的主要問題。

現(xiàn)階段纵菌,HDFS的配置是按照高數(shù)據(jù)吞吐量優(yōu)化的阐污,可能會以高時間延時為代價的;同時咱圆,我們應(yīng)該注意:按照DFS擅長的方式去使用數(shù)據(jù)(如:MapReduce)


3 HDFS的概念

通過上一節(jié)信息笛辟,我們了解了HDFS就是下面這個抽象圖的具體實現(xiàn):

1
元數(shù)據(jù)

元數(shù)據(jù)是用于描述要素、數(shù)據(jù)集或數(shù)據(jù)集系列的內(nèi)容闷堡、覆蓋范圍隘膘、質(zhì)量、管理方式杠览、數(shù)據(jù)的所有者弯菊、數(shù)據(jù)的提供方式等有關(guān)的信息。通俗的講踱阿,是描述數(shù)據(jù)的數(shù)據(jù)管钳。

HDFS就是將巨大的數(shù)據(jù)變成大量數(shù)據(jù)和元數(shù)據(jù)

1

整個海量數(shù)據(jù)分為數(shù)據(jù)塊并 標(biāo)識后 存到磁盤中

磁盤存儲文件時,是按照數(shù)據(jù)塊來存儲的软舌,也就是說才漆,數(shù)據(jù)塊是磁盤的讀/寫最小單位。數(shù)據(jù)塊也稱磁盤塊佛点。

每個塊作為一個獨立的存儲單元

構(gòu)建于單個磁盤上的文件系統(tǒng)是通過塊來管理文件系統(tǒng)醇滥,文件系統(tǒng)塊的大小是扇區(qū)的整數(shù)倍。特別的超营,單個磁盤文件系統(tǒng)鸳玩,小于扇區(qū)的文件會占用整個扇區(qū)。

1

與其他文件系統(tǒng)不一樣演闭,HDFS中每個小于塊大小的文件不會占據(jù)整個塊的空間不跟。

來看一個很重要的問題:
為什么需要64MB或者更大的一個塊?

2

如果每個要傳輸?shù)膲K設(shè)置得足夠大米碰,那么從磁盤傳輸數(shù)據(jù)的時間可以明顯大于定位這個塊開始位置的時間窝革。

3
4

這樣的設(shè)定使存儲一個文件主要時間就花在傳輸過程中,傳輸一個由多個Block組成的文件的時間就取決于磁盤傳輸速率吕座,這是HSDF的核心技術(shù)虐译。

HDFS提供給MapReduce數(shù)據(jù)服務(wù),而一般來說MapReduce的Map任務(wù)通常一次處理一個塊中的數(shù)據(jù)吴趴,如果任務(wù)數(shù)太少(少于集群中節(jié)點的數(shù)量)菱蔬,就沒有發(fā)揮多節(jié)點的優(yōu)勢,甚至作業(yè)的運行速度就會和單節(jié)點一樣。

分布式的文件抽象帶來的優(yōu)勢是:

  • 一個文件可以大于磁盤大小
  • 一個文件不用全在一個磁盤上
  • 簡化了存儲子系統(tǒng)的設(shè)計

其實拴泌,HDFS對與用戶來說,可以直接看成是一個巨大的硬盤:

硬盤

所以惊橱,HDFS和文件系統(tǒng)相似蚪腐,用fsck指令可以顯示塊信息。
hadoop fsck / -files -blocks

hadoop fsck / -files -blocks

常用命令

ls
hadoop fs -ls /user
1
hadoop fs -ls /user/hdfs/hk
1
hadoop fs -ls -R /user/hdfs/
1
mkdir
hadoop fs -mkdir /user/hdfs/hk/test
mkdir
copyFromLocal/put
hadoop fs -put test /user/hdfs/hk
hadoop fs -copyFromLocal test2 /user/hdfs/hk
QQ圖片20170820205408.png
cat
hadoop fs -cat /user/hdfs/hk/xingbie
cat
tail
1
2

copyToLocal/get
hadoop fs -get /user/hdfs/hk/test
hadoop fs -copyToLocal /user/hdfs/hk/test
1
2

cp

cp

mv

1

du

使用方法:hadoop fs -du URI [URI …]
顯示目錄中所有文件的大小税朴,或者當(dāng)只指定一個文件時回季,顯示此文件的大小

du

dus

使用方法:hadoop fs -dus <args>
顯示文件的大小

dus

stat

使用方法:hadoop fs -stat URI [URI …]
返回指定路徑的統(tǒng)計信息。
示例:
hadoop fs -stat path

stat

test

使用方法:hadoop fs -test -[ezd] URI
選項:
-e 檢查文件是否存在正林。如果存在則返回0泡一。
-z 檢查文件是否是0字節(jié)。如果是則返回0觅廓。
-d 如果路徑是個目錄鼻忠,則返回1,否則返回0杈绸。
示例:
hadoop fs -test -e filename


touchz

使用方法:hadoop fs -touchz URI [URI …]
創(chuàng)建一個0字節(jié)的空文件帖蔓。

touchz

其他 Hadoop Shell 命令參見:
http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html


做個小練習(xí):

在自己本機上按自己名字創(chuàng)建一個文件夾

1

在文件夾里創(chuàng)建一個xingzuo的文件,存儲你的星座

2
3
4

將xingzuo文件put到遠(yuǎn)端/user/hdfs/{yourname}

5

關(guān)鍵代碼:

hadoop fs -put xingzuo /user/hdfs/hhkk/
hadoop fs -ls /user/hdfs/hhkk/
hadoop fs -cat /user/hdfs/hhkk/xingzuo

下午

hadoop fs -cat /user/hdfs/*/xingzuo
1

統(tǒng)計hadoop fs -cat /user/hdfs/*/xingzuo 輸出有多少行:

hadoop fs -cat /user/hdfs/*/xingzuo | wc -l
2

排序:

hadoop fs -cat /user/hdfs/*/xingzuo | sort
3

排序+統(tǒng)計相同的個數(shù):

hadoop fs -cat /user/hdfs/*/xingzuo | sort | uniq -c
4

加上數(shù)字標(biāo)識統(tǒng)計后 反排序:

hadoop fs -cat /user/hdfs/*/xingzuo | sort | uniq -c | sort -r
5

同樣練習(xí)下xingbie:

hadoop fs -cat /user/hdfs/*/xingbie | sort | uniq -c | sort
1
2
hadoop fs -cat /user/hdfs/*/xingbie | sort | uniq -c | sort -rn
3

hadoop fs -cat /user/hdfs/*/xingbie | awk '{print $1}'
1

統(tǒng)計男生的比例:

hadoop fs -cat /user/hdfs/*/xingbie|awk '{if($1=="nan") ++sum_nan; ++sum}END {print "nv: " sum_nan/sum}'
2

4 HDFS關(guān)鍵運行機制

HDFS是基于主從結(jié)構(gòu)(master/slaver)構(gòu)件

1

在HDFS的主從結(jié)構(gòu)中瞳脓,有兩類節(jié)點 namenode和datanode塑娇。他們以管理者-工作者模式工作。

2

客戶端(client)代表用戶通過與namenode和datanode交互訪問整個文件系統(tǒng)劫侧÷癯辏可以是具體程序,也可以是應(yīng)用烧栋。

3

客戶端提供一個類似LINUX的文件系統(tǒng)接口
類似操作系統(tǒng)中的文件界面

所以写妥,用戶在編程時,無需知道namenode和datanode也可以實現(xiàn)功能

namenode很重要:

4

一般有解決方案二

HDFS結(jié)構(gòu)示意圖:

5
6

單點問題:

7

HA即為High Availability劲弦,用于解決NameNode單點故障問題耳标,該特性通過熱備的方式為主NameNode提供一個備用者,一旦主NameNode出現(xiàn)故障邑跪,可以迅速切換至備NameNode次坡,從而實現(xiàn)不間斷對外提供服務(wù)。Federation即為“聯(lián)邦”画畅,該特性允許一個HDFS集群中存在多個NameNode同時對外提供服務(wù)砸琅,這些NameNode分管一部分目錄(水平切分),彼此之間相互隔離轴踱,但共享底層的DataNode存儲資源症脂。
在一個典型的HDFSHA場景中,通常由兩個NameNode組成,一個處于active狀態(tài)诱篷,另一個處于standby狀態(tài)壶唤。Active NameNode對外提供服務(wù),比如處理來自客戶端的RPC請求棕所,而Standby NameNode則不對外提供服務(wù)闸盔,僅同步active namenode的狀態(tài),以便能夠在它失敗時快速進(jìn)行切換琳省。
為了能夠?qū)崟r同步Active和Standby兩個NameNode的元數(shù)據(jù)信息(實際上editlog)迎吵,需提供一個共享存儲系統(tǒng),可以是NFS针贬、QJM(Quorum Journal Manager)或者Bookeeper击费,Active Namenode將數(shù)據(jù)寫入共享存儲系統(tǒng),而Standby監(jiān)聽該系統(tǒng)桦他,一旦發(fā)現(xiàn)有新數(shù)據(jù)寫入蔫巩,則讀取這些數(shù)據(jù),并加載到自己內(nèi)存中瞬铸,以保證自己內(nèi)存狀態(tài)與Active NameNode保持基本一致批幌,如此這般,在緊急情況下standby便可快速切為active namenode嗓节。


5 如何使用HDFS

HDFS是在安裝hadoop-X.X.X.tar.gz配置后荧缘,啟動即可使用。

無論是使用shell腳本拦宣,或者使用WEB UI進(jìn)行操作截粗,使用前必須得明白HDFS的配置。便于存儲操作或者操作優(yōu)化鸵隧。

1
2

世界上所有的追求都是因為熱愛
一枚愛編碼 愛生活 愛分享的IT信徒
— hongXkeX

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绸罗,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子豆瘫,更是在濱河造成了極大的恐慌珊蟀,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件外驱,死亡現(xiàn)場離奇詭異育灸,居然都是意外死亡,警方通過查閱死者的電腦和手機昵宇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門磅崭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瓦哎,你說我怎么就攤上這事砸喻∪岜疲” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵割岛,是天一觀的道長愉适。 經(jīng)常有香客問我,道長癣漆,這世上最難降的妖魔是什么儡毕? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮扑媚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘雷恃。我一直安慰自己疆股,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布倒槐。 她就那樣靜靜地躺著旬痹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪讨越。 梳的紋絲不亂的頭發(fā)上两残,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機與錄音把跨,去河邊找鬼人弓。 笑死,一個胖子當(dāng)著我的面吹牛着逐,可吹牛的內(nèi)容都是我干的崔赌。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼耸别,長吁一口氣:“原來是場噩夢啊……” “哼健芭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起秀姐,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤慈迈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后省有,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痒留,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年锥咸,在試婚紗的時候發(fā)現(xiàn)自己被綠了狭瞎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡搏予,死狀恐怖熊锭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤碗殷,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布精绎,位于F島的核電站,受9級特大地震影響锌妻,放射性物質(zhì)發(fā)生泄漏代乃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一仿粹、第九天 我趴在偏房一處隱蔽的房頂上張望搁吓。 院中可真熱鬧,春花似錦吭历、人聲如沸堕仔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽摩骨。三九已至,卻和暖如春朗若,著一層夾襖步出監(jiān)牢的瞬間恼五,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工哭懈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留灾馒,地道東北人。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓银伟,卻偏偏與公主長得像你虹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子彤避,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 先思考問題 我們處在一個大數(shù)據(jù)的時代已經(jīng)是不爭的事實傅物,這主要表現(xiàn)在數(shù)據(jù)源多且大,如互聯(lián)網(wǎng)數(shù)據(jù)琉预,人們也認(rèn)識到數(shù)據(jù)里往...
    墻角兒的花閱讀 7,380評論 0 9
  • hadoop HDFS原理解析01 HDFS架構(gòu)?NameNode?DataNode?Sencondary Nam...
    白菜青蘿卜閱讀 2,733評論 2 30
  • 首先董饰,我們在使用前先看看HDFS是什麼?這將有助于我們是以后的運維使用和故障排除思路的獲得圆米。 HDFS采用mast...
    W_Bousquet閱讀 4,207評論 0 2
  • 目錄 HDFS的工作機制 概述 HDFS 寫數(shù)據(jù)流程 HDFS 讀數(shù)據(jù)流程 NameNode的工作機制 NameN...
    Singer_Au閱讀 9,877評論 0 5
  • 年少 卻不敢穿過茫茫人海 去擁抱一個你
    曉樹閱讀 168評論 0 0