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

熱線電話:13121318867

登錄
首頁精彩閱讀大數據的關鍵技術
大數據的關鍵技術
2018-03-25
收藏

大數據的關鍵技術

大數據環(huán)境下的數據處理需求

大數據環(huán)境下數據來源非常豐富且數據類型多樣,存儲和分析挖掘的數據量龐大,對數據展現的要求較高,并且很看重數據處理的高效性和可用性。

傳統數據處理方法的不足

傳統的數據采集來源單一,且存儲、管理和分析數據量也相對較小,大多采用關系型數據庫和并行數據倉庫即可處理。對依靠并行計算提升數據處理速度方面而言,傳統的并行數據庫技術追求高度一致性和容錯性,根據CAP理論,難以保證其可用性和擴展性。

傳統的數據處理方法是以處理器為中心,而大數據環(huán)境下,需要采取以數據為中心的模式,減少數據移動帶來的開銷。因此,傳統的數據處理方法,已經不能適應大數據的需求!

大數據的處理流程包括哪些環(huán)節(jié)?每個環(huán)節(jié)有哪些主要工具?

大數據的基本處理流程與傳統數據處理流程并無太大差異,主要區(qū)別在于:由于大數據要處理大量、非結構化的數據,所以在各個處理環(huán)節(jié)中都可以采用MapReduce等方式進行并行處理。

大數據技術為什么能提高數據的處理速度?

大數據的并行處理利器——MapReduce

大數據可以通過MapReduce這一并行處理技術來提高數據的處理速度。MapReduce的設計初衷是通過大量廉價服務器實現大數據并行處理,對數據一致性要求不高,其突出優(yōu)勢是具有擴展性和可用性,特別適用于海量的結構化、半結構化及非結構化數據的混合處理。

MapReduce將傳統的查詢、分解及數據分析進行分布式處理,將處理任務分配到不同的處理節(jié)點,因此具有更強的并行處理能力。作為一個簡化的并行處理的編程模型,MapReduce還降低了開發(fā)并行應用的門檻。

MapReduce是一套軟件框架,包括Map(映射)和Reduce(化簡)兩個階段,可以進行海量數據分割、任務分解與結果匯總,從而完成海量數據的并行處理。

MapReduce的工作原理其實是先分后合的數據處理方式。Map即“分解”,把海量數據分割成了若干部分,分給多臺處理器并行處理;Reduce即“合并”,把各臺處理器處理后的結果進行匯總操作以得到最終結果。如右圖所示,如果采用MapReduce來統計不同幾何形狀的數量,它會先把任務分配到兩個節(jié)點,由兩個節(jié)點分別并行統計,然后再把它們的結果匯總,得到最終的計算結果。

MapReduce適合進行數據分析、日志分析、商業(yè)智能分析、客戶營銷、大規(guī)模索引等業(yè)務,并具有非常明顯的效果。通過結合MapReduce技術進行實時分析,某家電公司的信用計算時間從33小時縮短到8秒,而MKI的基因分析時間從數天縮短到20分鐘。

說到這里,再看一看MapReduce與傳統的分布式并行計算環(huán)境MPI到底有何不同?MapReduce在其設計目的、使用方式以及對文件系統的支持等方面與MPI都有很大的差異,使其能夠更加適應大數據環(huán)境下的處理需求。

大數據技術在數據采集方面采用了哪些新的方法

系統日志采集方法

很多互聯網企業(yè)都有自己的海量數據采集工具,多用于系統日志采集,如Hadoop的Chukwa,Cloudera的Flume,Facebook的Scribe等,這些工具均采用分布式架構,能滿足每秒數百MB的日志數據采集和傳輸需求。

網絡數據采集方法:對非結構化數據的采集

網絡數據采集是指通過網絡爬蟲或網站公開API等方式從網站上獲取數據信息。該方法可以將非結構化數據從網頁中抽取出來,將其存儲為統一的本地數據文件,并以結構化的方式存儲。它支持圖片、音頻、視頻等文件或附件的采集,附件與正文可以自動關聯。

除了網絡中包含的內容之外,對于網絡流量的采集可以使用DPI或DFI等帶寬管理技術進行處理。

其他數據采集方法

對于企業(yè)生產經營數據或學科研究數據等保密性要求較高的數據,可以通過與企業(yè)或研究機構合作,使用特定系統接口等相關方式采集數據。


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

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(), // 加隨機數防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數1:配置參數 // 參數2:回調,回調的第一個參數驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產品形式,包括:float,popup width: "280px", https: true // 更多配置參數說明請參見: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); }