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

 1、前言

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

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

  2.本次用到的軟件版本爲:node

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

2、配置虛擬機

1.配置三臺虛擬機

  首先建立新的虛擬機,自定義建立,1核1G,網上教程不少再也不贅述。web

  安裝完CentOS 7後,若是出現沒法鏈接網絡的問題,能夠參考http://www.javashuo.com/article/p-decvhgjc-dx.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 。app

4.安裝jdk

  先確認一下本身的Java版本,1.8版本能夠跳過此步驟,不然去java官網下載1.8版本的jdk並配置環境變量。webapp

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路徑。oop

  下一個是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查看是否運行成功。

相關文章
相關標籤/搜索