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檢視相應的節點資訊。我們看到存活的節點數為三個。