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

熱線電話:13121318867

登錄
首頁精彩閱讀嫌棄Hadoop?可能是你的打開方式有問題
嫌棄Hadoop?可能是你的打開方式有問題
2017-08-14
收藏



關于 Hadoop 所謂的消亡,以及它跌落神壇的報道數(shù)不勝數(shù)。有很多人放馬后炮說,Hadoop 從一開始就沒有意義。還有人說“Hadoop 對于小型,臨時的工作來說很慢”、“ Hadoop 很難”、“ Hadoop 已經(jīng)死了,Spark 才是勝者”等等。那么事實真的如此嗎?


如今圍繞著 Hadoop 缺陷的爭論和當初對其的大肆追捧一樣激烈。

在這些喋喋不休的爭論中,你可能已經(jīng)得出結論,Hadoop 已經(jīng)死了。個人認為這個想法雖然可以理解,但卻是錯誤的。



TCP/IP

你聽過 TCP/IP 嗎?如果沒有,相信我這是很強大的技術。實際上,你很喜歡TCP/IP ,你只是沒有意識到。TCP/IP 不僅能驅動互聯(lián)網(wǎng),還能驅動電子郵件,甚至能驅動網(wǎng)絡。當你使用各種應用程序,使用各種流媒體,以及打車、上網(wǎng)等等,這都受益于 TCP/IP,沒有它你可能無法生活。

雖然你喜歡 TCP/IP,但是你對配置它不感興趣。你不用輸入 ifconfig 這樣的命令,從而查看你的 WiFi 適配器是如何聯(lián)網(wǎng)的。甚至你不用關心它附加的網(wǎng)關,以及它使用何種 DNS 服務器。

在 20 世紀 90 年代,TC/IP 曾被當做產(chǎn)品銷售,結果不溫不火。最終,TCP/IP 已被建立在操作系統(tǒng)中,如今到處都有它,TCP/IP 成為了普遍的標準。

Hadoop是基礎設施

其實,Hadoop 就是大數(shù)據(jù)世界中的 TCP/IP。它是基礎設施,同時也帶來巨大的好處。但是,當基礎設施暴露出來時,帶來的好處就大大削弱了。Hadoop 像Web 瀏覽器一樣被推廣,但是它更像 TCP/IP。了解這一點時就會發(fā)現(xiàn),推廣 Hadoop 本身就不是個好主意。

如果你直接使用 Hadoop,那么你錯了。如果你在命令行中輸入“hadoop”和一些參數(shù),那么你就在倒退。你是想自行配置和運行所有內(nèi)容,還是只想使用數(shù)據(jù),讓分析軟件在后端處理 Hadoop?

大多數(shù)人會選擇后者,但大數(shù)據(jù)行業(yè)往往把客戶導向前者。之前,行業(yè)是這么看待Hadoop…如今也將這么看待 Spark 和眾多的機器學習工具。這是技術專家討好商業(yè)用戶的例子,這永遠不會結束。

開發(fā)工具不等同于商業(yè)工具

業(yè)界并不是完全忽視這個問題,一些廠商已經(jīng)在嘗試改進 Hadoop 的不足之處。目前已出現(xiàn) Hue、 Jupyter、Zeppelin 和 Ambari 等的開源項目,旨在讓 Hadoop 從業(yè)人員擺脫命令行。

但問題就在此。我們需要為商業(yè)用戶,而不是為Hadoop 從業(yè)者提供工具。Hue 非常適合運行和跟進 Hadoop 任務,以及使用 SQL 或其他語言編寫系統(tǒng)查詢。相比Spark,Jupyter 和 Zeppelin 非常適合編寫、運行代碼,以及使用數(shù)據(jù)科學的 R 和Python 等語言,甚至生成代碼的數(shù)據(jù)可視化。問題是使用這些工具不等同于脫離命令行;它們只是讓人們更有效地做這些事情。讓人們完全脫離命令行是一回事,但讓人們更簡便的做同樣的事情,并沒有什么本質的改變。

BI 工具供應商也嘗試改善這一現(xiàn)狀。但他們通過簡化 Hadoop,并將其當作 SQL 數(shù)據(jù)庫來處理。給 Hadoop 加抽象層是好的,但是在它們之間加 SQL 層并不是。想做大數(shù)據(jù)分析嗎?選擇一個使用 Hadoop 的工具,并充分利用它。雖然你不用直接使用 Hadoop,但你的分析工具應該與它密切相關,而不是敬而遠之。




如果你還沒有找到答案,這里有一個平衡的方法。從事大數(shù)據(jù)分析,你不用直接用到引擎——本文指 Hadoop,但你仍然需要它的全部效能。為了實現(xiàn)這一目標,你需要一個技術的分析工具來駕馭該技術,而不會否定或忽略它。在技術工具和 BI 用戶之間有重要的中間地帶。找到它,你將走上正軌。
Hadoop的前景

Hadoop 沒有死,這毋庸置疑。Hadoop 是非常強大的關鍵技術。但它也是基礎設施,它不會成為大數(shù)據(jù)的典型代表。Hadoop  (或 Spark)應該嵌入在其他技術和產(chǎn)品中。這樣一來,這些技術就可以利用 Hadoop (或 Spark)的強大功能,而不暴露其復雜性。

Hadoop 正如 TCP/IP 一樣,問題是人們?nèi)绾问褂盟H绻阆胍獜氖麓髷?shù)據(jù)分析,那么請使用利用 Hadoop 功能的大數(shù)據(jù)分析軟件。如果你這樣做,Hadoop 將會復活,這不是靠魔法,而是靠常識。

原文鏈接:
https://www.datameer.com/company/datameer-blog/hate-hadoop-youre-doing-it-wrong/

原作者 Andrew Brust
編譯 CDA 編譯團隊
本文為  CDA 數(shù)據(jù)分析師原創(chuà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(); // 調用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調,回調的第一個參數(shù)驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 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); }