Hadoop的初始化與設置

    上節我們修改了5個配置文件,這節我們開始學習Hadoop初始化和測試,首先我們需要Hadoop的環境變量,輸入命令:vim /etc/profile並按回車進入配置文件,如下圖所示,我們添加的內容是下面紅色圈住的內容。

        編輯完之後我們按ESC鍵進行退出編輯,然後輸入:wq保存並退出該文件,然後我們輸入命令source /etc/profile來使配置起作用,如下圖所示。

         

       接下來我們開始初始化HDFS(格式化文件系統),格式化之前我們先到hadoop2.2.0目錄,查看下該目錄下都有哪些文件,從下圖我們可以看出目前並沒有tmp這個目錄。

       

        格式化文件的命令如果我們不知道的話,可以輸入hdfs之後按回車,看提示信息,如下圖所示,我們可以知道格式化的命令是hdfs namenode -format

          我們輸入命令hdfs namenode -format並按回車後就開始進行格式化了,格式化完之後我們如果從信息中看到如下紅色圈住的內容(/itcast/hadoop-2.2.0/tmp/dfs/name has been successfully formatted)說明格式化成功了!


         格式化完之後,我們再來看看hadoop-2.2.0目錄下的文件列表,我們可以看到列表中已經有tmp這個目錄了。

         接下來我們開啓hdfs和yarn,首先我們進入sbin目錄,然後查看都有哪些腳本,我們發現有很多腳本,其中我們用到的是start-dfs.shstart-yarn.sh,當然,我們也可以直接用start-all.sh(不過已經過時了)來啓動,如下圖所示。

         我們先啓動dfs,輸入命令./start-dfs.sh並按回車,啓動過程中會多次讓你輸入yes和root賬號的密碼,如下圖所示。 

              啓動完start-dfs.sh之後,我們接着啓動start-yarn.sh,如下圖所示。

             啓動完兩個腳本之後,我們來看一下java process snapshot(jps),我們發現有6個進程,其中NameNode是HDFS的老大,DataNode是HDFS的小弟,ResourceManager是YARN的老大,NodeManager是YARN的小弟,另外SecondaryNameNode是HDFS的NameNode的助理幫助NameNode完成一些數據的同步,主要用來合併fsimage和edits文件等。這說明我們前一節配置的完全正確,一次性我們啓動成功!

            我們還可以通過瀏覽器的方式進行驗證:

            http://192.168.8.88:50070     (hdfs管理界面)
            http://192.168.8.88:8088       (yarn管理界面)

            我們先在瀏覽器地址欄輸入http://192.168.8.88:50070並回車,我們會進入以下頁面,我們可以看到頁面最上方便是NameNode的信息,該NameNode目前狀態是active狀態,說明正常,還有就是由於目前我們配置的是僞分佈式,只能有一個NameNode,等到真正的集羣時NameNode可能有多個。我們看到下面Cluster Summary表格中有一行是Live Nodes 信息顯示它有一個DataNode,我們要查看這個DataNode的詳細信息我們便點擊Live Nodes鏈接。

               點擊Live Nodes後我們進入下面這個子頁面,我們可以看到DataNode的詳細信息,真正的集羣環境下DataNode將會有很多。

         接下來我們來查看一下HDFS的文件系統,我們點擊"Browse the filesystem",我們會發現無法訪問,如下圖所示

            之所以出現如上圖那樣無法訪問的情況,是因爲瀏覽器訪問的時候是以主機名的方式訪問的,我們Windows系統還沒配置過IP和主機名的相關映射,我們
在C:\Windows\System32\drivers\etc目錄下可以找到host文件,如下圖所示:

         我們打開hosts文件在文件最下方我們配置一下IP和主機名之間的映射關係,如下圖所示,保存並關閉文件。

          然後我們刷新一下剛纔沒有加載出來的頁面,會發現可以正常顯示文件系統了,如下圖所示

           看完了HDFS的管理界面,我們接着來看yarn的管理界面,在地址欄輸入:http://192.168.8.88:8088並回車,就可以看到如下圖所示的界面。

         接下來我們開始測試HDFS的功能,我們先向HDFS上傳一個文件,我們就把JDK上傳到HDFS,我們回到root根目錄,ls命令查看文件列表,jdk就在該目錄下,我們上傳時先輸入hadoop,如果下面的命令忘了的話可以直接按回車。

        我們看到的提示信息如下圖所示,從中我們可以看到fs,這個客戶端可以進行一些文件操作,因此我們在hadoop命令後加上fs,後面的命令還不知道的話,接着按Enter查看提示信息。

            hadoop fs回車後的提示信息如下圖所示,我們可以看到有很多命令可用,其中我們很關注的便是上傳和下載功能,即下圖中的-get和-put命令

            所謂的上傳就是把文件從本地文件系統(Linux文件系統)上傳到HDFS文件系統,我們用命令:
hadoop fs -put /root/jdk-7u80-linux-x64.gz hdfs://itcast01:9000/jdk,這條命令的意思是從root目錄下把jdk文件上傳到HDFS系統的根目錄下並給文件重命名爲jdk。

         上傳完之後我們便可以到HDFS文件系統進行查看是否剛纔上傳的文件上傳成功了,我們刷新一下:http://itcast01:50075/browseDirectory.jsp?namenodeInfoPort=50070&dir=/&nnaddr=192.168.8.88:9000這個網址,便可以看到我們剛纔上傳的文件確實已經在HDFS系統當中了。

       既然可以上傳,當然也可以下載,那麼我們怎麼下載呢,第一種方法是我們點擊上圖中Name這一列中Jdk的鏈接,會進入到如下圖所示的頁面,我們點擊下面紅色框中的“Download this file”鏈接,就會彈出下載提示框,我們下載即可。

          第二種下載方法便是用命令的方式,跟put類似,如下圖所示,用命令:hadoop fs -get hdfs://itcast01:9000/jdk /home/jdk1.7,這條命令的意思是從hdfs文件系統的根目錄下將jdk文件下載到本地/home/文件夾下並且將名字命名爲jdk1.7。

         下載到本地的文件我們怎麼知道是否已經被損壞了呢,我們只需對該文件進行解壓即可,我們使用命令:tar -zxvf jdk1.7進行解壓縮,解壓完後我們使用ls命令查看該目錄當前的所有文件,發現多了jdk1.7.0_80這個文件夾,說明解壓成功,同時說明下載的文件沒問題。

       接着我們測試MR和YARN,我們使用Hadoop官方提供的事例程序進行測試,我們先回到hadoop-2.2.0目錄然後一步一步找到hadoop-mapreduce-examples-2.2.0.jar。

         爲了進行測試,我們使用命令vim word新建並打開word文件並在文件中插入如下圖所示內容,保存並退出。


        我們先用linux命令mc word來統計我們剛纔輸入的內容,下圖中的5代表行數,10代表總共有10個單詞,56代表的是字符的數量。

         接下來我們使用hadoop命令來進行統計,爲了防止本地word文件慢慢越來越大,我們把mapreduce目錄下的word文件上傳到HDFS系統,我們使用的命令是:hadoop fs -put word hdfs://itcast01:9000/word,上傳成功後,我們用命令hadoop fs -ls hdfs://itcast01:9000/來查看HDFS根目錄下的所有文件,從下圖我們可以看到我們剛纔上傳的word文件確實已經上傳到HDFS系統的根目錄下了。

     

       我們還可以通過在瀏覽器中瀏覽HDFS文件系統列表:http://itcast01:50075/browseDirectory.jsp?dir=%2F&namenodeInfoPort=50070&nnaddr=192.168.8.88:9000 可以看到word文件已在文件列表中。

       我們點擊上圖的word鏈接,進入該文件的具體內容,如下圖紅色框中的內容,就是我們新建word文件時輸入的內容。

         我們正式開始使用hadoop命令來統計我們輸入的內容,命令是:
hadoop jar hadoop-mapreduce-examples-2.2.0.jar 
wordcount  hdfs://itcast01:9000/word hdfs://itcast01:9000/wcout,針對這條命令,wordcount就是用來統計單詞等信息的,淺藍色的hdfs://itcast01:9000/word代表的是輸入(IN),粉色的hdfs://itcast01:9000/wcout代表的是輸出(Out)

        命令執行成功之後,我們可以通過瀏覽器來看,我們依然刷新:http://itcast01:50075/browseDirectory.jsp?dir=%2F&namenodeInfoPort=50070&nnaddr=192.168.8.88:9000這個網址,就可以看到如下圖所示的界面,從中可以看到wcout就在文件列表中。

        我們點擊wcout鏈接進入到如下圖所示的界面,其中SUCCESS表示執行成功,part-r-00000是執行結果文件。

          我們點擊part-r-00000鏈接進去,就可以看到如下圖所示的統計結果,發現統計結果完全正確!

       上面我們的操作完全沒有問題,當然,如果在操作中我們出現了這樣那樣的問題,我們可以通過查看logs文件,logs文件所在的目錄是在hadoop-2.2.0下,如下圖所示,logs文件就在其中。我們進入logs文件,查看該目錄下的所有日誌文件,假如我們要查看namenode的日誌,我們便使用命令:more hadoop-root-namenode-itcast01.log並回車,便可以查看。

      下圖便是namenode的錯誤日誌。

             至此,我們本節課便學完了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章