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

熱線電話:13121318867

登錄
首頁職業(yè)發(fā)展給hadoop新手的一封信_數據分析師
給hadoop新手的一封信_數據分析師
2014-11-14
收藏

給hadoop新手的一封信_數據分析師

 大數據的世界正在穩(wěn)步發(fā)展壯大。隨著數據數量和種類的不斷膨脹,讀者都想知道接下來會發(fā)生什么。Sriram Mohan博士是羅斯豪曼理工學院計算機科學和軟件工程的副教授。同時他還兼任著Avalon咨詢公司大數據解決方案高級顧問一職。他融匯理論與實踐于一身,他絕對是回答“2014年企業(yè)大數據發(fā)展趨勢”的正確人選。下面是他的一些獨到見解。

Sriram說,“Hadoop和MapReduce模式絕對是解決大數據問題的方式之一。但你需要記住的是,按照目前的情況來看,Hadoop僅僅是對于批處理來說比較好。相信很快,我們同時需要能夠實時處理這些數據。”作為一名Hadoop顧問的Sriram并不是說這種無處不在的平臺速度緩慢。使用這樣一個強大的框架,大量數據可能在一分鐘之內就處理完,但是那并不總是足夠好。如何解決這個問題呢?

Hortonworks公司戰(zhàn)略副總裁Shaun Connolly指出, Hadoop一直不斷的變得更快更靈活。 “我們現在越來越明確的要求優(yōu)化Hadoop使用的NoSQL數據庫。它可以利用內存處理,這樣請求就能更快的返回,而不使用批量處理。如果使用YARN,你其實可以基于內存做更多的交互式查詢。”除此之外,還有一個熱潮興起的流式分析工具或過程依賴于像Storm這樣的技術,開發(fā)人員就可以使用YARN這樣的架構嵌入到Hadoop里面去。如今使用Hadoop的大數據用戶都在研究近實時性能。然而,這并不是100%的實時,一個重要的區(qū)別在于,當組織使用計算機來做瞬間快速決定的時候,必須參照很久以前的分析報告,而這些可能已經被人為破壞。

這個時候LAMBDA架構就有了用武之地。它允許企業(yè)組織從他們大量數據中分離出增量數據進行單獨處理。大部分的數據都進入到批處理系統(tǒng)中,而一個叫做“速度層”的對數據進行實時處理。NoSQL數據庫(他們中的大部分)都有自己的生態(tài)系統(tǒng),因為它們提供了專門的工具來管理數據,以適應特定案例。

整合將至關重要,但沒有一個工具對大家都有效

說到向Hadoop提供援助之手,精心設計的工具正在以驚人的速度在大數據空降急劇增加。 ElasticSearch,Pentaho,以及許多其他工具覆蓋了整個大數據生態(tài)系統(tǒng)不同細分市場。但下一個重要階段是如何讓他們能夠更好的協(xié)同工作。直到這個階段的到來,大數據的管理還將比較隨意。


當然,這并不意味著一個集成產品將永遠適合所有的商業(yè)模式。數據以多種形式出現,并且每個企業(yè)組織都希望利用這些信息做不同的事情。企業(yè)組織將需要使用各種不同的方式來處理他們的數據,根據數據的來源,格式,他們?yōu)槭裁词占?,他們希望如何存儲,他們想如何分析,還有他們需要以多快的速度來處理。我們希望在整合的同時仍然保持模塊化。這將允許企業(yè)為自己獨有的使用案例創(chuàng)建合適的工具時無需每次都重新開發(fā)。

熟悉大數據技術的軟件工程師將會有很大的需求

Mohan指出,在大數據空間最顯著的挑戰(zhàn)之一,應該是與微乎其微的人才庫相關。“擁有這方面經驗的人才數量并不多。”這并不意味著軟件工程師需要去上學并獲得博士學位。技術工人并不需要一個博士學位來理解大數據。然而,他們確實需要掌握知識和專業(yè)技能。Sriram說,這個目標是任何一個愿意投入時間和精力的軟件工程師都可以實現的。課堂上不一定是唯一的起點。經歷努力實現關系型數據庫規(guī)模并且過渡到非關系型數據庫,讓其都為掌握大數據問題奠定堅實的基礎。

Mohan博士正在做的是,為當今的軟件工程師準備未來的工作世界。他將在波士頓的Big Data TechCon提供兩個教育機會:Hadoop的數據傳輸工具和MapReduce介紹。對于那些想要在未來幾年成為就業(yè)市場高需求人才的人,現在就是開始時間。(文章來源:http://cda.pinggu.org/)

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

若不方便掃碼,搜微信號: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); }