hadoop安裝教程

 

Hadoop的優勢

1)高可靠性:因爲Hadoop假設計算元素和存儲會出現故障,因爲它維護多個工作數據副本,在出現故障時可以對失敗的節點重新分佈處理。

2)高擴展性:在集羣間分配任務數據,可方便的擴展數以千計的節點。

3) 高效性:在MapReduce的思想下,Hadoop是並行工作的,以加快任務處理速度。

4)高容錯性:自動保存多份副本數據,並且能夠自動將失敗的任務重新分配。

 

Hadoop組成

1)Hadoop HDFS:一個高可靠、高吞吐量的分佈式文件系統。

2)Hadoop MapReduce:一個分佈式的離線並行計算框架。

3)Hadoop YARN:作業調度與集羣資源管理的框架。

4)Hadoop Common:支持其他模塊的工具模塊。

 

     2.1  HDFS(Hadoop Distributed File System)架構概述

      1)NameNode(nn):存儲文件的元數據,如文件名,文件目錄結構,文件屬性(生成時間、副本數、文件權限),以及每個文件的塊列表和塊所在的DataNode等。

  2)DataNode(dn):在本地文件系統存儲文件塊數據,以及塊數據的校驗和。

  3)Secondary NameNode(2nn):用來監控HDFS狀態的輔助後臺程序,每隔一段時間獲取HDFS元數據的快照。

 

    2.2 YARN架構概述

  1)ResourceManager(rm):處理客戶端請求、啓動/監控ApplicationMaster、監控NodeManager、資源分配與調度;

  2)NodeManager(nm):單個節點上的資源管理、處理來自ResourceManager的命令、處理來自ApplicationMaster的命令;

  3)ApplicationMaster:數據切分、爲應用程序申請資源,並分配給內部任務、任務監控與容錯。

  4)Container:對任務運行環境的抽象,封裝了CPU、內存等多維資源以及環境變量、啓動命令等任務運行相關的信息。

 

  2.3 MapReduce架構概述

  MapReduce將計算過程分爲兩個階段:Map和Reduce

  1)Map階段並行處理輸入數據

  2)Reduce階段對Map結果進行彙總  

配置Hadoop環境變量

首先去官網下載hadoop壓縮包 點擊打開鏈接

將下載好的hadoop壓縮包和jdk壓縮包一樣上傳到Linux系統,用命令解壓的到目標文件夾:

tar -xvf hadoop-2.7.3.tar.gz -C ~/training/

解壓好之後,進到解壓的目錄下,使用命令pwd列出文件所在的目錄,copy一下:

之後 使用vi命令: vi ~/.bash_profile:

HADOOP_HOME="/root/training/hadoop-2.7.3" export HADOOP_HOME PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH export PATH

使用source ~/.bash_profile 使命令生效

搭建Hadoop本地模式:

Hadoop環境分爲三種模式,一種是本地模式,一種是僞分佈式,還有一種是全分佈式。 僞分佈式一般適用於開發,生產環境上是全分佈式,僞分佈式一臺機器就可以了,但是全分佈式至少3臺機器。

如果想搭建本地模式很簡單只需要改一個文件,進入/root/training/hadoop-2.7.3/etc/hadoop 這個個路徑下,

vi hadoop-env.sh,修改裏面的export JAVA_HOME="" 指向你jdk的路徑即可

如下:

 

順便介紹一個命令,如果你不記得你的JAVA_HOME的地址,可以用一個命令查看:echo $JAVA_HOME

 

最後各式一下hadoop, 輸入命令: hdfs namenode -format 即可

最後 start-all.sh即可

 僞分佈式環境搭建

有了上面的本地模式,搭建僞分佈式模式就相對簡單的多:只需要配置/root/training/hadoop-2.7.3/etc/hadoop這個目錄下的的文件即可:

(1) hadoop-env.sh

這個文件中的jdk的安裝路徑,在上面的本地模式已經配置過。

(2) hdfs-site.xml

<property> 
     <name>dfs.replication</name>
     <value>1</value>
 </property>

這個屬性設置的是HDFS文件的副本個數,默認爲因爲我們是僞分佈式,只有一臺機器,nameNode 和DataNode都在一臺機器上,所以設置爲1.

(2)core-site.xml

<property> 
    <name>fs.defaultFS</name> 
    <value>hdfs://localhost:9000</value> 
</property> 
<property> 
    <name>hadoop.tmp.dir</name> 
    <value>/root/training/hadoop-2.7.3/tmp</value> 
</property>

這兩個參數,第一個設置的是HDFS的訪問接口,第二個是HDFS的存放目錄

(3)mapred-site.xml

這個文件是不存在的,但是有這個文件mapred-site.xml.template這個文件,我們可以複製一個:

 cp mapred-site.xml.template mapred-site.xml

這樣在裏面添加: 這個表示的是MapReduce的運行環境

<property> 
    <name>mapreduce.framework.name</name> 
    <value>yarn</value> 
</property>

(4)yarn-site.xml

<property> 
    <name>yarn.resourcemanager.hostname</name> 
    <value>localhost</value> 
</property> <property> 
    <name>yarn.nodemanager.aux-servsuoyuices</name> 
    <value>mapreduce_shuffle</value> 
</property>

第一個是yarn的主節點,第二個表示MapReduce的運行方式

配置完之後:hdfs namenode -format

start-all.sh

即可啓動hadoop

輸入命令jps,列出所有的進程如下:

 

全分佈式:

全分佈式至少需要3臺機器,我們以3臺機器爲例,一臺運行NameNode,另外兩臺運行DataNode

配置起來跟僞分佈式差不多需要更改幾處文件

hdfs-site.xml

<property> 
    <name>dfs.replication</name> 
    <value>2</value> 
</property>

數據的副本數就不要是1了,改成2

添加另外兩臺dataNode,需要更改文件slaves:

 

這個裏面原來默認就是你本機,需要將localHost刪除,添加你的另外兩臺機器的ip即可,這臺機器作爲主機主節點運行NameNode,其他兩臺機器運行DataNode

三臺機器都要這麼配置那就太麻煩了,配置好了一個之後可以copy到另外的機器:

scp -r hadoop-xx root@ip:/root/xxx/

這個命令的含義就是將hadoop-xx 這個文件copy到主機ip上,名字是root。:後面是路徑

 

                                                                                                                                                                                                                                 

                                                                      

                                                                              歡迎關注,一起學習大數據!

下週kafka專場,歡迎關注公衆號,獲得最新信息!

 

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