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

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時代大數(shù)據(jù)分析師教程-2.1 Hadoop入門-Hadoop 1.0 的局限與 Hadoop 2.0(YARN)的革新
大數(shù)據(jù)分析師教程-2.1 Hadoop入門-Hadoop 1.0 的局限與 Hadoop 2.0(YARN)的革新
2024-10-23
收藏

大數(shù)據(jù)分析師培訓(xùn)教程-2.1 Hadoop入門-Hadoop 1.0 的局限與 Hadoop 2.0(YARN)的革新

Hadoop簡介

Apache Hadoop存儲和處理大數(shù)據(jù)的開源軟件框架 Hadoop項目

Hadoop能夠在上千臺機器組成的集群上運行大規(guī)模集群可靠性,不能僅僅靠硬件來保證,因為節(jié)點的失敗、網(wǎng)絡(luò)的失敗等狀況不可避免,為了能夠在大規(guī)模集群上順利運行,Hadoop的所有模塊,其設(shè)計原則基于這樣的基本假設(shè),即**硬件的失敗在所難免,每個節(jié)點都沒有那么可靠,可能發(fā)生節(jié)點失敗狀況,軟件框架應(yīng)該能夠自動檢測和處理這些失敗情況。 Hadoop通過軟件,在大規(guī)模集群上提供高度的可用性(High Availability)

Hadoop 的生態(tài)系統(tǒng)

  1. HiveHadoop平臺上的數(shù)據(jù)倉庫,用于對數(shù)據(jù)進行離線分析。它提供了一種類 似于SQL的查詢語言HQL (Hive Query Language)。HiveSQL轉(zhuǎn)化為 MapReduce作業(yè)(Job)在Hadoop上執(zhí)行。

  2. HBase是Google Big Table在Hadoop平臺上的開源實現(xiàn)。它是一個針對結(jié)構(gòu)化數(shù) 據(jù)處理的、面向列分組(Column Family)的、可伸縮的、高度可靠的、高性能的分 布式數(shù)據(jù)庫。一般用于數(shù)據(jù)服務(wù)(Data Serving)應(yīng)用場合。

  3. Pig實現(xiàn)了數(shù)據(jù)查詢腳本語言Pig Latin。用Pig Latin腳本語言編寫的應(yīng)用程序,翻 譯為MapReduce作業(yè),在Hadoop上運行

  4. Flume是一個可擴展的、高度可靠的、高可用的分布式海量日志收集系統(tǒng),一般 用于把眾多服務(wù)器上的大量日志,聚合到某一個數(shù)據(jù)中心。Flume提供對日志數(shù) 據(jù)進行簡單處理的能力,比如過濾、格式轉(zhuǎn)換等。同時,F(xiàn)lume可以將日志寫往 各種目標(biāo)(本地文件、分布式文件系統(tǒng))。

  5. Sqoop是SQL to Hadoop的縮寫,主要用于在關(guān)系數(shù)據(jù)庫或者其它結(jié)構(gòu)化數(shù)據(jù)源 和Hadoop之間交換數(shù)據(jù)

  6. Mahout是Hadoop平臺上的機器學(xué)習(xí)軟件包,它的主要目標(biāo)是實現(xiàn)高度可擴展的 機器學(xué)習(xí)算法,以便幫助開發(fā)人員利用大數(shù)據(jù)進行機器學(xué)習(xí)模型訓(xùn)練。Mahout現(xiàn) 在已經(jīng)包含聚類、分類、推薦引擎(協(xié)同過濾)、頻繁集挖掘等經(jīng)典數(shù)據(jù)挖掘和機 器學(xué)習(xí)算法。

  7. Oozie是一個工作流調(diào)度器(Scheduler)。Oozie協(xié)調(diào)運行的作業(yè),屬于一次性非 循環(huán)的作業(yè),比如MapReduce作業(yè)、Pig腳本、Hive查詢、Sqoop數(shù)據(jù)導(dǎo)入/導(dǎo)出 作業(yè)等。Oozie基于時間、和數(shù)據(jù)可用性進行作業(yè)調(diào)度,根據(jù)作業(yè)間的依賴關(guān) 系,協(xié)調(diào)作業(yè)的運行

  8. Zookeeper是模仿Google公司的Chubby系統(tǒng)的開源實現(xiàn),Chubby是一個分布式 的鎖(Lock)服務(wù)

HDFS 的原理及其讀寫過程

原理:

  1. HDFS,是一個分布式的、高度可擴展的文件系統(tǒng)。
  2. 一個HDFS集群,一般由一個NameNode和若干DataNode組成,分別負責(zé)元信息 的管理和數(shù)據(jù)塊的管理 . HDFS支持TB級甚至PB級大小文件的存儲;
  3. 它把文件劃分成數(shù)據(jù)塊(Block),分布到多臺機器上進行存儲;
  4. 為了保證系統(tǒng)的可靠性,HDFS把數(shù)據(jù)塊在多個節(jié)點上進行復(fù)制(Replicate)
  5. 采用心跳機制確認節(jié)點可用:
  6. DataNode默認每秒像NameNode匯報一次,向NameNode匯報狀態(tài)信息,并且返 回NameNode對DataNode的操作命令
  7. 如果某一時刻DataNode不匯報,可能宕機 . NameNode超過十分鐘沒有收到DataNode的心跳,則認為該節(jié)點不可用 寫文件
  8. 客戶端通過Distributed FileSystem模塊向NameNode請求上傳文件,NameNode檢 查目標(biāo)文件是否已存在,父目錄是否存在。
  9. NameNode返回是否可以上傳。 . 客戶端請求第一個 Block上傳到哪幾個DataNode服務(wù)器上。
  10. NameNode返回個DataNode節(jié)點,分別為DataNode1、DataNode2、DataNode。 5. 客戶端通過FSDataOutputStream模塊請求DataNode1上傳數(shù)據(jù),DataNode1收到 請求會繼續(xù)調(diào)用DataNode2,然后DataNode2調(diào)用DataNode,將這個通信管道建立 完成。
  11. DataNode1、DataNode2、DataNode逐級應(yīng)答客戶端。
  12. 客戶端開始往DataNode1上傳第一個Block(先從磁盤讀取數(shù)據(jù)放到一個本地內(nèi)存 緩存),以Packet為單位,DataNode1收到一個Packet就會傳給DataNode2, DataNode2傳給DataNode;DataNode1每傳一個packet會放入一個應(yīng)答隊列等待應(yīng) 答。
  13. 當(dāng)一個Block傳輸完成之后,客戶端再次請求NameNode上傳第二個Block的服務(wù) 器。(重復(fù)執(zhí)行-7步)。

讀文件

  1. 客戶端通過DistributedFileSystem向NameNode請求下載文件,NameNode通過 查詢元數(shù)據(jù),找到文件塊所在的DataNode地址。
  2. 挑選一臺DataNode(就近原則,然后隨機)服務(wù)器,請求讀取數(shù)據(jù)。 . DataNode開始傳輸數(shù)據(jù)給客戶端(從磁盤里面讀取數(shù)據(jù)輸入流,以Packet為單 位來做校驗)。
  3. 客戶端以Packet為單位接收,先在本地緩存,然后寫入目標(biāo)文件。

Hadoop 1.0 的局限與 Hadoop 2.0(YARN)的原理是什么?

在大數(shù)據(jù)處理的領(lǐng)域中,Hadoop 可謂是一位 “重量級選手”。然而,就像任何技術(shù)一樣,Hadoop 1.0 也有它的不足之處。

Hadoop 1.0 存在著明顯的單點故障問題。這就好比一個團隊中,如果關(guān)鍵人物出了問題,整個團隊的運作可能就會陷入混亂。在 Hadoop 1.0 中,一旦 NameNode 這個關(guān)鍵節(jié)點出現(xiàn)故障,整個系統(tǒng)就可能面臨崩潰的風(fēng)險。

而且,它的資源管理方式也不夠靈活。就好像分配房間,如果只有一種固定的分配方式,很難滿足各種不同的需求。

不過,技術(shù)總是在不斷進步的。Hadoop 2.0(YARN)的出現(xiàn),給我們帶來了新的希望。

YARN 的原理就像是一個更聰明的 “管家”。它把資源管理和任務(wù)調(diào)度分開了。ResourceManager 就像是大管家,負責(zé)整體資源的分配和監(jiān)控。而 ApplicationMaster 則像是每個任務(wù)的小管家,專門負責(zé)自己任務(wù)的資源申請和調(diào)度。

這種分離的方式,讓系統(tǒng)的擴展性大大增強。就好比原來的房子不夠住了,現(xiàn)在可以很方便地加蓋新的房間,而不會影響原來的居住者。

同時,容錯性也得到了提高。即使某個 “小管家” 出了問題,也不會讓整個 “家” 亂了套。

資源利用率也因為這種更精細的管理而得到了提升,不再有資源浪費或者分配不均的情況。

Hadoop 1.0 的局限

  1. 它僅僅支持一種計算模型,即MapReduce。MapReduce計算模型的表達能力有 限,尤其是復(fù)雜的數(shù)據(jù)處理任務(wù)
  2. MapReduce作業(yè)通過磁盤進行數(shù)據(jù)交換,效率低下,影響了查詢的執(zhí)行效率。
  3. Hadoop 1.0的任務(wù)調(diào)度方法,遠未達到優(yōu)化資源利用率的效果。

Hadoop 2.0(YARN)的原理

YARN(Yet Another Resource Negotiator)

  1. 在新的架構(gòu)里,包含ResourceManager和NodeManager兩個重要的組件。 ResourceManager運行在Master節(jié)點上,NodeManager運行在Slave節(jié)點上,一起負 責(zé)分布式應(yīng)用程序的調(diào)度和運行
  2. ResourceManager是為應(yīng)用程序分配資源的最高權(quán)威。ResourceManager包含兩個組件,包括Scheduler和ApplicationManager

總的來說,Hadoop 2.0(YARN)的出現(xiàn),解決了 Hadoop 1.0 的很多痛點,讓大數(shù)據(jù)處理變得更加高效、可靠和靈活。相信在未來,它還會不斷進化,為我們處理大數(shù)據(jù)帶來更多的便利和驚喜!

Hadoop 2.0 的主要優(yōu)勢有哪些?

    1. 擴展性:

ResourceManager的主要功能,是資源的調(diào)度工作。所以它能夠輕松地 管理更大規(guī)模的集群系統(tǒng),適應(yīng)了數(shù)據(jù)量增長對數(shù)據(jù)中心的擴展性提出的挑戰(zhàn)。

    1. 更高的集群使用效率:

ResourceManager是一個單純的資源管理器,它根據(jù)資源 預(yù)留要求、公平性、服務(wù)水平協(xié)議(Service Level Agreement, SLA)等標(biāo)準(zhǔn),優(yōu)化 整個集群的資源,使之得到很好的利用。

Hadoop1.0平臺上開發(fā)的 MapReduce應(yīng)用程序,無需修 改,直接在YARN上運行。

    1. 支持更多的負載類型:

當(dāng)數(shù)據(jù)存儲HDFS以后,用戶希望能夠?qū)?shù)據(jù)以不同的 方式進行處理。除了MapReduce應(yīng)用程序(主要對數(shù)據(jù)進行批處理),YARN支持 更多的編程模型,包括圖數(shù)據(jù)的處理、迭代式計算模型、實時流數(shù)據(jù)處理、交互 式查詢等。一般來講,機器學(xué)習(xí)算法需要在數(shù)據(jù)集上,經(jīng)過多次迭代,才能獲得 最終的計算結(jié)果。

    1. 靈活性: MapReduce等計算模型可以獨立于資源管理層,單獨演化和改進。使 得系統(tǒng)各個部件的演進和配合,更加具有靈活性

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

若不方便掃碼,搜微信號: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(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".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 = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+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); }