Hadoop1 Centos偽分布式部署


前言:

      畢業兩年了,之前的工作一直沒有接觸過大數據的東西,對hadoop等比較陌生,所以最近開始學習了。對於我這樣第一次學的人,過程還是充滿了很多疑惑和不解的,不過我采取的策略是還是先讓環境跑起來,然后在能用的基礎上在多想想為什么。

      通過這三個禮拜(基本上就是周六周日,其他時間都在加班啊T T)的探索,我目前主要完成的是:

  1.在Linux環境中偽分布式部署hadoop(SSH免登陸),運行WordCount實例成功。  http://www.cnblogs.com/PurpleDream/p/4009070.html 

      2.自己打包hadoop在eclipse中的插件。  http://www.cnblogs.com/PurpleDream/p/4014751.html

      3.在eclipse中訪問hadoop運行WordCount成功。 http://www.cnblogs.com/PurpleDream/p/4021191.html 

      所以我下邊會分三次記錄下我的過程,為自己以后查閱方便,要是能幫助到其他人,自然是更好了!

 

===============================================================長長的分割線====================================================================

正文:

       我的部署環境是之前在阿里雲購買的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文件夾中統計結果了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM