初學Hadoop:利用VMWare+CentOS7搭建Hadoop集群


 一、前言

  開始學習數據處理相關的知識了,第一步是搭建一個Hadoop集群。搭建一個分布式集群需要多台電腦,在此我選擇采用VMWare+CentOS7搭建一個三台虛擬機組成的Hadoop集群。

注:1.本次搭建環境中操作系統的用戶名為hadoop,請自行替換/home/hadoop為本機對應路徑。

  2.本次用到的軟件版本為:

    • VMware Workstation 14 Pro 14.1.3 build-9474260
    • CentOS 7.5.1804
    • Java 1.8.0_181
    • Apache Hadoop 2.7.7

二、配置虛擬機

1.配置三台虛擬機

  首先創建新的虛擬機,自定義創建,1核1G,網上教程很多不再贅述。

  安裝完CentOS 7后,如果出現無法連接網絡的問題,可以參考https://www.cnblogs.com/sunylat/p/7214753.html這個帖子。參照https://www.cnblogs.com/comexchan/p/5815869.html設置yum的源以后,使用`yum -y update`進行更新。然后關閉虛擬機,選擇VMWare的克隆功能克隆兩台一樣的虛擬機。

2.搭建桌面環境

  為了方便丟jar和腳本進去,給打算用來當主機的一台增加一個桌面操作系統。我這里選用GNOME,具體用哪個自己參考。安裝命令為 yum groupinstall "GNOME Desktop ,注意引號。安裝完畢后,使用 startx 可啟動桌面。 Ctrl + Alt + F6 和 Ctrl + Alt + F7 分別對應切換到命令行窗口和切換到圖形化界面。

3.配置免密

  不配置免密登錄在啟動集群的時候要一直輸密碼非常麻煩,為此配置三台機器之間互相免密登錄。方法參考 https://blog.csdn.net/lzh_86/article/details/80159104 。

4.安裝jdk

  先確認一下自己的Java版本,1.8版本可以跳過此步驟,否則去java官網下載1.8版本的jdk並配置環境變量。

5.安裝Hadoop

  下載目標版本的hadoop的tar文件,這里我安裝到/home/hadoop/下,安裝完以后出現hadoop-2.7.7文件夾。在一個指定路徑(這里我在hadoop安裝文件夾下)建立/tmp、/var、/dfs、/dfs/name、/dfs/data這幾個文件夾。進入安裝目錄/etc/hadoop/,修改core-site.xml,在<configuration>節點內加入配置:

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <!-- 剛才設置的tmp文件夾路徑 -->
        <value>/home/hadoop/hadoop-2.7.7/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.default.name</name>
        <!-- master對應設置的主機,在三台虛擬機內都要重復配置,此時設置為對應虛擬機名 -->
        <value>hdfs://master:9000</value>
    </property>
</configuration>

 

  接下來修改hadoop-env.sh文件,將`export JAVA_HOME=${JAVA_HOME}`修改為自己的jdk路徑。

  下一個是hdfs-site.xml文件,同樣在<configuration>節點內加入配置

<configuration>
    <property>
        <name>dfs.name.dir</name>
        <!-- 剛才設置的name文件夾路徑 -->
        <value>/home/lxz/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.data.dir</name>
        <!-- 剛才設置的data文件夾路徑 -->
        <value>/home/lxz/hadoop/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <!-- hdfs副本數 -->
        <value>2</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
        <!-- 開啟權限檢查 -->
    </property>
</configuration>    

 

  下一步, cp mapred-site.xml.template mapred-site.xml 從模板生成配置文件,修改該文件在<configuration>節點內加入配置:

<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <!-- 修改master為對應主機名 -->
        <value>hdfs://master:49001</value>
    </property>
    <property>
        <name>mapred.local.dir</name>
        <!-- var文件夾位置 -->
        <value>/home/lxz/hadoop/var</value>
    </property>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

 

  接下來修改slaves文件,將localhost修改為servent1和servent2。

  修改yarn-site.xml文件,在<configuration>節點內加入配置:

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <!-- 同理,修改master為對應主機名 -->
        <value>master</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>${yarn.resourcemanager.hostname}:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>${yarn.resourcemanager.hostname}:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>${yarn.resourcemanager.hostname}:8088</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.https.address</name>
        <value>${yarn.resourcemanager.hostname}:8090</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>${yarn.resourcemanager.hostname}:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>${yarn.resourcemanager.hostname}:8033</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <!-- 每個節點可用內存,單位MB,默認8182MB -->
        <value>1024</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>1024</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
</configuration>    

 

 

  在另外兩台分機上重復上述操作。然后進入主機安裝目錄的bin文件夾下,執行 ./hadoop namenode -format 命令進行初始化,如果只有INFO級別日志則成功。隨后進入安裝目錄下的sbin目錄執行 ./start-all.sh 命令.等執行完畢后,可以在瀏覽器中訪問master:50070和master:8088查看是否運行成功。


免責聲明!

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



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