1. 程式人生 > >hadoop叢集搭建-三臺主機

hadoop叢集搭建-三臺主機

CentOS7 的配置

從零開始學大資料。記錄一些東西複習。

在進行hadoop的搭建之前,我們需要對CentOS進行一些配置,以相容簡化hadoop的執行環境。在進行配置之前,我們進入CentOS系統,在使用者介面選擇 NO Listed?輸入使用者名稱root以及你配置的密碼,預設密碼為root。進入系統,選擇你習慣的語言,開始你的Linux之旅。


2.1.1系統配置

進入系統後,右鍵 Open in Termiral 開啟命令終端。


輸入命令 hostname可以檢視當前主機的主機名。


我們需要對主機名進行修改,

修改主機名的方法為輸入命令 hostnamectl set-hostname <hostname>



我們將其他幾臺CentOS 7主機分別設定主機名為hadoop2,hadoop3以方便區分。

主機名配置完成。為了讓虛擬機器連線外網,修改網路設定。

修改靜態IP,關閉IPV6


重啟一次網路。

我們分別將CentOS001,CentOS002,CentOS003設定成以下配置,方便記憶與操作:

CentOS001      CentOS002            CentOS003

主機名       Hadoop1        hadoop2           hadoop3

Ip地址    10.250.62.151     10.250.62.152      10.250.62.153

靜態ip到此設定完成。

第二步: 關閉防火牆和selinux

CentOS7 的防火牆配置跟以前版本有很大區別,CentOS7這個版本的防火牆預設使用的是firewall,與之前的版本使用iptables不一樣

開啟命令終端。輸入systemctl stop firewalld.service關閉防火牆

繼續輸入命令禁止防火牆的開機啟動,輸入systemctl disable firewalld.service

輸入firewall-cmd --state檢視防火牆狀態,確認關閉防火牆。


接下來關閉selinux:

開啟命令終端,輸入: vi/etc/selinux/config開啟配置檔案

# This file controlsthe state ofSELinux on the system.

# SELINUX= can take oneof these threevalues:

#     enforcing -SELinux security policy isenforced.

#     permissive- SELinux prints warningsinstead of enforcing.

#     disabled -No SELinux policy is loaded.

#SELINUX=enforcing

SELINUX=disabled

# SELINUXTYPE= can takeone of thesetwo values:

#     targeted -Targeted processes areprotected,

#     mls - MultiLevel Security protection.

SELINUXTYPE=targeted

在vi模式下,按方向鍵移動游標,按i進入插入操作,將圖中的SELINUX=enforcing修改為SELINUX=disabled ,按Esc退出插入模式,輸入:wq儲存檔案並退出。將其他兩臺CentOS 7 主機的Selinux進行同樣的設定。

第三步:修改host叢集

開啟命令終端,輸入vi/etc/hosts ,修改配置檔案,儲存並退出。



在另外兩臺CentOS 7 主機上也進行相應的操作。操作完成後重啟三臺主機。

2.1.2SSH免密碼登入

接下來的操作將在SecureCRT軟體中進行,如果你不想使用,也可以在相應的主機中的命令終端中完成。開啟軟體。

建立ssh免密碼登入。


連續四次回車。使用

ssh-copy-id hadoop01 

ssh-copy-id hadoop02

ssh-copy-id hadoop03 將密匙分發。

在hadoop02與hadoop03的主機進行相同的操作。使用 ssh hadoop0X命令保證可以互相無密碼登入。

2.1.3 JDK的配置

   由於hadoop是執行在jvm中,我們需要給每一臺CentOS安裝java環境。需要進入官方網址進行下載Linux版本的JDK。我們進入user資料夾,命令輸入 cd /user/ ,建立一個software檔案,命令為 mkdir softwares,輸入cd softwares 進入資料夾。

上傳jdk壓縮包完成,輸入解壓命令,解壓至當前的資料夾中。

輸入 vi /etc/profile 進入配置檔案。

在檔案的最後一行輸入

export JAVA_HOME=jdk目錄

export PATH=$PATH:$JAVA_HOME/bin

儲存退出。


source /ect/profile重新整理配置。

在/usr/目錄下,輸入scp –rsoftware/ hadoop2:/usr/ 命令將software資料夾複製給hadoop2主機。

在/usr/目錄下,輸入scp –rsoftware/ hadoop3:/usr/ 命令將software資料夾複製給hadoop2主機。

然後修改hadoop2的配置檔案,步驟與主機hadoop1相同。最後複製資料夾給hadoop3,修改hadoop3的配置檔案。配置好三臺主機的jdk環境即可。

重新整理hadoop02與hadoop03的配置。保證三臺機器的echo $JAVA_HOME命令可以執行。

2.1.4 hadoop的搭建與配置

類似於jdk的上傳,使用相同的方法上傳hadoop的壓縮包到softwares的檔案目錄下。

使用命令 tar –zxf Hadoop-2.7.1.tar.gz 將壓縮包解壓至當前資料夾。

點選進入etc資料夾,進入hadoop資料夾。

裡面存放著需要修改使用的配置檔案。

第一步:修改hadoop-env.sh ,將export  JAVA_HOME=${JAVA_HOME}修改為你的java_home路徑。


第二步:修改core-site.xml檔案

配置檔案為:

<configuration>

<property>

        <name>fs.defaultFS</name>

       <value>hdfs://10.250.62.151:8020</value>

    </property>

    <property>

        <name>hadoop.tmp.dir</name>

        <value>/usr/softwares/hadoop-2.7.1/data/tmp</value>

    </property>

   <property>

   <name>fs.trash.interval</name>

   <value>10080</value>

   </property>

</configuration>


第三步:修改hdfs-site.xml

配置檔案為:

<configuration>

<property>

       <name>dfs.replication</name>

       <value>3</value>

   </property>

<property>

       <name>dfs.permissions.enabled</name>

       <value>false</value>

   </property>

   <property>

       <name>dfs.namenode.http-address</name>

       <value>10.250.62.151:50070</value>

   </property>

   <property>

       <name>dfs.namenode.secondary.http-address</name>

       <value>10.250.62.153:50090</value>

   </property>

</configuration>


第四步:修改mapred-site.xml.temple 檔案,首先修改檔名為mapred-site.xml

rm mapred-site.xml.temple mapred-site.xml

配置檔案為:

<configuration>

<property>

       <name>mapreduce.framework.name</name>

       <value>yarn</value>

   </property>

   <property>

       <name>mapreduce.jobhistory.address</name>

       <value>10.250.62.151:10020</value>

   </property>

   <property>

        <name>mapreduce.jobhistory.webapp.address</name>

       <value>10.250.62.151:19888</value>

   </property>

   <property>

       <name>mapreduce.job.ubertask.enable</name>

       <value>true</value>

</property>

</configuration>


第五步:修改yarn-site.xml

配置檔案為:

<configuration>

<!-- Site specific YARN configurationproperties -->

<property>

       <name>yarn.nodemanager.aux-services</name>

       <value>mapreduce_shuffle</value>

   </property>

   <property>

       <name>yarn.resourcemanager.hostname</name>

       <value>10.250.62.182</value>

   </property>

   <property>

       <name>yarn.web-proxy.address</name>

       <value>10.250.62.182:18088</value>

   </property>

   <property>

       <name>yarn.log-aggregation-enable</name>

       <value>true</value>

   </property>

<property>

       <name>yarn.log-aggregation.retain-seconds</name>

       <value>604800</value>

   </property>

   <property>

       <name>yarn.nodemanager.resource.memory-mb</name>

       <value>8192</value>

   </property>

<property>

       <name>yarn.nodemanager.resource.cpu-vcores</name>

       <value>8</value>

   </property>

</configuration>


第六步:修改slaves檔案

內容為所有主機ip地址。


第七步:

在hadoop目錄下手動建立data資料夾。

mkdir data

在配置好hadoop的主機下的hadoop目錄下執行命令符:

bin/hadoop namenode –format 

初始化hadoop。初始化成功,會有相應的提示。


將初始化完成的hadoop檔案複製到其他的主機。輸入命令:

scp -r hadoop-2.7.1/ hadoop2:/usr/softwares/

scp -r hadoop-2.7.1/ hadoop3:/usr/softwares/

回到第一臺主機,執行hadoop,在hadoop主目錄下輸入命令:

sbin/start-dfs.sh

執行完成後可以使用jps命令查詢正在執行的程序。第一臺主機應該多了一個Datanode以及Namenode程序。

第二臺主機多出了DataNode程序。

第三臺主機我們設定了SecondaryNameNode,所以多出了SecondaryNameNode程序。

我們在第二臺主機(hadoop02)上啟動yarn框架,根據配置檔案,我們必須在相應的主機啟動該框架。


啟動之後,我們會在這臺主機上看到多出了ResourceManager程序以及NodeManager程序。

在其他的主機上會多出NodeManager程序。

回到第一臺主機(hadoop01),啟動historyserver服務。輸入命令:sbin/mr-jobhistory-deamon.sh start historyserver 啟動該程序。

啟動之後,該主機會多執行一個JobHistoryServer程序。


進入啟動了yarn框架的主機,我們根據配置檔案,在這臺主機(hadoop02)上啟動proxyserver程序。輸入命令:sbin/yarn-deamon.sh startproxyserver命令。


啟動之後,該主機會執行一個WebAppProxServer的程序。至此,hadoop啟動完成。

我們可以在主機的瀏覽器視窗輸入:10.250.62.151:50070以及10.250.62.182:8088檢視相應的節點資訊。我們看到存活的節點數為三個。