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

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀大數(shù)據(jù)化繁為簡(jiǎn)的六大部署要點(diǎn)_數(shù)據(jù)分析師
大數(shù)據(jù)化繁為簡(jiǎn)的六大部署要點(diǎn)_數(shù)據(jù)分析師
2014-12-05
收藏

大數(shù)據(jù)化繁為簡(jiǎn)的六大部署要點(diǎn)_數(shù)據(jù)分析師

香港企業(yè)采用大數(shù)據(jù)技術(shù)仍在起步,要考慮的事的確很多,但筆者認(rèn)為廠商經(jīng)常說(shuō)得過(guò)于復(fù)雜,令企業(yè)設(shè)計(jì)大數(shù)據(jù)架構(gòu)時(shí)存有疑問(wèn),例如在建構(gòu)時(shí)選何制定方案使用方法及規(guī)模,相信是很多決策人希望了解的事,那么我們嘗試化繁為簡(jiǎn),由淺入深了解部署時(shí)的考慮點(diǎn)。

    在我們考慮大數(shù)據(jù)時(shí),注意力放在「大」這個(gè)字,但是在建設(shè)基礎(chǔ)架構(gòu)時(shí),我們還應(yīng)該注意「分散式」的數(shù)據(jù)處理。事實(shí)上,大數(shù)據(jù)軟件需要處理大量資訊,而且在將資料復(fù)制到多個(gè)位置時(shí),數(shù)據(jù)的容量便會(huì)倍增。但是,大數(shù)據(jù)的最重要屬性并不在于它的規(guī)模,而在于它將大作業(yè)分割成許多小作業(yè)的能力,它能夠?qū)⒁粋€(gè)任務(wù)的資源分散到多個(gè)位置變?yōu)橥瑫r(shí)處理。在將大規(guī)模和分散式架構(gòu)組合在一起時(shí),我們就能發(fā)現(xiàn)大數(shù)據(jù)網(wǎng)絡(luò)有一組特殊的需求,下面是需要考慮的六個(gè)要素:

1.不容有失 提升網(wǎng)絡(luò)彈性

    如果有一組分散式資源必須通過(guò)互聯(lián)網(wǎng)進(jìn)行協(xié)調(diào)時(shí),可用性就變得非常重要。萬(wàn)一網(wǎng)絡(luò)出現(xiàn)故障,便會(huì)出現(xiàn)不連續(xù)的計(jì)算資源與資料庫(kù)崩壞。說(shuō)白一點(diǎn),大多數(shù)網(wǎng)絡(luò)工程師的主要關(guān)注點(diǎn)是正常執(zhí)行時(shí)間,但是,網(wǎng)絡(luò)故障的原因又各不相同,包括設(shè)備故障(硬體與軟體)、維護(hù)和人為錯(cuò)誤。我們都知道伺服器故障是避無(wú)可避,網(wǎng)絡(luò)的可用性也很重要,所謂完美的設(shè)計(jì)其實(shí)是不存在。

    網(wǎng)絡(luò)架構(gòu)師應(yīng)該設(shè)計(jì)一些能適應(yīng)故障的彈性網(wǎng)絡(luò),網(wǎng)絡(luò)的彈性取決于路徑多樣性(資源之間設(shè)置多條路徑)和容錯(cuò)移轉(zhuǎn)(能夠快速發(fā)現(xiàn)問(wèn)題和轉(zhuǎn)移到其他路徑上)。除了傳統(tǒng)的平均故障時(shí)間間隔(MTBF)方法,大數(shù)據(jù)網(wǎng)絡(luò)的設(shè)計(jì)標(biāo)準(zhǔn)一定要包括這些架構(gòu)。

2. 解決網(wǎng)絡(luò)擁塞

    大數(shù)據(jù)應(yīng)用程式不僅僅是規(guī)模大,而且還有突發(fā)性的流量「洪峰」。當(dāng)一個(gè)程序啟動(dòng)后,數(shù)據(jù)就開(kāi)始流轉(zhuǎn),在高流量時(shí)段時(shí)擁塞造成的問(wèn)題可以很?chē)?yán)重,例如可能引起更多的Queues增加延遲和packet lost。網(wǎng)絡(luò)擁塞還可能令請(qǐng)求多次發(fā)出,這可能讓本身負(fù)載繁重的網(wǎng)絡(luò)無(wú)法承受。因此,網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)時(shí)應(yīng)該盡可能減少擁塞點(diǎn),要網(wǎng)絡(luò)具有較高的路徑多樣性,這樣才能容許網(wǎng)絡(luò)流量分流到大量不同的路徑上。

3. 性能一致要比遲延性更重要

    實(shí)際上,大多數(shù)大數(shù)據(jù)應(yīng)用程式對(duì)網(wǎng)絡(luò)延遲并不敏感。如果運(yùn)算時(shí)間以秒計(jì)或以分鐘計(jì)的話,即使出現(xiàn)較大延遲也是可以接受,例如為幾千ms。然而,大數(shù)據(jù)應(yīng)用程式一般具有較高的同步性。這意味著作業(yè)是并存執(zhí)行的,而各個(gè)作業(yè)之間較大的性能差異可能會(huì)引發(fā)應(yīng)用程式故障。除第1至2點(diǎn)提到網(wǎng)絡(luò)的高效性,空間和時(shí)間上也要具有一致的性能。

4. 預(yù)留未來(lái)的擴(kuò)展性

    大多數(shù)大數(shù)據(jù)叢集實(shí)際上并不大,根據(jù)Hadoop Wizard的資料,2013年大數(shù)據(jù)叢集的平均節(jié)點(diǎn)數(shù)量只有100個(gè)。換句話說(shuō),即使每一臺(tái)伺服器配置雙重redundancy,支援整個(gè)叢集也只需要4個(gè)接入switch (假設(shè)是分別有72個(gè)10GbE網(wǎng)絡(luò)接口的Switch)。

    擴(kuò)展性并不在于現(xiàn)在叢集現(xiàn)在有多大規(guī)模,而是在乎如何平衡地?cái)U(kuò)展支援未來(lái)的部署規(guī)模。如果基礎(chǔ)架構(gòu)設(shè)計(jì)現(xiàn)在只適合小規(guī)模部署,那么整個(gè)架構(gòu)將如何隨著節(jié)點(diǎn)數(shù)量的增加而不斷進(jìn)化?未來(lái)何時(shí)需要完全重新設(shè)計(jì)?這個(gè)架構(gòu)是否需要一些近程資料和資料位置資訊?關(guān)鍵是擴(kuò)展性并不在于絕對(duì)規(guī)模,而是更關(guān)注于實(shí)現(xiàn)足夠規(guī)模解決方案的路徑。

5. 網(wǎng)絡(luò)分割 關(guān)鍵任務(wù)先行

    網(wǎng)絡(luò)分割是大數(shù)據(jù)應(yīng)用環(huán)境的重要條件,形式上,要將大數(shù)據(jù)的流量與其他網(wǎng)絡(luò)流量區(qū)分開(kāi)來(lái),這樣應(yīng)用程式產(chǎn)生的突發(fā)流量才不會(huì)影響其他關(guān)鍵任務(wù)網(wǎng)絡(luò)負(fù)載。除此之外,運(yùn)行多個(gè)作業(yè)的多個(gè)用戶,以滿足性能、合規(guī)性和審計(jì)的要求。這些工作要求在一些場(chǎng)合中實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載的邏輯分離,某些場(chǎng)合還要作物理分離。

6. 應(yīng)用感知力

    雖然大數(shù)據(jù)的概念與Hadoop部署關(guān)系密切,但是它已經(jīng)成為叢集環(huán)境的代名詞。根據(jù)不同應(yīng)用程式的特點(diǎn),環(huán)境的需求隨之不同。有一些可能對(duì)頻寬要求高,一些則可能對(duì)延遲很敏感??傊粋€(gè)網(wǎng)絡(luò)要支援多應(yīng)用程式和多用戶,它就必須要能夠區(qū)分自己的工作負(fù)載,并且要能夠正確處理各個(gè)工作負(fù)載,不僅僅是提供足夠的頻寬。

    最后,應(yīng)用程式體驗(yàn)取決于很多因素,包括網(wǎng)絡(luò)擁塞和分割。創(chuàng)建一個(gè)滿足所有這些需求的網(wǎng)絡(luò)需要具備前瞻性,不僅要考慮基礎(chǔ)架構(gòu)能夠支援的伸縮規(guī)模,還要考慮不同類(lèi)型的應(yīng)用程式如何共存于同一環(huán)境中。

數(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); }