大數據,hadoop,spark,mahout的學習路線和需要的基礎知識,以及掌握到什麼程度?
我是普通二本的大三學生,我的老師(雲計算與虛擬化方向)推薦我學習的大數據方向。現在面臨就業的問題,想參加abt校招 。懇求大數據方向的大牛們的寶貴建議。主要是大數據基礎知識的積累方面。我很喜歡這個方向,希望能找到這方面工作。
等你先學完:數據挖掘概念與技術,機器學習這兩本書,再來問數據分析方向的學習路線。基礎知識?看上面兩本書。
要看你想做系統還是做分析。分析的話hadoop是需要掌握的工具之一,你可以在linux上裝好hadoop以及hive,pig等,其實不難。在這之前sql是基礎,這些是數據處理的工具
分析工具有sas,spss,r,python,java等等,建議熟悉下sas,對你找工作會有用,但我推薦主要鑽研真正的編程語言python,java和c++,要不然會很局限,連最簡單的在線演算法都沒辦法實現
同時要熟悉模型,各種分類聚類的演算法,這個比較雜
系統的話我不了解
這些東西短時間不好全部掌握,你可以考慮讀個研,裡面坑真的不少,經常會發現,尼瑪怎麼又有完全不了解的東西。這種感覺特別崩潰,從你現在的地方開始出發,可能要很久才能達到你想像中的高大上,要出發的話做好準備
ps: 不想當將軍的士兵不是好士兵,就算一開始別人只讓你用excel,還是需要熟悉sql和python或者其他工具,要不然機會來了怎麼把握呢。況且要真能把東西學好,要找個合適的工作也不難大數據應用領域廣泛,各領域採用技術的差異性還是比較大的。短時間很難掌握多個領域的大數據理論和技術,建議從應用切入、以點帶面,先從一個實際的應用領域需求,搞定一個一個技術點,有一定功底之後,再舉一反三橫向擴展,這樣學習效果就會好很多。
如果還只是基礎知識學習階段,那就實踐和理論並行兩條線進行學習
一是熟悉相關環境,Linux下面Hadoop組件的安裝和基本使用?Spark組件的基本使用?多查找相關技術教程進行動手實踐,當然必須是至少3-5台節點的分散式環境,偽分散式限制太多;熟悉重點跟數據處理方向有關,老式批處理Hadoop Mapreduce,內存處理Spark RDD,實時流處理Storm等,當然機器學習演算法也是需要應用和理解的,Mahout被下架了?SparkMLlib,或者開源的Python機器學習庫都是需要熟悉的,打怪升級就要看看深度學習庫,Tensorflow, Keras等等。。。
二是熟悉相關理論和演算法,這個不多說了,多讀書、讀好書吧。Hadoop,Spark,機器學習,數據挖掘, 分散式計算,人工智慧,深度學習。。各種書太多太多。機器學習入門:南京大學周志華的西瓜書,華為李航的統計學習方法是必須掌握的兩本!基本覆蓋了機器學習、數據挖掘、人工智慧等相關領域的主流理論和演算法!
有興趣的朋友可到我博客進行交流探討:
http://www.datagold.com.cn/dsd
作為程序員,不管技術牛不牛,能不能好好說話,能不能不黑新手。不管你有多牛,總有人會把你當成新手,只不過段位不同而已
啥都不說了,先找機器把hadoop hive hbase zookeeper這些鬼都裝上吧,包你爽
我又要說不好聽的話了
大數據也分系統和演算法兩個大方向,不知道你是指的哪個。
無論如何,基礎都是CS專業核心課程。
如果學有餘力,看看大數據相關業務需求,系統架構。
如果我是面試官,代碼題答的不好,估計其他問題我也不會問了。先搭個本地Hadoop集群,再寫一下簡單的數據處理任務,遇到問題就查,慢慢你就知道要學什麼以及要怎麼學了。
2014年參加了什麼ccf大數據競賽,因為沒跑出來數據集,得了一個成功參賽獎啊。。。
不多說,這玩意你參加了就知道了,都是那麼回事,還是老老實實把代碼寫好,好好學演算法吧。利益相關:二本,SE,大二。如果你已經學好數學、語言、演算法、體系結構了的話,知乎「數據挖掘」標籤下已經有不少資料了,去看看吧...
推薦閱讀:
※MapReduce和Spark主要解決哪些方面的問題?
※Spark可以完全替代hadoop嗎?
※為什麼在中國搞不出 Spark 和 Hadoop 這種東西?
※想轉行做大數據技術相關的工作,需要學習語言還是學什麼?
※分散式資料庫下子查詢和join等複雜sql如何實現?