首先我以爲應該思考這樣一個問題:Hadoop對於咱們來說,是一種工具,那麼Hadoop幫助咱們解決了什麼問題?或者換個角度想,沒有Hadoop,咱們作一樣一項工做會增長什麼任務?(想清楚了這問題,內心就會造成Hadoop究竟是什麼,能作什麼的概念。初學者在最初時候很容易框架當成負擔,但實際上他應該是工具。明白了Hadoop這個神器的美妙後,你就能夠開始心懷期待的去慢慢駕馭它了。)java
初學Hadoop,最基礎的也就是HDFS和Mapreduce了,HDFS是一個分佈式存儲文件系統,Mapreduce是一個分佈式計算的框架,二者結合起來,就能夠很容易作一些分佈式處理任務了。做爲入門,先只須要學習這兩樣就夠了。web
好了,那就開始講一下怎麼學習這兩樣。編程
一、首先你確定要搭建好環境。(這些網上教程不少。)而後,找一篇講Hdfs java API的文章HDFS API詳解把其中的例子跑一下,感覺一下就能夠了。(只須要只要有哪些API,大概怎麼用,之後要用,直接在裏面找,或者查看API文檔。)框架
二、而後就是Mapreduce了。說簡單一點,這就是一個編程接口,這個框架幫咱們抽象了不少分佈式處理的細節,咱們只須要簡單的編寫mapreduce任務就能夠了。要想編寫mapreduce程序,首先你應該弄清楚mapreduce的基本流程Hadoop -- MapReduce過程,而後要清楚,咱們本身編程寫mapreduce任務須要編寫哪些東西(就是哪些部分是能夠重寫,應該重寫的)。看懂了這些(最好要運行一些這些程序),你基本就能夠寫一些mapreduce程序,處理一些簡單的任務了。(至於mapreduce高級運行,好比定製數據類型、patitioner、組合任務等等這些,你只要知道有這些就能夠了,須要用的時候再仔細看。)分佈式
還有谷歌的那篇MapReduce_Simplified_Data_Processing_on_Large_Clusters能夠多讀幾遍,能夠解決你心中對於mapreduce框架的不少疑問。工具
我以爲知道了這些,基本就是入門了。而後再要深刻學習,你就能夠根據本身的須要去學了(這個時候你應該也知道該怎麼學了)。至於hadoop衍生的那些HIVE、Pig等等,我以爲只須要知道有那些東西,知道那些能作什麼就能夠了。由於咱們的目的只是把Hadoop做爲工具。若是是其餘目的,你能夠看看mapreduce源碼分析之類吧。我暫時沒搞這些,不懂,就很少說了。oop
做者:餘是 來源:知乎源碼分析
自學Hadoop仍是比較艱難的尤爲到了後期,沒有老師指導很容易學偏,且拉長學習週期。自學的話也會缺乏一個爲你背書,保證你學習成績有效性的機構。我是大講臺運營老師,已經有不少小夥伴在大大講臺這家專業的最實用的Hadoop在線機構學習,自學那麼辛苦,不妨來大講臺(dajiangtai.com)看看!學習