好程式設計師大資料培訓簡述Hadoop常見問題

好程式設計師發表於2020-09-29

   好程式設計師大資料培訓簡述Hadoop 常見問題,近期有不少剛剛接觸或者是剛參加大資料培訓的小夥伴詢問 Hadoop 常見問題有哪些,下面是簡單整理的一些內容,現在分享給大家,希望對小夥伴們有所幫助。

   1 、現在企業中使用 Hadoop 版本主要是 1.x 還是 2.x?

   目前百度,騰訊,阿里為主的網際網路公司都是以hadoop

   a.X 為基準版本的,當然每個公司都會進行自定義的二次開發以滿足不同的叢集需求。

   b.X 在百度內部還沒有正式使用,還是以 1.X 為主,不過百度針對 1.X 的問題開發了 HCE 系統 (HadoopC++Expand 系統 )

   補充:Hadoop2.x 在其他公司應用的很多,比如京東等。

   2 、以後想從事大資料方面工作,演算法要掌握到什麼程度,演算法佔主要部分嗎 ?

   首先,如果要從事大資料相關領域的話,hadoop 是作為工具來使用的,首先需要掌握使用方法。可以不用深入到 hadoop 原始碼級別細節。

   然後就是對演算法的理解,往往需要設計到資料探勘演算法的分散式實現,而演算法本身你還是需要理解的,例如常用的k-means 聚類等。

   3 、現在 spark storm 越來越火,谷歌也釋出了 Cloud Dataflow ,是不是 Hadoop 以後主要應該學習 hdfs yarn ,而且以後 Hadoop 程式設計師的主要做的就是把這些東西打包,只提供介面讓普通的程式設計師也能使用,就像 Cloudera Google 一樣 ?

   這位同學,你多慮了,hadoop spark,strom 是解決不同的問題,不存在哪個好那個壞,要學習 Hadoop 還是以主流的 hadoop-1.X 為版本, 2.X 最主要的就是多了 yarn 框架,很好理解的。如果你是 hadoop 本身研發建議都看,如果你是 hadoop 應用相關研發,看主流的 1.X 就行。

   4 、小白問一句,大資料處理都是伺服器上安裝相關軟體嗎,對程式有什麼影響呢,叢集、大資料是屬於運維的工作內容還是攻城獅的呢 ?

   傳統的程式只能執行在單機上,而大資料處理這往往使用分散式程式設計框架編寫,例如hadoopmapreduce ,只能執行在 hadoop 叢集平臺上。

   運維的責任:保證叢集,機器的穩定性和可靠性

   hadoop 系統本身研發:提高 Hadoop 叢集的效能,增加新功能。

   大資料應用:把hadoop 作為工具,去實現海量資料處理或者相關需求。

   5 、大的檔案拆分成很多小的檔案後,怎樣用 Hadoop 進行高效的處理這些小檔案 ? 以及怎樣讓各個節點儘可能的負載均衡 ?

   a. 怎樣用 Hadoop 進行高效的處理這些小檔案 ?

   hadoop 在處理大規模資料時是很高效的,但是處理大量的小檔案時就會因為系統資源開銷過大而導致效率較低,針對這樣的問題,可以將小檔案打包為大檔案,例如使用 SequcenFile 檔案格式,例如以檔案簽名為 key ,檔案內容本身為 value 寫成 SequcenFile 檔案的一條記錄,這樣多個小檔案就可以透過 SequcenFile 檔案格式變為一個大檔案,之前的每個小檔案都會對映為 SequcenFile 檔案的一條記錄。

   b. 怎樣讓各個節點儘可能的負載均衡 ?

   hadoop 叢集中負載均衡是非常關鍵的,這種情況的導致往往是因為使用者的資料分佈的並不均衡,而計算資源槽位數確實均衡分佈在每個節點,這樣在作業執行時非本地任務會有大量的資料傳輸,從而導致叢集負載不均衡,因此解決不均衡的要點就是將使用者的資料分佈均衡,可以使用 hadoop 內建的 balancer 指令碼命令。

   對於因為資源排程導致的不均衡則需要考慮具體的排程演算法和作業分配機制。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2725026/,如需轉載,請註明出處,否則將追究法律責任。

相關文章