前言:html
畢業兩年了,以前的工做一直沒有接觸過大數據的東西,對hadoop等比較陌生,因此最近開始學習了。對於我這樣第一次學的人,過程仍是充滿了不少疑惑和不解的,不過我採起的策略是仍是先讓環境跑起來,而後在能用的基礎上在多想一想爲何。java
經過這三個禮拜(基本上就是週六週日,其餘時間都在加班啊T T)的探索,我目前主要完成的是:node
1.在Linux環境中僞分佈式部署hadoop(SSH免登錄),運行WordCount實例成功。 http://www.cnblogs.com/PurpleDream/p/4009070.html linux
2.本身打包hadoop在eclipse中的插件。 http://www.cnblogs.com/PurpleDream/p/4014751.htmlweb
3.在eclipse中訪問hadoop運行WordCount成功。 http://www.cnblogs.com/PurpleDream/p/4021191.html apache
因此我下邊會分三次記錄下個人過程,爲本身之後查閱方便,要是能幫助到其餘人,天然是更好了!瀏覽器
===============================================================長長的分割線====================================================================服務器
正文:eclipse
個人部署環境是以前在阿里雲購買的Linux雲服務器(你們用本身的linux環境,或者搭個VM虛擬機也是能夠滴),系統是CentOS6.X,以前須要本身安裝好JDK,我安裝的是1.6的,注意這個後邊在安裝完hadoop後,也須要給Hadoop配置JAVA_HOME,否則會報錯。分佈式
在安裝hadoop以前,咱們須要先配置SSH免登錄,若是不配置的話,咱們後邊在啓動hadoop時,都將須要輸入密碼,到時會很麻煩,這個網上有不少資料,也能夠參考個人另一篇博客:http://www.cnblogs.com/PurpleDream/p/4012328.html 。注意,個人基本與網上步驟一致,這個也是我當初參考網上的步驟,在執行的時候根據本身的狀況稍加修改,就能夠了。
安裝hadoop首先是下載hadoop,因爲我參考的《hadoop實戰》這本書,因此爲了更接近書中的內容,同時也考慮到高版本的hadoop涉及的東西會更多,不利於我這樣的初學者學習,因此我選擇hadoop-1.0.1這個版本。下邊的網址中是完整的hadoop版本的下載列表,也能夠根據本身的須要去下載:http://archive.apache.org/dist/hadoop/core/。
我下載的是hadoop-1.0.1.tar.gz,經過SSH工具上傳到linux服務器的目錄中(個人是:/myself_setted/hadoop),而後利用解壓縮命令「tar -zxvf hadoop-1.0.1.tar.gz」解壓到當前目錄。
進入解壓縮後的目錄(個人是:/myself_setted/hadoop/hadoop-1.0.1),進入conf文件夾,進行配置:
1.首先打開hadoop-env.sh文件,修改配置文件以下:export JAVA_HOME=/usr/java/jdk1.6.0_35 注意,此處的jdk路徑是以前在安裝JDK時配置的路徑,不要寫錯,若是配置有誤,後邊在啓動hadoop時,會報找不到java的錯誤。
2.而後在打開core-site.xml文件,這裏配置的是HDFS的地址及段口紅,配置以下:
<configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration>
3.再打開hdfs-site.xml文件,配置的備份方式默認是3,在咱們這種僞分佈式部署方式中,須要將其配置爲1
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
4.最後是MapReduce的配置文件,打開mapred-site.xml,配置JobTracker的地址和端口
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
經過上邊的四步,咱們已經完成了基本的配置工做,在啓動hadoop前,咱們還須要格式化hadoop,咱們須要將目錄切換到解壓縮後的根目錄(個人是:/myself_setted/hadoop/hadoop-1.0.1),依次執行如下命令:
1.bin/hadoop namenode -format
2.bin/hadoop datanode -format
3.bin/start-all.sh
經過上邊的三步,咱們能夠認爲咱們的hadoop已經啓動,可是咱們還須要驗證啓動是否有問題,驗證的方法比較多,我就說說我用的(如下的驗證方法是並列的關係,不是前後繼承關係):
1.打開瀏覽器,分別輸入網址http://localhost:50030(MapReduce的web頁面);http://localhost:50070(HDFS的web頁面)。因爲個人是雲服務器,因此我本身的在查看的時候,localhost替換爲服務器的公網IP
2.在linux環境下,輸入JPS,查看關於hadoop的進程是否完整,完整事例以下(進程號不定哈):
4113 TaskTracker 4006 JobTracker 26640 Jps 3680 NameNode 3911 SecondaryNameNode 3788 DataNode
固然若是上邊的驗證基本沒有問題,我相信你已經接近成功了,下邊咱們將具體執行一個「做業」,來驗證咱們的環境。咱們運行的例子就是hadoop中的hello word程序,即WordCount,顧名思義就是計算單詞的出現次數,步驟以下:
1.在以上的hadoop啓動的狀況下,咱們首先在hadoop-1.0.1的根目錄(個人是:/myself_setted/hadoop/hadoop-1.0.1),創建一個文件夾叫test,而後咱們再test文件夾(/myself_setted/hadoop/hadoop-1.0.1/test)中簡歷一個a.txt的文件,內容如
下(注意,此步驟中創建的文件夾的位置以及文件夾中文件的名字和內容,你能夠隨意設定路徑和內容,主要你在下邊的2和3三步中上傳文件到HDFS上時,必定要把路徑寫正確):
aa bb cc ee aa ee ff
2.在hdfs中創建一個輸入文件夾: bin/hadoop fs -mkdir /input。注意我執行此命令時所在的目錄是hadoop-1.0.1的根目錄(個人是:/myself_setted/hadoop/hadoop-1.0.1)
3.將a.txt放入到2中hdfs的輸入文件夾中:bin/hadoop fs -put test/a.txt /input。注意我執行此命令時所在的目錄是hadoop-1.0.1的根目錄(個人是:/myself_setted/hadoop/hadoop-1.0.1)
4.這時若是咱們在執行bin/hadoop fs -ls /input這個命令時,若是以前的步驟正確的話,咱們將看到列出了一個a.txt的文件。注意我執行此命令時所在的目錄是hadoop-1.0.1的根目錄((個人是:/myself_setted/hadoop/hadoop-1.0.1)
5.通過上邊的4步,咱們下邊還有最後一個命令,那就是執行做業。咱們看下hadoop-1.0.1的根目錄(個人是:/myself_setted/hadoop/hadoop-1.0.1,有一個hadoop-examples-1.0.1.jar這個jar包,這裏面打包了一些hadoop自帶的例子,咱們要運行的WordCount方法就是這個包中,執行命令以下:bin/hadoop jar hadoop-examples-1.0.1.jar wordcount /input /output,
6.根據提示,若是出現map 100% reduce 100%等字樣,咱們就能夠經過bin/hadoop fs -ls /output命令查看/output文件夾中統計結果了。