99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀Hadoop技術(shù)全解析 深度挖掘大數(shù)據(jù)背后的秘密
Hadoop技術(shù)全解析 深度挖掘大數(shù)據(jù)背后的秘密
2016-04-10
收藏

Hadoop技術(shù)全解析 深度挖掘大數(shù)據(jù)背后的秘密

大數(shù)據(jù)最近火熱程度上升,而與之相關(guān)聯(lián)的概念Hadoop也在被網(wǎng)友討論?Hadoop到底是什么,它的技術(shù)基礎(chǔ)是什么,主要用來(lái)干什么了呢?下面我們將詳細(xì)探討。


    在了解以上問(wèn)題之前,我們先了解三個(gè)最基本的知識(shí)點(diǎn),這樣子,你更能深入地了解大數(shù)據(jù)的內(nèi)涵。


    1.大數(shù)據(jù)是什么?


    2.Hadoop是什么?


    3.大數(shù)據(jù)與Hadoop之間是什么關(guān)系?


    大數(shù)據(jù)概念:史上最全大數(shù)據(jù)解析


    hadoop是什么:分布式系統(tǒng)基礎(chǔ)架構(gòu)


    大數(shù)據(jù)與Hadoo之間是什么關(guān)系?


    如果你能基本了解上面三篇文章的內(nèi)容,說(shuō)明你已經(jīng)對(duì)大數(shù)據(jù)和Hadoop有了一定的認(rèn)識(shí),有能力進(jìn)入下一階段的學(xué)習(xí)。下面我們將分享一篇有關(guān)大數(shù)據(jù)和Hadoop的相關(guān)文章,很有意思哦!


    Hadoop那點(diǎn)兒事:為何很多公司的大數(shù)據(jù)業(yè)務(wù)基于Hadoop方案?


    在看完上面的文章后,相信你已經(jīng)成為半個(gè)Hadoop專家,那么我們一起來(lái)更深入地了解相關(guān)知識(shí)吧!

<a href='/map/hadoop/' style='color:#000;font-size:inherit;'>Hadoop</a>技術(shù)全解析 深度挖掘大數(shù)據(jù)背后的秘密

    分布式計(jì)算(Distributed Computing)


    對(duì)于如何處理大數(shù)據(jù),計(jì)算機(jī)科學(xué)界有兩大方向:第一個(gè)方向是集中式計(jì)算,就是通過(guò)不斷增加處理器的數(shù)量來(lái)增強(qiáng)單個(gè)計(jì)算機(jī)的計(jì)算能力,從而提高處理數(shù)據(jù)的速度。第二個(gè)方向是分布式計(jì)算,就是把一組計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)相互連接組成分散系統(tǒng),然后將需要處理的大量數(shù)據(jù)分散成多個(gè)部分,交由分散系統(tǒng)內(nèi)的計(jì)算機(jī)組同時(shí)計(jì)算,最后將這些計(jì)算結(jié)果合并得到最終的結(jié)果。盡管分散系統(tǒng)內(nèi)的單個(gè)計(jì)算機(jī)的計(jì)算能力不強(qiáng),但是由于每個(gè)計(jì)算機(jī)只計(jì)算一部分?jǐn)?shù)據(jù),而且是多臺(tái)計(jì)算機(jī)同時(shí)計(jì)算,所以就分散系統(tǒng)而言,處理數(shù)據(jù)的速度會(huì)遠(yuǎn)高于單個(gè)計(jì)算機(jī)。


    過(guò)去,分布式計(jì)算理論比較復(fù)雜,技術(shù)實(shí)現(xiàn)比較困難,因此在處理大數(shù)據(jù)方面,集中式計(jì)算一直是主流解決方案。IBM的大型機(jī)就是集中式計(jì)算的典型硬件,很多銀行和政府機(jī)構(gòu)都用它處理大數(shù)據(jù)。不過(guò),對(duì)于當(dāng)時(shí)的互聯(lián)網(wǎng)公司來(lái)說(shuō),IBM的大型機(jī)的價(jià)格過(guò)于昂貴。因此,互聯(lián)網(wǎng)公司的把研究方向放在了可以使用在廉價(jià)計(jì)算機(jī)上的分布式計(jì)算上。


    服務(wù)器集群(Server Cluster)


    服務(wù)器集群是一種提升服務(wù)器整體計(jì)算能力的解決方案。它是由互相連接在一起的服務(wù)器群所組成的一個(gè)并行式或分布式系統(tǒng)。服務(wù)器集群中的服務(wù)器運(yùn)行同一個(gè)計(jì)算任務(wù)。因此,從外部看,這群服務(wù)器表現(xiàn)為一臺(tái)虛擬的服務(wù)器,對(duì)外提供統(tǒng)一的服務(wù)。


    盡管單臺(tái)服務(wù)器的運(yùn)算能力有限,但是將成百上千的服務(wù)器組成服務(wù)器集群后,整個(gè)系統(tǒng)就具備了強(qiáng)大的運(yùn)算能力,可以支持大數(shù)據(jù)分析的運(yùn)算負(fù)荷。Google,Amazon,阿里巴巴的計(jì)算中心里的服務(wù)器集群都達(dá)到了5000臺(tái)服務(wù)器的規(guī)模。


    大數(shù)據(jù)的技術(shù)基礎(chǔ):MapReduce、Google File System和BigTable


    2003年到2004年間,Google發(fā)表了MapReduce、GFS(Google File System)和BigTable三篇技術(shù)論文,提出了一套全新的分布式計(jì)算理論。


    MapReduce是分布式計(jì)算框架,GFS(Google File System)是分布式文件系統(tǒng),BigTable是基于Google File System的數(shù)據(jù)存儲(chǔ)系統(tǒng),這三大組件組成了Google的分布式計(jì)算模型。


    Google的分布式計(jì)算模型相比于傳統(tǒng)的分布式計(jì)算模型有三大優(yōu)勢(shì):首先,它簡(jiǎn)化了傳統(tǒng)的分布式計(jì)算理論,降低了技術(shù)實(shí)現(xiàn)的難度,可以進(jìn)行實(shí)際的應(yīng)用。其次,它可以應(yīng)用在廉價(jià)的計(jì)算設(shè)備上,只需增加計(jì)算設(shè)備的數(shù)量就可以提升整體的計(jì)算能力,應(yīng)用成本十分低廉。最后,它被Google應(yīng)用在Google的計(jì)算中心,取得了很好的效果,有了實(shí)際應(yīng)用的證明。


    后來(lái),各家互聯(lián)網(wǎng)公司開(kāi)始利用Google的分布式計(jì)算模型搭建自己的分布式計(jì)算系統(tǒng),Google的這三篇論文也就成為了大數(shù)據(jù)時(shí)代的技術(shù)核心。


    當(dāng)時(shí)谷歌采用分布式計(jì)算理論也是為了利用廉價(jià)的資源,發(fā)揮出更大的效用,他的成功使人們開(kāi)始效仿,因此而產(chǎn)生了Hadoop。


    Hadoop體系和Google體系各方面的對(duì)應(yīng)關(guān)系。Hadoop MapReduce相當(dāng)于MapReduce,HDFS相當(dāng)于GFS,HBase相當(dāng)于BigTable


    Hadoop體系:       Hadoop MapReduce           HDFS          HBase


    Google體系:           MapReduce                   GFS           BigTable


    有不少網(wǎng)友對(duì)Hadoop,Spark和Storm的概念比較模糊,他們之間的聯(lián)系也不是很清楚,那么請(qǐng)你在了解了下面的內(nèi)容后,逐一為他們解答吧!


    主流的三大分布式計(jì)算系統(tǒng):Hadoop,Spark和Storm


    由于Google沒(méi)有開(kāi)源Google分布式計(jì)算模型的技術(shù)實(shí)現(xiàn),所以其他互聯(lián)網(wǎng)公司只能根據(jù)Google三篇技術(shù)論文中的相關(guān)原理,搭建自己的分布式計(jì)算系統(tǒng)。


    Yahoo的工程師Doug Cutting和Mike Cafarella在2005年合作開(kāi)發(fā)了分布式計(jì)算系統(tǒng)Hadoop。后來(lái),Hadoop被貢獻(xiàn)給了Apache基金會(huì),成為了Apache基金會(huì)的開(kāi)源項(xiàng)目。Doug Cutting也成為Apache基金會(huì)的主席,主持Hadoop的開(kāi)發(fā)工作。


    Hadoop采用MapReduce分布式計(jì)算框架,并根據(jù)GFS開(kāi)發(fā)了HDFS分布式文件系統(tǒng),根據(jù)BigTable開(kāi)發(fā)了HBase數(shù)據(jù)存儲(chǔ)系統(tǒng)。盡管和Google內(nèi)部使用的分布式計(jì)算系統(tǒng)原理相同,但是Hadoop在運(yùn)算速度上依然達(dá)不到Google論文中的標(biāo)準(zhǔn)。


    不過(guò),Hadoop的開(kāi)源特性使其成為分布式計(jì)算系統(tǒng)的事實(shí)上的國(guó)際標(biāo)準(zhǔn)。Yahoo,F(xiàn)acebook,Amazon以及國(guó)內(nèi)的百度,阿里巴巴等眾多互聯(lián)網(wǎng)公司都以Hadoop為基礎(chǔ)搭建自己的分布式計(jì)算系統(tǒng)。


    Spark也是Apache基金會(huì)的開(kāi)源項(xiàng)目,它由加州大學(xué)伯克利分校的實(shí)驗(yàn)室開(kāi)發(fā),是另外一種重要的分布式計(jì)算系統(tǒng)。它在Hadoop的基礎(chǔ)上進(jìn)行了一些架構(gòu)上的改良。Spark與Hadoop最大的不同點(diǎn)在于,Hadoop使用硬盤(pán)來(lái)存儲(chǔ)數(shù)據(jù),而Spark使用內(nèi)存來(lái)存儲(chǔ)數(shù)據(jù),因此Spark可以提供超過(guò)Hadoop100倍的運(yùn)算速度。但是,由于內(nèi)存斷電后會(huì)丟失數(shù)據(jù),Spark不能用于處理需要長(zhǎng)期保存的數(shù)據(jù)。


    Storm是Twitter主推的分布式計(jì)算系統(tǒng),它由BackType團(tuán)隊(duì)開(kāi)發(fā),是Apache基金會(huì)的孵化項(xiàng)目。它在Hadoop的基礎(chǔ)上提供了實(shí)時(shí)運(yùn)算的特性,可以實(shí)時(shí)的處理大數(shù)據(jù)流。不同于Hadoop和Spark,Storm不進(jìn)行數(shù)據(jù)的收集和存儲(chǔ)工作,它直接通過(guò)網(wǎng)絡(luò)實(shí)時(shí)的接受數(shù)據(jù)并且實(shí)時(shí)的處理數(shù)據(jù),然后直接通過(guò)網(wǎng)絡(luò)實(shí)時(shí)的傳回結(jié)果。


    Hadoop,Spark和Storm是目前最重要的三大分布式計(jì)算系統(tǒng),Hadoop常用于離線的復(fù)雜的大數(shù)據(jù)處理,Spark常用于離線的快速的大數(shù)據(jù)處理,而Storm常用于在線的實(shí)時(shí)的大數(shù)據(jù)處理。


    在了解完上面的內(nèi)容后,你如果覺(jué)得意猶未盡,還想再深入挖掘,那么向你推薦兩篇比較不錯(cuò)的文章。第一篇是對(duì)描寫(xiě)大數(shù)據(jù)在實(shí)際生活中應(yīng)用,看完之后,你會(huì)發(fā)現(xiàn),大數(shù)據(jù)其實(shí)就在身邊;第二篇是大數(shù)據(jù)的相關(guān)概念:云計(jì)算,看完之后,你很可能就成為大數(shù)據(jù)專家了!


數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }