標籤:

數據之路(Hadoop)我該如何打好基礎?

大家好,目前我正在做hadoop相關工作,已經有3個月了,公司目前讓我負責來做正在探索階段,兩個月下來收穫不少,但是仍然感覺力不從心,我很珍惜這個機會。做了web1年多,現在轉來hadoop,希望大家給一些指導,對編碼很感興趣,一時間覺得要學習和掌握的東西太多,像數據結構,操作系統,基礎忘記了,我現在也認識到hadoop僅是工具,如果想做好,學好,需要強大的基礎做後盾,所以我有了這個疑問。我目前主要做Hadoop的調試開發等等。具體業務應該尤其他業務人員來完成!~


不是說你懂Hadoop本身就成了,Hadoop本身在技術的地位應該是比較頂層的。你必須先了解Linux OS/Java/資料庫/多線程/並發/分散式/基礎的數據結構演算法/等等才能說:「OK,開始搞Hadoop」。


還是不太明白公司具體是讓你做什麼。

我司的情況是有一個小組專門做Hadoop的調試、升級、開發,而其他所有研發人員,都可以按照他們所給手冊進行代碼編寫,從而把自己的計算放到hadoop上去運行。

=======

hadoop小組,並不關心具體的數據分析和運算業務,主要做:

1. hadoop的配置優化、調試、封裝介面(和公司內語言、RPC、基礎庫等配合)。

2. hadoop調度器的優化。(面對公司內不同業務需求關係,調整資源調度策略)

3. HBase、Hive、Zookeeper、Pig等子系統的配置優化、調試、優化開發。

在這方面,主要是需要這些知識:Linux系統底層(特別是CPU、內存、硬碟、網路分配與使用),調度方面的演算法,複雜系統的了解與調試,紮實的代碼功底(相關介面、功能經過充分設計和測試),用到的數據結構。

幾個子系統會要求更多,HBase的數據結構和序列化,zookeeper的paxos邏輯,等等。

=======

其他所有業務部門,當有大計算需求的時候,都會用到hadoop。

hadoop本身的使用邏輯倒是很簡單,hdfs就是個穩定的文件存儲,mapreduce就是map/reduce,複雜了還可以自定義partition、sort、combine等步驟。

困難的是面對具體問題時,如何尋找一個可行的處理演算法,如何將現有的一個經典演算法轉換到map/reduce的邏輯上去。

這方面就沒有什麼固定模式了,具體業務具體分析。主要是考驗演算法掌握和變換的能力。


hadoop本身是工具,學習好原理。用好hive和hbase初步去解決業務問題。另外,要看公司的最終目標。如果偏向數據分析的話,還是要打好數學基礎以及統計學方面的知識。


推薦閱讀:

什麼是自助式BI?和傳統BI(商業智能)相比有何優劣勢?
生產環境下cloudera的cdh版本更受歡迎,但是貌似cloudera對於YARN的開發力度不是很突出,所以在apache與cdh版本選擇的時候,大家是怎麼考慮的?
ArcGIS 有什麼奇技淫巧?
大數據實驗手冊怎麼自己搭環境?
為什麼有的hadoop課程會講授python?

TAG:Hadoop |