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

熱線電話:13121318867

登錄
首頁精彩閱讀Hadoop常見問題解答
Hadoop常見問題解答
2018-07-23
收藏

Hadoop常見問題解答

(1)Hadoop適不適用于電子政務(wù)?為什么?

電子政務(wù)是利用互聯(lián)網(wǎng)技術(shù)實現(xiàn)政府組織結(jié)構(gòu)和工作流程的重組優(yōu)化,建成一個精簡、高效、廉潔、公平的政府運作信息服務(wù)平臺。因此電子政務(wù)肯定會產(chǎn)生相關(guān)的大量數(shù)據(jù)以及相應(yīng)的計算需求,而這兩種需求涉及的數(shù)據(jù)和計算達到一定規(guī)模時傳統(tǒng)的系統(tǒng)架構(gòu)將不能滿足,就需要借助海量數(shù)據(jù)處理平臺,例如Hadoop技術(shù),因此可以利用Hadoop技術(shù)來構(gòu)建電子政務(wù)云平臺。

總結(jié)一下,任何系統(tǒng)沒有絕對的適合和不適合,只有當(dāng)需求出現(xiàn)時才可以決定,在一個非常小的電子政務(wù)系統(tǒng)上如果沒有打數(shù)據(jù)處理以及計算分析需求時就不需要hadoop這樣的技術(shù),而實際上,商用的電子政務(wù)平臺往往涉及到大規(guī)模的數(shù)據(jù)和大量的計算分析處理需求,因此就需要Hadoop這樣的技術(shù)來解決。

(2)hadoop對于實時在線處理有優(yōu)勢嗎?
直接使用hadoop進行實時處理時沒有優(yōu)勢的,因為Hadoop主要解決的是海量批處理作業(yè)計算問題,但是可以使用基于Hadoop的分布式NOSQL系統(tǒng)HBase系統(tǒng)以及相關(guān)實時處理系統(tǒng):
1. 基于Hadoop的HBase可以做到實時處理以及相關(guān)需求的實時計算,主要解決海量<key,value>相關(guān)查詢計算等需求。
2. 可以考慮Spark計算,Spark是基于共現(xiàn)內(nèi)存RDD的系統(tǒng),比Hadoop更快,時候迭代式計算,例如數(shù)據(jù)挖掘機器學(xué)習(xí)算法等。
3. 還有Storm,Storm是一個免費開源、分布式、高容錯的實時計算系統(tǒng),Storm經(jīng)常用于在實時分析、在線機器學(xué)習(xí)、持續(xù)計算、分布式遠程調(diào)用和ETL等領(lǐng)域。
4. 考慮S4, S4是Yahoo!在2010年10月開源的一套通用、分布式、可擴展、部分容錯、具備可插拔功能的平臺。這套平臺主要是為了方便開發(fā)者開發(fā)處理流式數(shù)據(jù)(continuous unbounded streams of data)的應(yīng)用。
你可以依據(jù)實際的需求來選擇合適的系統(tǒng)。
(3)Hadoop存儲海量數(shù)據(jù)沒有問題,但是如何能夠做到海量數(shù)據(jù)的實時檢索?
1,可以結(jié)合開源的搜索引擎Apache Lucene,Solr 或ElasticSearch
2,海量數(shù)據(jù)的實時檢索可以考慮HBase,建議可以使用hadoop將數(shù)據(jù)構(gòu)建成以查詢key為鍵的數(shù)據(jù)集,然后將<key, value>集合寫入Hbase表中,Hbase會自動以key為鍵進行索引,在數(shù)十億甚至以上的級別下,查詢key的value響應(yīng)時間也估計再10毫秒內(nèi)。
如果檢索條件是多個組合的情況下,可以適當(dāng)?shù)脑O(shè)計多個hbase表格,這樣的檢索也是很快的,同時Hbase也是支持二級索引。在符合條件下查詢,Hbase也是支持MapReduce的,如果對響應(yīng)時間要求不高的情況下,可以考慮將hive和Hbase系統(tǒng)結(jié)合來使用。
如果數(shù)據(jù)量不是很大的情況下也可以考慮支持類似SQL的NOSLQ系統(tǒng)。
(4)能不能給點hadoop的學(xué)習(xí)方法以及學(xué)習(xí)規(guī)劃,hadoop系統(tǒng)有點龐大,感覺無從學(xué)起?
首先搞清楚什么是hadoop以及hadoop可以用來做什么?
然后,可以從最經(jīng)典的詞頻統(tǒng)計程序開始,初步了解MapReduce的基本思路和處理數(shù)據(jù)的方式。
接著,就可以正式學(xué)習(xí)hadoop的基本原理,包括HDFS和MapReduce,先從整體,宏觀核心原理看,先別看源碼級別。
進一步,就可以深入HDFS和MapReduce和模塊細節(jié),這個時候可以結(jié)合源碼深入理解,以及實現(xiàn)機制。
最后就是需要實戰(zhàn)了,可以結(jié)合自己的項目或者相關(guān)需求來完成一些hadoop相關(guān)應(yīng)用。
(5) 大的文件拆分成很多小的文件后,怎樣用Hadoop進行高效的處理這些小文件?以及怎樣讓各個節(jié)點盡可能的負載均衡?
1. 怎樣用Hadoop進行高效的處理這些小文件?
你這個問題提的很好,hadoop在處理大規(guī)模數(shù)據(jù)時是很高效的,但是處理大量的小文件時就會因為系統(tǒng)資源開銷過大而導(dǎo)致效率較低,針對這樣的問題,可以將小文件打包為大文件,例如使用SequcenFile文件格式,例如以文件簽名為key,文件內(nèi)容本身為value寫成SequcenFile文件的一條記錄,這樣多個小文件就可以通過SequcenFile文件格式變?yōu)橐粋€大文件,之前的每個小文件都會映射為SequcenFile文件的一條記錄。
2. 怎樣讓各個節(jié)點盡可能的負載均衡?
在hadoop集群中負載均衡是非常關(guān)鍵的,這種情況的導(dǎo)致往往是因為用戶的數(shù)據(jù)分布的并不均衡,而計算資源槽位數(shù)確實均衡分布在每個節(jié)點,這樣在作業(yè)運行時非本地任務(wù)會有大量的數(shù)據(jù)傳輸,從而導(dǎo)致集群負載不均衡,因此解決不均衡的要點就是將用戶的數(shù)據(jù)分布均衡,可以使用hadoop內(nèi)置的balancer腳本命令。
對于因為資源調(diào)度導(dǎo)致的不均衡則需要考慮具體的調(diào)度算法和作業(yè)分配機制。
(6)c/c++ 程序員如何入門Hadoop到深入了解,并在Linux服務(wù)器上布置運用,有沒有方向性的指導(dǎo)?
針對C/C++用戶,Hadoop提供了hadoop streaming接口和pipes接口,hadoop streaming接口以標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出作為用戶程序和hadoop框架交互的中間件,pipes這是專門針對C/C++語言的接口,以socket作為同學(xué)中介。
從使用上建議從streaming入手,pipes相比streaming問題比較多,而且pipes調(diào)試不容易。
(7)現(xiàn)在企業(yè)中使用Hadoop版本主要是1.x還是2.x?
目前百度,騰訊,阿里為主的互聯(lián)網(wǎng)公司都是以hadoop 1.X為基準(zhǔn)版本的,當(dāng)然每個公司都會進行自定義的二次開發(fā)以滿足不同的集群需求。
2.X在百度內(nèi)部還沒有正式使用,還是以1.X為主,不過百度針對1.X的問題開發(fā)了HCE系統(tǒng)(Hadoop C++ Expand系統(tǒng))
補充,Hadoop2.x在其他公司應(yīng)用的很多,比如京東
(8)以后想從事大數(shù)據(jù)方面工作,算法要掌握到什么程度,算法占主要部分嗎?
首先,如果要從事大數(shù)據(jù)相關(guān)領(lǐng)域的話,hadoop是作為工具來使用的,首先需要掌握使用方法??梢圆挥蒙钊氲絟adoop源碼級別細節(jié)。
然后就是對算法的理解,往往需要設(shè)計到數(shù)據(jù)挖掘算法的分布式實現(xiàn),而算法本身你還是需要理解的,例如常用的k-means聚類等。
(9)現(xiàn)在spark,storm越來越火,谷歌也發(fā)布了Cloud Dataflow,是不是Hadoop以后主要應(yīng)該學(xué)習(xí)hdfs和yarn,而且以后Hadoop程序員的主要做的就是把這些東西打包,只提供接口讓普通的程序員也能使用,就像Cloudera和Google一樣?
這位同學(xué),你多慮了,hadoop和spark, strom是解決不同的問題,不存在哪個好那個壞,要學(xué)習(xí)Hadoop還是以主流的hadoop-1.X為版本,2.X最主要的就是多了yarn框架,很好理解的。
如果你是hadoop本身研發(fā)建議都看,如果你是hadoop應(yīng)用相關(guān)研發(fā),看主流的1.X就行,我的書《Hadoop核心技術(shù)》是以主流的1.X為版本講解的,有興趣可以看看。
(10)小白問一句,大數(shù)據(jù)處理都是服務(wù)器上安裝相關(guān)軟件嗎,對程序有什么影響呢,集群、大數(shù)據(jù)是屬于運維的工作內(nèi)容還是攻城獅的呢?
傳統(tǒng)的程序只能運行在單機上,而大數(shù)據(jù)處理這往往使用分布式編程框架編寫,例如hadoop mapreduce,只能運行在hadoop集群平臺上。
運維的責(zé)任:保證集群,機器的穩(wěn)定性和可靠性
hadoop系統(tǒng)本身研發(fā):提高Hadoop集群的性能,增加新功能。
大數(shù)據(jù)應(yīng)用:把hadoop作為工具,去實現(xiàn)海量數(shù)據(jù)處理或者相關(guān)需求。
(11)學(xué)習(xí)hadoop該怎么入手呢?應(yīng)該做一些什么樣的項目呢?
可以參考我上面的幾個回答,可以從最簡單詞頻統(tǒng)計程序入手,然后學(xué)習(xí)理解HDFS和MapReduce的基本原理和核心機制,如果僅僅把Hadoop作為一個工具來使用的話這樣就可以了,最重要的就是實戰(zhàn)了,可以嘗試使用Hadoop處理一些數(shù)據(jù),例如做日志分析,數(shù)據(jù)統(tǒng)計,排序,倒排索引等典型應(yīng)用。
(12)100個以上hadoop節(jié)點,一般怎么開發(fā),運維?任務(wù)很多的情況下任務(wù)資源怎么分配,任務(wù)執(zhí)行順序是定時腳本還是別的什么方式控制?
1. 首先大數(shù)據(jù)的應(yīng)用開發(fā)和hadoop集群的規(guī)模是沒有關(guān)系,你指的是集群的搭建和運維嗎,對于商用的hadoop系統(tǒng)來說涉及到很多東西,建議參考《hadoop核心技術(shù)》實戰(zhàn)篇 “第10章 Hadoop集群搭建 ” 章節(jié)。
2. 任務(wù)的分配是有hadoop的調(diào)度器的調(diào)度策略決定的,默認為FIFO調(diào)度,商業(yè)集群一般使用多隊列多用戶調(diào)度器,可以參考參考《hadoop核心技術(shù)》高級篇 “第9章 Hadoop作業(yè)調(diào)度系統(tǒng)” 章節(jié)。
3. 任務(wù)的執(zhí)行順序是有用戶控制的,你自然可以定時啟動,也可以手動啟動。
(13)基于Hadoop做開發(fā),是否必須會使用Java,使用其他開發(fā)語言是否無法更好的融入整個Hadoop的開發(fā)體系?
基于Hadoop做開發(fā)可以使用任何語言,因為hadoop提高了streaming編程框架和pipes編程接口,streaming框架下用戶可以使用任何可以操作標(biāo)準(zhǔn)輸入輸出的計算機語言來開發(fā)hadoop應(yīng)用。
(14)在reduce階段老是卡在最后階段很長時間,在網(wǎng)上查的說是有可能是數(shù)據(jù)傾斜,我想問這個有啥解決方法嗎?
1,你這個就是數(shù)據(jù)傾斜啊 好多數(shù)據(jù)都集中在一個reduce里 其他reduce里分配的數(shù)據(jù)比較少 默認情況下決定哪些數(shù)據(jù)分配到哪個reduce是由reduce個數(shù)和partiiton分區(qū)決定的 默認是對key進行hash運算 一般情況下用mapreuce傾斜很少 除非你用的HIVE
2,reduce分為3個子階段:shuffle、sort和reduce,如果reduce整個過程耗時較長,建議先看一下監(jiān)控界面是卡在哪個階段,如果是卡在shuffle階段往往是網(wǎng)絡(luò)阻塞問題,還有就是某reduce數(shù)據(jù)量太大,也就是你所說的數(shù)據(jù)傾斜問題,這種問題往往因為某個key的value太多,解決方法是:第一,默認的partiiton可能不適合你的需求,你可以自定義partiiton;第二就是在map端截斷,盡量讓達到每個reduce端的數(shù)據(jù)分布均勻。
(15)非大數(shù)據(jù)的項目能否用hadoop?
非大數(shù)據(jù)項目是否可以用Hadoop的關(guān)鍵問題在于是否有海量數(shù)據(jù)的存儲,計算,以及分析挖掘等需求,如果現(xiàn)有系統(tǒng)已經(jīng)很好滿足當(dāng)前需求那么就沒有必要使用Hadoop,沒有必要使用并不意味這不能使用Hadoop,很多傳統(tǒng)系統(tǒng)能做的Hadoop也是可以做的,例如使用HDFS來代替LINUX NFS,使用MapReduce來代替單服務(wù)器的統(tǒng)計分析相關(guān)任務(wù),使用Hbase代替Mysql等關(guān)系數(shù)據(jù)庫等,在數(shù)據(jù)量不大的情況下通常Hadoop集群肯定比傳統(tǒng)系統(tǒng)消耗更多的資源。
(16)hadoop mapreduce 和第三方資源管理調(diào)度系統(tǒng)如何集成?
Hadoop的調(diào)度器設(shè)計的一個原則就是可插拔式調(diào)度器框架,因此是很容易和第三方調(diào)度器集成的,例如公平調(diào)度器FairScheduler和容量調(diào)度器CapacityScheduler,并配置mapred-site.xml的mapreduce.jobtracker.taskscheduler以及調(diào)度器本身的配置參數(shù),例如公平調(diào)度器控制參數(shù)則需要編輯fair- scheduler.xml進行配置,具體可以參考我的新書《Hadoop核心技術(shù)》實戰(zhàn)篇第十章節(jié)10.11的集群搭建實例中的10.10.9 配置第三方調(diào)度器,同時可以進一步深入學(xué)習(xí)第9章 Hadoop作業(yè)調(diào)度系統(tǒng),在這一章中會詳細介紹各種第三方調(diào)度器以及使用配置方法。


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