1. 程式人生 > >CentOS6.5虛擬機器下搭建Hadoop偽分散式環境

CentOS6.5虛擬機器下搭建Hadoop偽分散式環境

一、 實驗環境

  1. 作業系統:CentOS6.5
  2. Hadoop版本:hadoop-2.7.2
  3. JDK版本:jdk-8u73-linux-x64

二、 搭建步驟

1.安裝作業系統:使用VitualBox安裝CentOS6.5作業系統,安裝方式選擇為預設。(硬碟大小為20G,預設使用全部空間會對其做成LVM)。

2.通過以下命令修改當前主機名稱:
vim /etc/sysconfig/network
修改完成後重啟機器。

3.配置網路:
    ① 開機不啟動NetworkManager服務:
chkconfig NetworkManager off
    ② 停掉NetworkManager服務:
/etc/init.d/NetworkManager stop
    ③ 編輯網絡卡配置檔案
vim /etc/sysconfig/network-scripts/ifcfg-eth0 
      內容編輯如下:
DEVICE=eth0    
HWADDR=08:00:27:71:30:C0     
TYPE=Ethernet           
UUID=af0e8611-c438-4aa6-923c-ab55b3380478
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.15
NETMASK=255.255.255.0
4.關閉防火牆並設為開機不啟動:
    ① 關閉防火牆服務:
/etc/init.d/iptables stop
    ② 開機不啟動防火牆:
chkconfig NetworkManager off
5.配置JDK環境:
    ① 將jdk-8u73-linux-x64.tar.gz包解壓到/opt當中:
tar -xvf jdk-8u73-linux-x64.tar.gz -C /opt/
    ② 配置系統環境變數:
vim /etc/profile
     在/etc/profile檔案中新增如下行:
export JAVA_HOME=/opt/jdk1.8.0_73
export JRE_HOME=${JAVA_HOME}
/jre export PATH=${JAVA_HOME}/bin:$PATH
    儲存退出,然後使用如下命令更新當前終端的環境變數配置
source /etc/profile
    完成之後,使用如下命令來確認配置是否成功
java -version
    若配置成功,則如下圖所示:
    ![java -version](https://img-blog.csdn.net/20160223215030112)

6.在/下依次建立新資料夾,並將hadoop程式壓縮包解壓到該資料夾當中。
mkdir -p /hadoop/program && tar -xvf hadoop-2.7.2.tar.gz -C /hadoop/program/
7.將含有hadoop常用命令的目錄新增到環境變數中
vim /etc/profile
 在最後新增如下欄位:
export HADOOP_HOME=/hadoop/program/hadoop-2.7.2
export PATH=$HADOOP_HOME/bin:${PATH}
儲存重啟,然後使用source命令更新當前終端配置。

8.配置hadoop:
hadoop的配置檔案都在程式目錄下中的etc/hadoop資料夾當中,對應我當前機器的絕對路徑為/hadoop/program/hadoop-2.7.2/etc/hadoop資料夾。搭建hadoop偽分散式環境需要修改5個配置問價,如下:
    ① core-site.xml
    *該配置檔案指定**NameNode地址**以及hadoop執行時產生檔案的的存放地址*。 修改configuration標籤:
<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://node1:9000</value>
        </property>

        <property>
                <name>hadoop.tmp.dir</name>
                <value>/hadoop/tmp</value>
        </property>
</configuration>
    ② hadoop-env.sh
    該配置檔案主要指定hadoop執行時的環境變數,在該檔案中,修改預設的JAVA_HOME對應值:
export JAVA_HOME=/opt/jdk1.8.0_73
    ③ hdfs-site.xml
    通過該配置檔案指定檔案存放副本的數量,修改configuration標籤對應值(儲存1份副本):
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
</configuration>
    ④ mapred-site.xml
    指定mapreduce的執行方法(YARN),修改configuration標籤如下:
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>
⑤ yarn-site.xml
通過該配置檔案指定NodeManager獲取資料的方式使shuffle,和指定YARN ResourceManager的地址,修改configuration標籤如下。
<configuration>

<!-- Site specific YARN configuration properties -->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>

        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>node1</value>
        </property>
</configuration>

三、 啟動Hadoop

1.初始化HDFS檔案系統:

hdfs namenode -format

2.啟動HDFS和MapReduce,相應的啟動指令碼在hadoop程式目錄中的sbin資料夾中,分別執行start-hdfs.sh和start-yarn.sh指令碼。

四、 測試Hadoop

1.通過瀏覽器方式對HDFS和MapReduce進行訪問,HDFS預設的瀏覽器訪問埠為為50070,MapReduce預設的訪問埠為8088。訪問成功如圖所示:

HDFS訪問成功頁面

MapReduce訪問成功頁面

2.將檔案上傳到HDFS當中,使用命令:

hadoop fs -put 檔名稱 hdfs://node1:9000/

這裡寫圖片描述

在Utilities標籤頁下可以看到上傳的檔案的資訊。

3.使用MapReduce進行簡單的資料分析,使用Hadoop程式目錄下的share/hadoop/mapreduce/中的測試jar檔案hadoop-mapreduce-examples進行測試:

hadoop jar hadoop-mapreduce-examples-2.7.2.jar wordcount hdfs://node1:word hdfs://node1:wordout

執行成功後,可以看到在HDFS下有的wokdout檔案:
這裡寫圖片描述

下載下來進行檢視,可以看到:
這裡寫圖片描述