日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

hadoop 各种概念整理

發(fā)布時(shí)間:2024/1/18 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hadoop 各种概念整理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Hadoop

Hadoop實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(Hadoop Distributed File System),簡(jiǎn)稱(chēng)HDFS。

HDFS有高容錯(cuò)性的特點(diǎn),并且設(shè)計(jì)用來(lái)部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來(lái)訪問(wèn)應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序。HDFS放寬了(relax)POSIX的要求,可以以流的形式訪問(wèn)(streaming access)文件系統(tǒng)中的數(shù)據(jù)。

Hadoop的框架最核心的設(shè)計(jì)就是:HDFS和MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),則MapReduce為海量的數(shù)據(jù)提供了計(jì)算。

Hadoop解決哪些問(wèn)題?

  • 海量數(shù)據(jù)需要及時(shí)分析和處理

  • 海量數(shù)據(jù)需要深入分析和挖掘

  • 數(shù)據(jù)需要長(zhǎng)期保存

海量數(shù)據(jù)存儲(chǔ)的問(wèn)題:

  • 磁盤(pán)IO稱(chēng)為一種瓶頸,而非CPU資源

  • 網(wǎng)絡(luò)帶寬是一種稀缺資源

  • 硬件故障成為影響穩(wěn)定的一大因素

Hadoop 相關(guān)技術(shù)

Hbase

  • Nosql數(shù)據(jù)庫(kù),Key-Value存儲(chǔ)
  • 最大化利用內(nèi)存

HDFS

  • hadoop distribute file system(分布式文件系統(tǒng))
  • 最大化利用磁盤(pán)

MapReduce

  • 編程模型,主要用來(lái)做數(shù)據(jù)分析
  • 最大化利用CPU

集中式系統(tǒng)

集中式系統(tǒng)用一句話概括就是:一個(gè)主機(jī)帶多個(gè)終端。終端沒(méi)有數(shù)據(jù)處理能力,僅負(fù)責(zé)數(shù)據(jù)的錄入和輸出。而運(yùn)算、存儲(chǔ)等全部在主機(jī)上進(jìn)行。現(xiàn)在的銀行系統(tǒng),大部分都是這種集中式的系統(tǒng),此外,在大型企業(yè)、科研單位、軍隊(duì)、政府等也有分布。集中式系統(tǒng),主要流行于上個(gè)世紀(jì)。

集中式系統(tǒng)的最大的特點(diǎn)就是部署結(jié)構(gòu)非常簡(jiǎn)單,底層一般采用從IBM、HP等廠商購(gòu)買(mǎi)到的昂貴的大型主機(jī)。因此無(wú)需考慮如何對(duì)服務(wù)進(jìn)行多節(jié)點(diǎn)的部署,也就不用考慮各節(jié)點(diǎn)之間的分布式協(xié)作問(wèn)題。但是,由于采用單機(jī)部署。很可能帶來(lái)系統(tǒng)大而復(fù)雜、難于維護(hù)、發(fā)生單點(diǎn)故障(單個(gè)點(diǎn)發(fā)生故障的時(shí)候會(huì)波及到整個(gè)系統(tǒng)或者網(wǎng)絡(luò),從而導(dǎo)致整個(gè)系統(tǒng)或者網(wǎng)絡(luò)的癱瘓)、擴(kuò)展性差等問(wèn)題。

分布式系統(tǒng)(distributed system)

一群獨(dú)立計(jì)算機(jī)集合共同對(duì)外提供服務(wù),但是對(duì)于系統(tǒng)的用戶(hù)來(lái)說(shuō),就像是一臺(tái)計(jì)算機(jī)在提供服務(wù)一樣。分布式意味著可以采用更多的普通計(jì)算機(jī)(相對(duì)于昂貴的大型機(jī))組成分布式集群對(duì)外提供服務(wù)。計(jì)算機(jī)越多,CPU、內(nèi)存、存儲(chǔ)資源等也就越多,能夠處理的并發(fā)訪問(wèn)量也就越大。

一個(gè)標(biāo)準(zhǔn)的分布式系統(tǒng)應(yīng)該具有以下幾個(gè)主要特征:

  • 分布性

分布式系統(tǒng)中的多臺(tái)計(jì)算機(jī)之間在空間位置上可以隨意分布,系統(tǒng)中的多臺(tái)計(jì)算機(jī)之間沒(méi)有主、從之分,即沒(méi)有控制整個(gè)系統(tǒng)的主機(jī),也沒(méi)有受控的從機(jī)。

  • 透明性

系統(tǒng)資源被所有計(jì)算機(jī)共享。每臺(tái)計(jì)算機(jī)的用戶(hù)不僅可以使用本機(jī)的資源,還可以使用本分布式系統(tǒng)中其他計(jì)算機(jī)的資源(包括CPU、文件、打印機(jī)等)。

  • 同一性

系統(tǒng)中的若干臺(tái)計(jì)算機(jī)可以互相協(xié)作來(lái)完成一個(gè)共同的任務(wù),或者說(shuō)一個(gè)程序可以分布在幾臺(tái)計(jì)算機(jī)上并行地運(yùn)行。

  • 通信性

系統(tǒng)中任意兩臺(tái)計(jì)算機(jī)都可以通過(guò)通信來(lái)交換信息。

分布式數(shù)據(jù)和存儲(chǔ)

大型網(wǎng)站常常需要處理海量數(shù)據(jù),單臺(tái)計(jì)算機(jī)往往無(wú)法提供足夠的內(nèi)存空間,可以對(duì)這些數(shù)據(jù)進(jìn)行分布式存儲(chǔ)。

分布式計(jì)算

隨著計(jì)算技術(shù)的發(fā)展,有些應(yīng)用需要非常巨大的計(jì)算能力才能完成,如果采用集中式計(jì)算,需要耗費(fèi)相當(dāng)長(zhǎng)的時(shí)間來(lái)完成。分布式計(jì)算將該應(yīng)用分解成許多小的部分,分配給多臺(tái)計(jì)算機(jī)進(jìn)行處理。這樣可以節(jié)約整體計(jì)算時(shí)間,大大提高計(jì)算效率。

關(guān)系型數(shù)據(jù)庫(kù), MapReduce (大規(guī)模數(shù)據(jù)批量分析)

數(shù)據(jù)訪問(wèn)效率

磁盤(pán)尋址時(shí)間提高速度遠(yuǎn)遠(yuǎn)小于數(shù)據(jù)傳輸速率提高速度(尋址是將磁頭移動(dòng)到特定硬盤(pán)位置進(jìn)行讀寫(xiě)操作,這是導(dǎo)致硬盤(pán)操作延遲的主要原因,而傳輸速率取決于硬盤(pán)的帶寬)。對(duì)于超大規(guī)模數(shù)據(jù)(以PB為單位)必須考慮使用其他方式。關(guān)系型數(shù)據(jù)庫(kù)使用B樹(shù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)的更新查詢(xún)操作,對(duì)于最大到GB的數(shù)據(jù)量,一般相對(duì)數(shù)據(jù)量較小,效果很好。但是大數(shù)據(jù)量時(shí),B樹(shù)使用排序/合并方式重建數(shù)據(jù)庫(kù)以更新數(shù)據(jù)的效率遠(yuǎn)遠(yuǎn)低于MapReduce。

數(shù)據(jù)結(jié)構(gòu)不同

  • 結(jié)構(gòu)化數(shù)據(jù)

(structured data):是具體既定格式的實(shí)體化數(shù)據(jù),如XML文檔或滿(mǎn)足特定預(yù)定義格式的數(shù)據(jù)庫(kù)表。這是RDBMS包括的內(nèi)容。?
半結(jié)構(gòu)化數(shù)據(jù)

  • 半結(jié)構(gòu)化數(shù)據(jù)

(semi-structured data):比較松散,雖然可能有格式,但是經(jīng)常被忽略,所以他只能作為對(duì)的一般指導(dǎo)。如:一張電子表格,其結(jié)構(gòu)是由單元格組成的網(wǎng)格,但是每個(gè)單元格自身可保存任何形式的數(shù)據(jù)。?
非結(jié)構(gòu)化數(shù)據(jù)

  • 非結(jié)構(gòu)化數(shù)據(jù)?
    (unstructured data):沒(méi)有什么特別的內(nèi)部結(jié)構(gòu),如純文本或圖像數(shù)據(jù)。

關(guān)系型數(shù)據(jù)使用的是結(jié)構(gòu)化數(shù)據(jù),在數(shù)據(jù)庫(kù)階段按具體類(lèi)型處理數(shù)據(jù)。關(guān)系型數(shù)據(jù)的規(guī)范性非常重要,保持?jǐn)?shù)據(jù)的完整性,一致性。

MapReduce 線性,可伸縮性編程

程序員需要編寫(xiě) map函數(shù) 和 reduce函數(shù)。每個(gè)函數(shù)定義從一個(gè)鍵值對(duì)集合到另一個(gè)鍵值對(duì)集合的映射。

MapReduce 工作原理

?


 map函數(shù):接受一個(gè)鍵值對(duì)(key-value pair),產(chǎn)生一組中間鍵值對(duì)。MapReduce框架會(huì)將map函數(shù)產(chǎn)生的中間鍵值對(duì)里鍵相同的值傳遞給一個(gè)reduce函數(shù)。

  reduce函數(shù):接受一個(gè)鍵,以及相關(guān)的一組值,將這組值進(jìn)行合并產(chǎn)生一組規(guī)模更小的值(通常只有一個(gè)或零個(gè)值)。

HDFS

HDFS采用master/slave架構(gòu)?
?

rack

放服務(wù)器的支架。

一個(gè)Block的副本會(huì)保存到兩個(gè)或兩個(gè)以上的機(jī)架上的服務(wù)器中,這樣能防災(zāi)容錯(cuò),因?yàn)橐粋€(gè)機(jī)架出現(xiàn)掉電,交換機(jī)掛了的概率還是很高的。

數(shù)據(jù)塊

linux中每個(gè)磁盤(pán)有默認(rèn)的數(shù)據(jù)塊大小,這是對(duì)磁盤(pán)操作的最小單位,通常512字節(jié)。HDFS同樣也有塊(Block)的概念,默認(rèn)64MB/128MB,比磁盤(pán)塊大得多。與單一的文件系統(tǒng)類(lèi)似,HDFS上的文件系統(tǒng)也被劃分成多個(gè)分塊(Chunk)作為獨(dú)立的存儲(chǔ)單元。

一個(gè)hadoop文件就是由一系列分散在不同的DataNode上的block組成。

HDFS默認(rèn)的Block為64MB/128MB?

塊相對(duì)較大,主要是把尋道時(shí)間最小化。如果一個(gè)塊足夠大,從硬盤(pán)傳輸數(shù)據(jù)的時(shí)間將遠(yuǎn)遠(yuǎn)大于尋找塊起始位置的時(shí)間。這樣使得HDFS的數(shù)據(jù)塊速度和硬盤(pán)的傳輸速度更加接近。

NameNode 元數(shù)據(jù)節(jié)點(diǎn)

NameNode的作用是管理文件目錄結(jié)構(gòu),接受用戶(hù)的操作請(qǐng)求,是管理數(shù)據(jù)節(jié)點(diǎn)的,是一個(gè)jetty服務(wù)器。名字節(jié)點(diǎn)維護(hù)兩套數(shù)據(jù), 一套是文件目錄與數(shù)據(jù)塊之間的關(guān)系 , 另一套是數(shù)據(jù)塊與節(jié)點(diǎn)之間的關(guān)系 。 前一套 數(shù)據(jù)是 靜態(tài)的 ,是存放在磁盤(pán)上的, 通過(guò)fsimage和edits文件來(lái)維護(hù) ; 后一套 數(shù)據(jù)是 動(dòng)態(tài)的 ,不持久放到到磁盤(pán)的,每當(dāng)集群?jiǎn)?dòng)的時(shí)候,會(huì)自動(dòng)建立這些信息,所以一般都放在內(nèi)存中。

NameNode保存文件metadata信息,包括:

  • 文件owership和permissions

  • 文件包含哪些塊

  • Block保存在哪個(gè)DateNode(由DataNode啟動(dòng)時(shí)上報(bào)給)

例如一個(gè)Metadata

file.txt Blk A: DN1,DN5,DN6Blk B: DN7,DN1,DN2Blk C: DN5,DN8,DN9

NameNode的metadata信息在啟動(dòng)后會(huì)加載到內(nèi)存中

文件包括:

① fsimage (文件系統(tǒng)鏡像):元數(shù)據(jù)鏡像文件。存儲(chǔ)某一時(shí)段NameNode內(nèi)存元數(shù)據(jù)信息。

② edits: 操作日志文件。

③ fstime: 保存最近一次checkpoint的時(shí)間

NameNode決定是否將文件映射到DataNode的復(fù)制塊上:多副本,默認(rèn)三個(gè),第一個(gè)復(fù)制塊存儲(chǔ)在同一機(jī)架的不同節(jié)點(diǎn)上,最后一個(gè)復(fù)制塊存儲(chǔ)到不同機(jī)架的某個(gè)節(jié)點(diǎn)上。

?

?

轉(zhuǎn)自:http://www.cnblogs.com/gisorange/p/4328859.html

DataNode

DataNode的作用是HDFS中真正存儲(chǔ)數(shù)據(jù)的。

DataNode的作用:

  • 保存Block,每個(gè)塊對(duì)應(yīng)一個(gè)元數(shù)據(jù)信息文件。這個(gè)文件主要描述這個(gè)塊屬于哪個(gè)文件,第幾個(gè)塊等信息。

  • 啟動(dòng)DataNode線程的時(shí)候會(huì)向NameNode匯報(bào)Block信息

  • 通過(guò)向NameNode發(fā)送心跳保持與其聯(lián)系(3秒一次),如果NameNode 10分鐘沒(méi)有收到DataNode的心跳,認(rèn)為其已經(jīng)lost,并將其上的Block復(fù)制到其它的DataNode.

假設(shè)文件大小是100GB,從字節(jié)位置0開(kāi)始,每64MB字節(jié)劃分為一個(gè)block,依此類(lèi)推,可以劃分出很多的block。每個(gè)block就是64MB大小。block是hdfs讀寫(xiě)數(shù)據(jù)的基本單位。

Secondary NameNode(輔助元數(shù)據(jù)信息)

Secondary NameNode是一個(gè)用來(lái)監(jiān)控HDFS狀態(tài)的輔助后臺(tái)程序。定期的將Namespace鏡像與操作日志文件(edit log)合并,以防止操作日志文件(edit log)變得過(guò)大;能減少NameNode啟動(dòng)時(shí)間。

它不是NameNode的熱備份,可以作為一個(gè)冷備份?
* 將本地保存的fsimage導(dǎo)入?
* 修改cluster的所有DataNode的NameNode地址?
* 修改所有client端的NameNode地址?
* 或者修改Secondary NameNode IP為 NameNode IP

?

hadoop讀取文件

?

hadoop寫(xiě)文件

?

Hadoop在創(chuàng)建新文件時(shí)是如何選擇block的位置的呢,綜合來(lái)說(shuō),要考慮以下因素:帶寬(包括寫(xiě)帶寬和讀帶寬)和數(shù)據(jù)安全性。如果我們把三個(gè)備份全部放在一個(gè)datanode上,雖然可以避免了寫(xiě)帶寬的消耗,但幾乎沒(méi)有提供數(shù)據(jù)冗余帶來(lái)的安全性,因?yàn)槿绻@個(gè)datanode當(dāng)機(jī),那么這個(gè)文件的所有數(shù)據(jù)就全部丟失了。另一個(gè)極端情況是,如果把三個(gè)冗余備份全部放在不同的機(jī)架,甚至數(shù)據(jù)中心里面,雖然這樣數(shù)據(jù)會(huì)安全,但寫(xiě)數(shù)據(jù)會(huì)消耗很多的帶寬。Hadoop 0.17.0給我們提供了一個(gè)默認(rèn)replica分配策略(Hadoop 1.X以后允許replica策略是可插拔的,也就是你可以自己制定自己需要的replica分配策略)。replica的默認(rèn)分配策略是把第一個(gè)備份放在與客戶(hù)端相同的datanode上(如果客戶(hù)端在集群外運(yùn)行,就隨機(jī)選取一個(gè)datanode來(lái)存放第一個(gè)replica),第二個(gè)replica放在與第一個(gè)replica不同機(jī)架的一個(gè)隨機(jī)datanode上,第三個(gè)replica放在與第二個(gè)replica相同機(jī)架的隨機(jī)datanode上。如果replica數(shù)大于三,則隨后的replica在集群中隨機(jī)存放,Hadoop會(huì)盡量避免過(guò)多的replica存放在同一個(gè)機(jī)架上。

轉(zhuǎn)自:http://www.cnblogs.com/beanmoon/archive/2012/12/17/2821548.html

NameNode 安全模式

在分布式文件系統(tǒng)自動(dòng)的時(shí)候,開(kāi)始時(shí)會(huì)有安全模式,當(dāng)分布式文件系統(tǒng)處于安全模式的情況下,文件系統(tǒng)中不允許有上傳,修改,刪除等寫(xiě)操作,只能讀,直到安全模式結(jié)束。

1) namenode啟動(dòng)的時(shí)候,首先將映像文件(fsimage)載入內(nèi)存,并執(zhí)行編輯日志(edits)中的各項(xiàng)操作

2) 一旦在內(nèi)存中成功建立文件系統(tǒng)元數(shù)據(jù)的映射,則創(chuàng)建一個(gè)新的fsimage文件(這個(gè)操作不要SecondaryNameNode)和一個(gè)空的日志edits文件

3) NameNode開(kāi)始監(jiān)聽(tīng)RPC和HTTP請(qǐng)求

4) 此刻namenode運(yùn)行在安全模式,即namenode的文件系統(tǒng)對(duì)于客戶(hù)端來(lái)說(shuō)是只讀的。(可以顯示目錄,顯示文件內(nèi)容等;寫(xiě),刪除,重命名等操作都會(huì)失敗)

5) 系統(tǒng)中的數(shù)據(jù)塊的位置不是有namenode維護(hù)的,而是以塊列表的形式存儲(chǔ)在datanode中(datanode啟動(dòng)匯報(bào)的)

6) 在系統(tǒng)的正常操作期間,namenode會(huì)在內(nèi)存中保留所有塊位置的映射信息

7)在安全模式下,各個(gè)datanode會(huì)向namenode發(fā)送塊列表的最新情況

8) 進(jìn)入和離開(kāi)安全模式

查看namenode處于哪個(gè)狀態(tài)?
hadoop dfsadmin -sagemode get

進(jìn)入安全模式(hadoop啟動(dòng)的時(shí)候是在安全模式)?
hadoop dfsadmin -sagemode enter

離開(kāi)安全模式?
hadoop dfsadmin -sagemode leave

Hadoop中的RPC機(jī)制

同其他RPC框架一樣,Hadoop RPC分為四個(gè)部分:

  (1)序列化層:Clent與Server端通信傳遞的信息采用了Hadoop里提供的序列化類(lèi)或自定義的Writable類(lèi)型;

  (2)函數(shù)調(diào)用層:Hadoop RPC通過(guò)動(dòng)態(tài)代理以及java反射實(shí)現(xiàn)函數(shù)調(diào)用;

  (3)網(wǎng)絡(luò)傳輸層:Hadoop RPC采用了基于TCP/IP的socket機(jī)制;

  (4)服務(wù)器端框架層:RPC Server利用java NIO以及采用了事件驅(qū)動(dòng)的I/O模型,提高RPC Server的并發(fā)處理能力;

感謝您的關(guān)注!可加QQ1群:135430763,QQ2群:454796847,QQ3群:187424846。QQ群進(jìn)群密碼:xttblog,想加微信群的朋友,可以微信搜索:xmtxtt,備注:“xttblog”,添加助理微信拉你進(jìn)群。備注錯(cuò)誤不會(huì)同意好友申請(qǐng)。再次感謝您的關(guān)注!后續(xù)有精彩內(nèi)容會(huì)第一時(shí)間發(fā)給您!原創(chuàng)文章投稿請(qǐng)發(fā)送至532009913@qq.com郵箱。商務(wù)合作可添加助理微信進(jìn)行溝通!

總結(jié)

以上是生活随笔為你收集整理的hadoop 各种概念整理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。