2019-05-23 15:35:38 4666瀏覽
Hadoop的常見問題有很多,以前扣丁學堂大數據培訓小編也曾給讀者們分享過一些,本篇文章小編繼續給讀者們分享一些Hadoop常見問題解答,感興趣的小伙伴就來了解一下吧。
1、100個以上hadoop節點,一般怎么開發,運維?任務很多的情況下任務資源怎么分配,任務執行順序是定時腳本還是別的什么方式控制?
a.首先大數據的應用開發和hadoop集群的規模是沒有關系,你指的是集群的搭建和運維嗎,對于商用的hadoop系統來說涉及到很多東西。
b.任務的分配是有hadoop的調度器的調度策略決定的,默認為FIFO調度,商業集群一般使用多隊列多用戶調度器。
c.任務的執行順序是有用戶控制的,你自然可以定時啟動,也可以手動啟動。
2、基于Hadoop做開發,是否必須會使用Java,使用其他開發語言是否無法更好的融入整個Hadoop的開發體系?
基于Hadoop做開發可以使用任何語言,因為hadoop提高了streaming編程框架和pipes編程接口,streaming框架下用戶可以使用任何可以操作標準輸入輸出的計算機語言來開發hadoop應用。
3、在reduce階段老是卡在最后階段很長時間,在網上查的說是有可能是數據傾斜,我想問這個有啥解決方法嗎?
a.你這個就是數據傾斜啊,好多數據都集中在一個reduce里其他reduce里分配的數據比較少。默認情況下決定哪些數據分配到哪個reduce是由reduce個數和partiiton分區決定的默認是對key進行hash運算,一般情況下用mapreuce傾斜很少除非你用的HIVE。
b.reduce分為3個子階段:shuffle、sort和reduce,如果reduce整個過程耗時較長,建議先看一下監控界面是卡在哪個階段,如果是卡在shuffle階段往往是網絡阻塞問題,還有就是某reduce數據量太大,也就是你所說的數據傾斜問題,這種問題往往因為某個key的value太多,解決方法是:第一,默認的partiiton可能不適合你的需求,你可以自定義partiiton;第二就是在map端截斷,盡量讓達到每個reduce端的數據分布均勻。
4、非大數據的項目能否用hadoop?
非大數據項目是否可以用Hadoop的關鍵問題在于是否有海量數據的存儲,計算,以及分析挖掘等需求,如果現有系統已經很好滿足當前需求那么就沒有必要使用Hadoop,沒有必要使用并不意味這不能使用Hadoop,很多傳統系統能做的Hadoop也是可以做的。
例如使用HDFS來代替LINUX NFS,使用MapReduce來代替單服務器的統計分析相關任務,使用Hbase代替Mysql等關系數據庫等,在數據量不大的情況下通常Hadoop集群肯定比傳統系統消耗更多的資源。
5、hadoopmapreduce和第三方資源管理調度系統如何集成?
Hadoop的調度器設計的一個原則就是可插拔式調度器框架,因此是很容易和第三方調度器集成的,例如公平調度器FairScheduler和容量調度器CapacityScheduler,并配置mapred-site.xml的mapreduce.jobtracker.taskscheduler以及調度器本身的配置參數。
最后想要了解更多關于大數據方面內容的小伙伴,請關注扣丁學堂大數據培訓官網、微信等平臺,扣丁學堂IT職業在線學習教育平臺為您提供權威的大數據視頻,大數據培訓后的前景無限,行業薪資和未來的發展會越來越好的,扣丁學堂老師精心推出的大數據在線教程定能讓你快速掌握大數據從入門到精通開發實戰技能。扣丁學堂大數據學習群:209080834。
【關注微信公眾號獲取更多學習資料】 【掃碼進入HTML5前端開發VIP免費公開課】