1. 程式人生 > >[虛擬機器VM][Ubuntu12.04]搭建Hadoop完全分散式環境(三)(終篇)

[虛擬機器VM][Ubuntu12.04]搭建Hadoop完全分散式環境(三)(終篇)

接前兩篇,這是最終篇,前面的準備工作都完成了之後,我們開始安裝和部署hadoop

安裝和配置Hadoop

hadoop叢集中每臺機器的配置都基本相同,我們先配置好master,然後複製到slave1slave2

1、下載並解壓,並重命名目錄為hadoop,移動到/usr目錄下去

hadoop@master:~$ tar -zxvf hadoop-2.2.0_x64.tar.gz
hadoop@master:~$ mv hadoop-2.2.0 hadoop

這裡寫圖片描述

hadoop@master:~$ sudo mv ~/hadoop /usr/

2、建立幾個關鍵目錄,以備後用:

hadoop@master
:~$ mkdir dfs hadoop@master:~$ mkdir dfs/name hadoop@master:~$ mkdir dfs/data hadoop@master:~$ mkdir tmp

這裡寫圖片描述

3、修改配置檔案:

~/hadoop/etc/hadoop/hadoop-env.sh
~/hadoop/etc/hadoop/yarn-env.sh
~/hadoop/etc/hadoop/slaves
~/hadoop/etc/hadoop/core-site.xml
~/hadoop/etc/hadoop/hdfs-site.xml
~/hadoop/etc/hadoop/mapred-site.xml
~/hadoop/etc
/hadoop/yarn-site.xml

3.1 修改hadoop-env.sh,將JAVA_HOME後面填寫上自己的JDK路徑
這裡寫圖片描述

3.2 修改yarn-env.sh,將JAVA_HOME後面填寫上自己的JDK路徑
這裡寫圖片描述

3.3 修改slaves,填寫所有的slave節點
這裡寫圖片描述

3.4 修改core-site.xml,說明:

  • hdfs://master:8020中的masterhostname,如果你們設定的跟我的不一樣請修改
  • file:/home/hadoop/tmp就是剛才第2步設定的目錄,如果你們設定的跟我的不一樣請修改
  • hadoop.proxyuser.hadoop.hostshadoop.proxyuser.hadoop.groups
    中的第二個hadoop換成自己的使用者名稱
<configuration>
       <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:8020</value>
       </property>
       <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        </property>
       <property>
               <name>hadoop.tmp.dir</name>
               <value>file:/home/hadoop/tmp</value>
               <description>Abase for other temporary directories.</description>
       </property>
        <property>
               <name>hadoop.proxyuser.hadoop.hosts</name>
               <value>*</value>
       </property>
       <property>
               <name>hadoop.proxyuser.hadoop.groups</name>
               <value>*</value>
       </property>
</configuration>

3.5 修改hdfs-site.xml,說明:

  • master:9001中的masterhostname,如果你們設定的跟我的不一樣請修改
  • file:/home/hadoop/dfs/namefile:/home/hadoop/dfs/data就是剛才第2步設定的目錄,如果你們設定的跟我的不一樣請修改
<configuration>
       <property>
                <name>dfs.namenode.secondary.http-address</name>
               <value>master:9001</value>
       </property>
     <property>
             <name>dfs.namenode.name.dir</name>
             <value>file:/home/hadoop/dfs/name</value>
       </property>
      <property>
              <name>dfs.datanode.data.dir</name>
              <value>file:/home/hadoop/dfs/data</value>
       </property>
       <property>
               <name>dfs.replication</name>
               <value>3</value>
        </property>
        <property>
                 <name>dfs.webhdfs.enabled</name>
                  <value>true</value>
         </property>
</configuration>

3.6 修改mapred-site.xml,說明:其中的masterhostname,如果你們設定的跟我的不一樣請修改

<configuration>
          <property>
        <name>mapreduce.framework.name</name>
                <value>yarn</value>
           </property>
          <property>
                  <name>mapreduce.jobhistory.address</name>
                  <value>master:10020</value>
          </property>
          <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>master:19888</value>
       </property>
</configuration>

3.7 修改yarn-site.xml,說明:其中的masterhostname,如果你們設定的跟我的不一樣請修改

<configuration>
        <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
        </property>
        <property>
               <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
               <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
               <name>yarn.resourcemanager.address</name>
               <value>master:8032</value>
       </property>
       <property>
               <name>yarn.resourcemanager.scheduler.address</name>
               <value>master:8030</value>
       </property>
       <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
             <value>master:8031</value>
      </property>
      <property>
              <name>yarn.resourcemanager.admin.address</name>
               <value>master:8033</value>
       </property>
       <property>
               <name>yarn.resourcemanager.webapp.address</name>
               <value>master:8088</value>
       </property>
</configuration>

4、master配置完成,我們把hadoop整個目錄複製到slave1slave2上去

hadoop@master:~$ sudo scp -r /usr/hadoop hadoop@slave1:~/
hadoop@master:~$ sudo scp -r /usr/hadoop hadoop@slave2:~/

5、使用ssh分別到slave1slave2機器上將hadoop目錄移動到和master相同的目錄中去

hadoop@master:~$ ssh slave1
hadoop@slave1:~$ sudo mv ~/hadoop/ /usr/
hadoop@master:~$ ssh slave2
hadoop@slave2:~$ sudo mv ~/hadoop/ /usr/

6、新增hadoop路徑到環境變數中

hadoop@master:~$ vi /etc/environment
hadoop@master:~$ source /etc/environment

新增以下紅框的內容,如果你們的hadoop路徑和我的不一樣,請修改
這裡寫圖片描述

7、啟動hadoop

格式化namenode

hadoop@master:~$ hdfs namenode –format

啟動hdfs

hadoop@master:~$ start-dfs.sh

啟動yarn

hadoop@master:~$ start-yarn.sh

8、檢視程序

先看master的:

hadoop@master:~$ jps

這裡寫圖片描述

slave1上檢視程序:

hadoop@master:~$ ssh slave1
hadoop@slave1:~$ jps

這裡寫圖片描述

也可以到瀏覽器中輸入http://master:8088/檢視:
這裡寫圖片描述

至此,Hadoop完全分散式環境已全部搭建完成!