Hadoop是一個是個海量數(shù)據(jù)的分布式存儲和計算平臺
從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。創(chuàng)新互聯(lián)建站將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。對于數(shù)據(jù),我們大致可以將其分為三類:
結(jié)構(gòu)化數(shù)據(jù)(對于結(jié)構(gòu)化數(shù)據(jù)的處理可以通過RDBMS處理,通過將搜索碼創(chuàng)建為索引頁可以實現(xiàn)很快的查詢速度)
半結(jié)構(gòu)化數(shù)據(jù)(一般可以使用類型XML進(jìn)行標(biāo)記處理)
非結(jié)構(gòu)化數(shù)據(jù)
其實,非結(jié)構(gòu)化數(shù)據(jù)會占據(jù)相當(dāng)大的比重,非機(jī)構(gòu)化數(shù)據(jù)的存儲和計算也變得比較困難。
Hadoop的靈感來自于Google的兩篇論文,包括MapReduce,我們可以將Hadoop理解為是MapReduce的開源實現(xiàn),Hadoop是由java語言編寫的。
首先,對于海量數(shù)據(jù),需要完成對其進(jìn)行存儲然后進(jìn)行就算,分析。
HDFS:Hadoop分布式文件系統(tǒng)
MapReduce:Hadoop用于完成并行數(shù)據(jù)處理的框架
可以理解為Hadoop=HDFS+MapReduce,也就是可以理解為一個Hadoop集群就是一個HDFS集群加上一個MapReduce集群。
HDFS如何完成分布式存儲:
HDFS集群中一般會有一個主節(jié)點(在Hadoop的新版本中,已經(jīng)實現(xiàn)有多個主節(jié)點),稱之為NameNode(簡稱為NN)
HDFS中會有n個從節(jié)點,稱之為DataNode(DN)
實際完成數(shù)據(jù)存儲的都是數(shù)據(jù)節(jié)點,而NameNode主要是用于將數(shù)據(jù)分塊,分塊之后再分配給數(shù)據(jù)節(jié)點進(jìn)行存儲,另外,NameNode用于接收用戶請求,管理從節(jié)點,維護(hù)文件系統(tǒng)的目錄結(jié)構(gòu),管理文件與Block之間的關(guān)系,block與數(shù)據(jù)節(jié)點之間的關(guān)系,從而完成分布式存儲海量數(shù)據(jù)的目的。
HDFS的特性:HDFS設(shè)計用于存儲大文件,對于海量小文件的存儲不太適用
HDFS是用戶空間的文件系統(tǒng)(其實數(shù)據(jù)最終還是存儲在諸如ext3文件系統(tǒng)上,只不過需要經(jīng)過HDFS的又一次對數(shù)據(jù)進(jìn)行抽象)
HDFS不支持修改數(shù)據(jù)(新版本支持追加)
不支持掛載并通過系統(tǒng)調(diào)用進(jìn)行訪問,只能使用專用訪問借口,例如專用的命令行工具,API
MapReduce,一般提到MapReduce,其有三個含義:
編程模型
運算框架
MapReduce編程思想的具體實現(xiàn)工具
MapReduce的思想大致就是分為兩個階段:Map和Reduce
Map就是將對一個大文件的處理分割成塊進(jìn)行計算,實現(xiàn)分布式
Reduce就是將對各個塊的計算結(jié)果再進(jìn)行匯總
對數(shù)據(jù)計算其實就是提取Key-Value的方式,在進(jìn)行Map之后交由Reduce的時候,必須要將同一個Key提取的內(nèi)容發(fā)送至同一個Reduce進(jìn)程進(jìn)行最后的合并
對于數(shù)據(jù)的計算,需要處理人員按照MapReduce的編程模型結(jié)合對數(shù)據(jù)的處理目的編寫MapReduce程序,所以對于海量數(shù)據(jù)的計算在HDFS+MapReduce結(jié)合上有著極大的限制性。
Hadoop同時也有很多的組件,從而構(gòu)成了Hadoop的生態(tài)系統(tǒng):
HDFS+MapReduce構(gòu)成了Hadoop的核心:
Hive:Hive是由Facebook開發(fā)的,Hive將整個MapReduce提供的框架抽象為一個系統(tǒng),當(dāng)用戶想要就行查詢等操作的時候,就可以想Hive提交一個SQL語句,然后由Hive實現(xiàn)將用戶便于理解的SQL語句轉(zhuǎn)換成為一個MapReduce程序執(zhí)行,最后向用戶輸出結(jié)果(可以理解成Hive提供了一個SQL接口,但是并不和SQL完全兼容)
Hbase:由于HDFS不能掛載,也不能修改數(shù)據(jù),當(dāng)Hbase工作在HDFS之上的時候,構(gòu)成一個Hbase集群,在Hbase的節(jié)點上再啟動一個進(jìn)程,這時數(shù)據(jù)可以先存在Hbase上,然后再由Hbase將其存入HDFS,并且Hbase對數(shù)據(jù)記錄有版本號,實現(xiàn)了對數(shù)據(jù)進(jìn)行修改
在很多情況下,我們需要對例如web服務(wù)器集群產(chǎn)生的日志進(jìn)行分析計算,那么如何將web服務(wù)器產(chǎn)生的日志存儲到HDFS上,首先,HDFS不能被掛載,所以就不能像對待一本文件系統(tǒng)沒那個一樣對其進(jìn)行寫入,這就是Flume,scrib這些日志收集工具實現(xiàn)將日志存儲到HDFS上的。
同上,很多情況下可能需要借助于集群的威力對存儲在RDBMS上的數(shù)據(jù)進(jìn)行分析計算和挖掘,那么如何將RDBMS中的數(shù)據(jù)導(dǎo)入到HDFS上,就是有Sqoop工具實現(xiàn)的,可以將數(shù)據(jù)用Sqoop從RDBMS導(dǎo)出,先存儲到Hbase上,再由Hbase實現(xiàn)存儲到HDFS上,之后就可以通過編寫的MapReduce程序?qū)?shù)據(jù)進(jìn)行運算
MAhost就是用于數(shù)據(jù)挖掘,也就是機(jī)器學(xué)習(xí)的工具
Zookeeper:可以理解其就是一個協(xié)調(diào)器,監(jiān)控集群上的各個節(jié)點是否能夠符合集群的要求
Hadoop在HDFS提供改良數(shù)據(jù)存儲的方案上表現(xiàn)還是比較出色的,但是MapReduce的計算能力就稍有遜色,可以結(jié)合第二代大數(shù)據(jù)解決方案spark,使用HDFS完成海量數(shù)據(jù)的分布式存儲,有spark提供對海量數(shù)據(jù)的運算
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
分享名稱:Hadoop基本概念-創(chuàng)新互聯(lián)
路徑分享:http://jinyejixie.com/article40/dpcpho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、微信公眾號、移動網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、定制開發(fā)、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容