第一部分:準(zhǔn)備Linux環(huán)境
創(chuàng)建虛擬機安裝系統(tǒng)的步驟在這里就不講了,詳細(xì)步驟請看本人其他文章
打開建好的虛擬機
一、修改Hostname
1、 臨時修改hostname
hostname bigdata-01.liu.com
這種修改方式,系統(tǒng)重啟后就會失效
2、 永久修改hostname
vim /etc/sysconfig/network
打開后編輯如下內(nèi)容
NETWORKING=yes #使用網(wǎng)絡(luò)
HOSTNAME=bigdata-01.liu.com #設(shè)置主機名
二、配置Host
vim /etc/hosts
添加如下內(nèi)容
172.18.74.172 bigdata-01.liu.com
三、關(guān)閉防火墻
查看防火墻狀態(tài)
service iptables status
臨時關(guān)閉防火墻
service iptables stop
永久關(guān)閉防火墻(需要重啟才能生效)
chkconfig iptables off
四、關(guān)閉selinux
selinux是Linux一個子安全機制,學(xué)習(xí)環(huán)境可以將它禁用
vim /etc/sysconfig/selinux
把SELINUX設(shè)置成disabled
SELINUX=disabled
五、安裝JDK
檢測系統(tǒng)是否安裝jdk
java -version
如果顯示有openjdk需要先卸載,再安裝Oracle的jdk(其他版本的jdk對hadoop的一些命令不是很支持)
rpm -qa | grep java
卸載openjdk,.noarch的文件可以不用刪除
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.4.e17_5.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.191-2.6.15.4.e17_5.x86_64
然后再次使用rpm -qa | grep java 查看是否已經(jīng)卸載openjdk,如果還有就再卸載一遍
用xshell遠程工具遠程虛擬機,安裝lrzsz命令
yum -y install lrzsz
導(dǎo)入jdk包并解壓到 /opt/modules目錄下
rz
tar -zvxf jdk-8u181-linux-x64.tar.gz -C /opt/modules
添加環(huán)境變量
設(shè)置JDK的環(huán)境變量 JAVA_HOME,需要修改配置文件/etc/profile,追加
export JAVA_HOME="/opt/modules/jdk1.8.0_181"
export PATH=$JAVA_HOME/bin:$PATH
修改完畢后,執(zhí)行 source /etc/profile 使修改生效
再次執(zhí)行 java –version,可以看見已經(jīng)安裝完成
第二部分:hadoop安裝
完全分部式是真正利用多臺Linux主機來進行部署Hadoop,對Linux機器集群進行規(guī)劃,使得Hadoop各個模塊分別部署在不同的多臺機器上。
一、環(huán)境準(zhǔn)備
1.克隆虛擬機
Vmware左側(cè)選中要克隆的機器,這里對原有的BigData01機器進行克隆,虛擬機菜單中,選中管理菜單下的克隆命令。
選擇“創(chuàng)建完整克隆”,虛擬機名稱為BigData02,選擇虛擬機文件保存路徑,進行克隆。
再次克隆一個名為BigData03的虛擬機。
2.配置網(wǎng)絡(luò)
修改網(wǎng)卡名稱
在BigData02和BigData03機器上編輯網(wǎng)卡信息。執(zhí)行sudo vim /etc/udev/rules.d/70-persistent-net.rules命令。因為是從BigData01機器克隆來的,所以會保留BigData01的網(wǎng)卡eth0,并且再添加一個網(wǎng)卡eth2。并且eth0的Mac地址和BigData01的地址是一樣的,Mac地址不允許相同,所以要刪除eth0,只保留eth2網(wǎng)卡,并且要將eth2改名為eth0。將修改后的eth0的mac地址復(fù)制下來,修改network-scripts文件中的HWADDR屬性。
vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改網(wǎng)絡(luò)參數(shù):
BigData02機器IP改為172.18.74.173
BigData03機器IP改為172.18.74.174
??!如果是在真實的服務(wù)器里搭建Hadoop環(huán)境就需要再建兩個虛擬機,按照上面的步驟再來一遍了,服務(wù)器里克隆主機不是很理想!!
3.配置Hostname以及hosts
BigData02配置hostname為 bigdata-02.liu.com
BigData03配置hostname為 bigdata-03.liu.com
BigData01、BigData02、BigData03三臺機器hosts都配置為:
172.18.74.172 bigdata-01.liu.com
172.18.74.173 bigdata-02.liu.com
172.18.74.174 bigdata-03.liu.com
4.配置Windows上的SSH客戶端
在本地Windows中的SSH客戶端上添加對BigData02、BigData03機器的SSH鏈接
二、服務(wù)器功能規(guī)劃
bigdata-01.liu.com | bigdata-02.liu.com | bigdata-03.liu.com | |
---|---|---|---|
NameNode | ResourceManage | SecondaryNameNode | |
DataNode | DataNode | DataNode | |
NodeManager | NodeManager | NodeManager | |
HistoryServer |
三、在第一臺機器上安裝新的Hadoop
創(chuàng)建hadoop目錄
mkdir -p /opt/modules/app
導(dǎo)入Hadoop壓縮包并解壓到Hadoop目錄
rz
tar -zxf /opt/sofeware/hadoop-2.7.4-with-centos-6.7.tar.gz -C /opt/modules/app/
切換到/opt/modules/app/hadoop-2.7.4/etc/hadoop目錄,配置該目錄下的Hadoop JDK路徑即修改hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中的JDK路徑:
export JAVA_HOME="/opt/modules/jdk1.8.0_181"
配置core-site.xml
vim core-site.xml
fs.defaultFS hdfs://bigdata-01.liu.com:8020 hadoop.tmp.dir /opt/modules/app/hadoop-2.7.4/data/tmp dfs.namenode.name.dir file://${hadoop.tmp.dir}/dfs/name dfs.datanode.data.dir file://${hadoop.tmp.dir}/dfs/data
fs.defaultFS為NameNode的地址。
hadoop.tmp.dir為hadoop臨時目錄的地址,默認(rèn)情況下,NameNode和DataNode的數(shù)據(jù)文件都會存在這個目錄下的對應(yīng)子目錄下。應(yīng)該保證此目錄是存在的,如果不存在,先創(chuàng)建。
配置hdfs-site.xml
vim hdfs-site.xml
dfs.namenode.secondary.http-address bigdata-03.liu.com:50090
dfs.namenode.secondary.http-address是指定secondaryNameNode的http訪問地址和端口號,因為在規(guī)劃中,我們將BigData03規(guī)劃為SecondaryNameNode服務(wù)器,所以這里設(shè)置:bigdata-03.liu.com:50090
配置slaves
vim slaves
bigdata-01.liu.com
bigdata-02.liu.com
bigdata-03.liu.com
slaves文件是指定HDFS上有哪些DataNode節(jié)點
配置yarn-site.xml
vim yarn-site.xml
yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname bigdata-02.liu.com yarn.log-aggregation-enable true yarn.log-aggregation.retain-seconds 106800
根據(jù)規(guī)劃yarn.resourcemanager.hostname這個指定resourcemanager服務(wù)器指向bigdata-02.liu.com
yarn.log-aggregation-enable是配置是否啟用日志聚集功能
yarn.log-aggregation.retain-seconds是配置聚集的日志在HDFS上最多保存多長時間
配置mapred-site.xml
從mapred-site.xml.template復(fù)制一個mapred-site.xml文件
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
mapreduce.framework.name yarn mapreduce.jobhistory.address bigdata-01.liu.com:10020 mapreduce.jobhistory.webapp.address bigdata-01.liu.com:19888
mapreduce.framework.name設(shè)置mapreduce任務(wù)運行在yarn上
mapreduce.jobhistory.address是設(shè)置mapreduce的歷史服務(wù)器安裝在BigData01機器上
mapreduce.jobhistory.webapp.address是設(shè)置歷史服務(wù)器的web頁面地址和端口號
四、設(shè)置SSH無密碼登錄
Hadoop集群中的各個機器間會相互地通過SSH訪問,每次訪問都輸入密碼是不現(xiàn)實的,所以要配置各個機器間的SSH是無密碼登錄的
在BigData01上生成公鑰
ssh-keygen -t rsa
一路回車,都設(shè)置為默認(rèn)值,然后再當(dāng)前用戶的Home目錄下的.ssh目錄中會生成公鑰文件(id_rsa.pub)和私鑰文件(id_rsa), .ssh是隱藏文件在home目錄下ls -a就會顯示出來
分發(fā)公鑰
ssh-copy-id bigdata-01.liu.com
ssh-copy-id bigdata-02.liu.com
ssh-copy-id bigdata-03.liu.com
五、分發(fā)Hadoop文件
首先在其他兩臺機器上創(chuàng)建存放Hadoop的目錄
mkdir -p /opt/modules/app
通過Scp分發(fā)
du -sh /opt/modules/app/hadoop-2.7.4/share/doc
scp -r /opt/modules/app/hadoop-2.7.4/ bigdata-02.liu.com:/opt/modules/app
scp -r /opt/modules/app/hadoop-2.7.4/ bigdata-03.liu.com:/opt/modules/app
格式NameNode
在NameNode機器bigdata-01上執(zhí)行格式化:
/opt/modules/app/hadoop-2.7.4/bin/hdfs namenode –format
格式化后在 /opt/modules/app/hadoop-2.7.4/data/tmp/dfs/data/ 目錄下會生成一個current目錄,里面有一系列文件
注意:
如果需要重新格式化NameNode,需要先將原來NameNode和DataNode下的文件全部刪除,不然會報錯,NameNode和DataNode所在的目錄是在core-site.xml中hadoop.tmp.dir、dfs.namenode.name.dir、dfs.datanode.data.dir屬性里配置的。
因為每次格式化,默認(rèn)是創(chuàng)建一個集群ID,并寫入NameNode和DataNode的VERSION文件中(VERSION文件所在目錄為dfs/name/current 和 dfs/data/current),重新格式化時,默認(rèn)會生成一個新的集群ID,如果不刪除原來的目錄,會導(dǎo)致namenode中的VERSION文件中是新的集群ID,而DataNode中是舊的集群ID,不一致時會報錯。
六、啟動集群
切換到/opt/modules/app/hadoop-2.7.4目錄下
啟動HDFS
/opt/modules/app/hadoop-2.7.4/sbin/start-dfs.sh
jps查看已經(jīng)啟動的服務(wù)
啟動YARN
/opt/modules/app/hadoop-2.7.4/sbin/start-yarn.sh
也可以使用這條命令一步到位
/opt/modules/app/hadoop-2.7.4/sbin/start-all.sh
在BigData02上啟動ResourceManager:
sbin/yarn-daemon.sh start resourcemanager
啟動日志服務(wù)器
因為我們規(guī)劃的是在BigData03服務(wù)器上運行MapReduce日志服務(wù),所以要在BigData03上啟動
/opt/modules/app/hadoop-2.7.4/sbin/mr-jobhistory-daemon.sh start historyserver
查看HDFS Web頁面
http://bigdata-01.liu.com:50070/
如果域名沒有解析可以在搜索欄中輸入ip+端口如:
172.18.74.172:50070
查看YARN Web 頁面
http://bigdata-02.liu.com:8088/cluster
172.18.74.173:8088/cluster
好啦,到這里Hadoop集群環(huán)境的搭建就完成啦。建議Ha友們搭建Hadoop環(huán)境時先去了解一下各個組件是什么這樣更有利于你順利的完成Hadoop環(huán)境的搭建,我的一些同學(xué)他們學(xué)這個比較早,那時候也沒人了解Hadoop是什么,聽他們說搭建了10天半個月的才搭建出來,我就是在他們的影響下逐漸了解了點Hadoop的知識,用了一天多的時間搭建好了,搭建過程中還遇到了不少突發(fā)情況,所以如果搭建過程中沒有什么意外情況再加上提前了解過,半天就能搞定了,千萬不要遇到困難就放棄,堅持一定會勝利的??!
。。。從前車馬很慢,書信很遠,一生只夠愛一個人?。?!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。