摘要:注意這里生成密鑰建議在幾臺虛擬機克隆過后網(wǎng)絡(luò)配置文件配置完成后施行,免密碼登錄這里直接影響最后格式化及節(jié)點啟動是否成功,所以筆者在最后設(shè)置,檢驗完免密碼登錄后,啟動格式化。
0.環(huán)境搭建準(zhǔn)備
實體機Win7 64位
SSH Secure Shell Client
Centos 6.5 版本
Hadoop 2.6.0 版本(編譯后64位)
OpenJdk1.7.0
注:jdk的安裝方法有三種,具體參照http://blog.csdn.net/u0114142...
1.實驗環(huán)境IP hostname role
192.168.47.131 hadoop1 ActiveNameNode
192.168.47.132 hadoop2 StandByNameNode
192.168.47.133 hadoop3 DataNode1
192.168.47.134 hadoop4 DataNode2
(注:下面的代碼有的是用超級用戶權(quán)限才能執(zhí)行,所以遇到權(quán)限不夠的時候,代碼前面加上sudo,將自己當(dāng)前用戶變?yōu)槌売脩舻姆椒ū容^簡單,就不多說了,也可以使用root權(quán)限,但比較費事。)
2-1 網(wǎng)絡(luò)配置物理地址
hadoop1 00:0C:29:4E:45:5B
hadoop2 00:50:56:28:02:B1
hadoop3 00:50:56:3F:4C:59
hadoop4 00:50:56:3C:D1:7D
1.查看虛擬機物理地址 設(shè)置—網(wǎng)絡(luò)適配器—高級—Mac地址 如下圖:
PS:每次復(fù)制完虛擬機后,它們物理地址都相同,按下生成,即可生成新的物理地址,這樣可以保證每一臺虛擬機的物理地址不同,防止后面網(wǎng)絡(luò)配置出錯。
2.進行eth0配置
vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改硬件地址
并加入以下三行
IPADDR=192.168.47.131 NETMASK=255.255.255.0 GATEWAY=192.168.47.2
觀察下面兩項,改成如下設(shè)置
ONBOOT=yes BOOTPROTO=none
3.配置DNS
vim /etc/resolv.conf
輸入nameserver 192.168.47.2 即網(wǎng)關(guān)(也可以參照其他資料上設(shè)置,最終連上網(wǎng)就行)
保存后,輸入
service iptables stop
考慮到后面節(jié)點的啟動,也可以將防火墻設(shè)置為永久關(guān)閉,命令如下:
chkconfig iptables off
如果還是沒連接,輸入
service network restart
4.修改主機名
編輯系統(tǒng)文件
vim /etc/sysconfig/network
在里面添加下面語句(根據(jù)實際修改)
HOSTNAME=hadoop1
5.配置hosts文件
vim /etc/hosts 192.168.47.131 hadoop1 192.168.47.132 hadoop2 192.168.47.133 hadoop3 192.168.47.134 hadoop4
網(wǎng)絡(luò)配置這里比較重點,網(wǎng)上有很多方法,個人覺得這種方法算是比較簡單易行的,整體虛擬機網(wǎng)絡(luò)設(shè)置為dhcp,即自動獲取,這樣可以保證虛擬機和外網(wǎng)互通,建議可以在windows和虛機間ping一下,檢查是否聯(lián)網(wǎng),之后在幾臺虛擬機上設(shè)置靜態(tài)Ip,可以ifconfig一下,檢查是否設(shè)置成功。
2-2 SSH免密碼登錄1.安裝SSH:
yum install openssh-clients
如果輸入yum install ssh可能會報錯,報錯如下
ssh安裝成功界面
3.修改SSH配置文件
vim /etc/ssh/sshd_config
修改成如下圖(其實就是把前面 ‘#’ 刪除即可)
重啟SSH:
service sshd restart
進入當(dāng)前用戶下,生成秘鑰
cd /home/hadoop ssh-keygen -t rsa
一路回車
設(shè)置.ssh目錄和公秘鑰權(quán)限
sudo chmod 700 /home/hadoop sudo chmod 700 -R ~/.ssh sudo chmod 600 ~/.ssh/authorized_keys
配置本機免密碼登錄
cat id_rsa.pub >> authorized_keys
檢驗?zāi)芊駸o密碼ssh登錄本機
[hadoop@hadoop1 .ssh]$ssh hadoop1
第一次登錄需要回答yes,以后都不需要,可以直接登錄。
注意:這里生成密鑰建議在幾臺虛擬機克隆過后網(wǎng)絡(luò)配置、文件配置完成后施行,免密碼登錄這里直接影響最后格式化及節(jié)點啟動是否成功,所以筆者在最后設(shè)置,檢驗完免密碼登錄后,啟動格式化。
這里我配置了activenamenode到其他幾個datanode的免密碼登錄,即hadoop1到hadoop2、hadoop3、hadoop4的免密碼登錄,也可以設(shè)置雙向的。
hadoop1主機免密碼登錄hadoop2主機
1.進入hadoop1的.ssh目錄下
cd ~/.ssh
2.把authorized_keys復(fù)制到其他機器上,如節(jié)點hadoop2
scp authorized_keys hadoop@hadoop2:/home/hadoop/.ssh/temp
注意:若出現(xiàn)權(quán)限不足,可以root權(quán)限過去
scp authorized_keys root@hadoop2:/home/hadoop/.ssh/temp
3.進入hadoop2的.ssh目錄,修改擁有者和用戶組
cd ~/.ssh/ chown hadoop temp chgrp hadoop temp cat temp >> authorized_keys
現(xiàn)在可以從hadoop1免密碼登錄hadoop2,在hadoop1主機上
ssh hadoop2
成功后可以刪除臨時文件temp(這個臨時文件不需要新建,系統(tǒng)自己會建)
rm temp
從hadoop2主機免密碼登錄到hadoop1
1.在hadoop2上執(zhí)行
cd ~/.ssh scp authorized_keys hadoop@name:/home/hadoop/.ssh/temp
在hadoop1上執(zhí)行
cd ~/.ssh/ cat temp >> .ssh/authorized_keys
在hadoop2虛擬機上測試
ssh hadoop1
確定activenamenode可以免密碼登錄到任何一個datanode后,開始啟動節(jié)點,注意最起碼保證以上要求,在本例中應(yīng)該最少設(shè)置hadoop1能免密碼登錄到hadoop2、hadoop3、hadoop4,否則會出現(xiàn)最后格式化的時候出現(xiàn)連接不上其他幾臺虛擬機的報錯(原理嘛很簡單,就是namenode會與其他幾個datanode進行交互,如果設(shè)置了密碼,也不可能人工輸入密碼,程序就會報錯)。
2-3-1安裝過程
1.解壓安裝包
將已下載好的hadoop-2.6.0.tar.gz 存放在hadoop用戶目錄下, 并解壓至當(dāng)前主用戶目錄下.
tar -zxvf /home/hadoop-2.6.0.tar.gz -C /home/hadoop/
Apache Hadoop 各個版本的下載地址:http://archive.apache.org/dis...
2.配置Hadoop的環(huán)境變量
sudo vim /etc/profile
在末尾加上以下配置,保存退出
export HADOOP_HOME=/home/hadoop/hadoop-2.6.0 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3.環(huán)境變量生效
sudo source /etc/profile
2-3-2 文件配置
進入到目錄hadoop-2.6.0里的/etc/hadoop/目錄下進行文件的配置
1.vim hadoop-env.sh
增加java和hadoop環(huán)境變量及本地庫
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.121.x86_64 export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_HOME/lib/native"
2.修改core-site.xml文件
fs.defaultFS hdfs://hadoop1:8020
3.修改yarn-site.xml文件
yarn.resourcemanager.address hadoop1:8032 yarn.resourcemanager.scheduler.address hadoop1:8030 yarn.resourcemanager.webapp.address hadoop1:8088 yarn.resourcemanager.webapp.https.address hadoop1:8090 yarn.resourcemanager.resource-tracker.address hadoop1:8031 yarn.resourcemanager.admin.address hadoop1:8033 yarn.resourcemanager.scheduler.class org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler yarn.scheduler.fair.allocation.file ${yarn.home.dir}/etc/hadoop/fairscheduler.xml yarn.nodemanager.local-dirs /home/hadoop/yarn/local yarn.log-aggregation-enable true Where to aggregate logs to. yarn.nodemanager.remote-app-log-dir /tmp/logs yarn.nodemanager.resource.memory-mb 30720 yarn.nodemanager.resource.cpu-vcores 12 yarn.nodemanager.aux-services mapreduce_shuffle
注意resourcemanager是哪臺虛擬機,自己設(shè)定并修改配置。
4.修改mapred-site.xml文件
mapreduce.framework.name yarn mapreduce.jobhistory.address hadoop2:10020 mapreduce.jobhistory.webapp.address hadoop2:19888
主要設(shè)置standbynamenode節(jié)點相關(guān)端口號
5.設(shè)置hdfs-site.xml文件,這是比較核心的文件,經(jīng)常格式化不成功問題也出現(xiàn)在這里。
dfs.nameservices hadoop-test dfs.ha.namenodes.hadoop-test nn1,nn2 dfs.namenode.rpc-address.hadoop-test.nn1 hadoop1:8020 dfs.namenode.rpc-address.hadoop-test.nn2 hadoop2:8020 dfs.namenode.http-address.hadoop-test.nn1 hadoop1:50070 dfs.namenode.http-address.hadoop-test.nn2 hadoop2:50070 dfs.namenode.name.dir file:///home/hadoop/hdfs/name dfs.namenode.shared.edits.dir qjournal://hadoop2:8485;hadoop3:8485;hadoop4:8485/hadoop-test dfs.datanode.data.dir file:///home/hadoop/hdfs/data dfs.ha.automatic-failover.enabled false dfs.journalnode.edits.dir /home/hadoop/hdfs/journal/
可以在主目錄下建立hdfs文件夾,及里面的data,name,journal三個文件夾,有時候系統(tǒng)也會自動生成,這點諸位可以自行嘗試。
6.修改yarn-env.sh
加入java環(huán)境變量即可
7.修改slaves(即各個datanode 主機名),加入以下三行
hadoop2 hadoop3 hadoop4
8.在/home/hadoop/hadoop-2.6.0/etc/hadoop/目錄下新建一個文件fairsheduler.xml
touch fairsheduler.xml
將下面的內(nèi)容復(fù)制進去
102400 mb, 50 vcores 153600 mb, 100 vcores 200 300 1.0 root,yarn,search,hdfs 102400 mb, 30 vcores 153600 mb, 50 vcores 102400 mb, 30 vcores 153600 mb, 50 vcores
hadoop 啟動(HDFS , YARN啟動)
注意:所有操作均在Hadoop部署目錄下進行。
啟動Hadoop集群:
Step1 :在各個JournalNode節(jié)點上,輸入以下命令啟動journalnode服務(wù):
sbin/hadoop-daemon.sh start journalnode
通過jps可以查看到啟動情況
Step2:在[nn1]上,對其進行格式化,并啟動:
bin/hdfs namenode –format
觀察到如下界面即為格式化成功,status為0即為成功,若為1或者其他數(shù)字則有錯,請重新檢查之前的步驟。
格式化成功后,啟動acivenamenode
sbin/hadoop-daemon.sh start namenode
Step3:在[nn2]上,同步nn1的元數(shù)據(jù)信息:
bin/hdfs namenode -bootstrapStandby
觀察到如下圖,備用節(jié)點格式化成功
Step4:啟動[nn2]:
sbin/hadoop-daemon.sh start namenode
經(jīng)過以上四步操作,nn1和nn2均處理standby狀態(tài)
Step5:將[nn1]切換為Active
bin/hdfs haadmin -transitionToActive nn1
Step6:在[nn1]上,啟動所有datanode
sbin/hadoop-daemons.sh start datanode
查看數(shù)據(jù)節(jié)點啟動情況
Step7:啟動yarn:在[nn1]上,輸入以下命令
sbin/start-yarn.sh
此時在activenamenode下輸入jps,觀察到除了NameNode進程,還有ResourceManager的進程;在datanode下輸入jps,觀察到除了DataNode進程,還有NodeManager的進程,這里就不截圖了。
Step8:關(guān)閉hadoop集群:在[nn1]上,輸入以下命令
sbin/stop-dfs.sh
web地址訪問:
192.168.47.131:50070
activenamenode
Standbynamenode
192,168.47.132:50070
查看datanodes信息
在web端輸入 192.168.47.131:8088即可看到y(tǒng)arn工作界面
看到如上界面即表示hadoop YARN環(huán)境搭建部署ok了,第一次搭建打開網(wǎng)頁成功后,之后可能第二次格式化會出各種問題,筆者也在探索,還有后續(xù)內(nèi)容喔。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/24923.html
摘要:偽分布模式在單節(jié)點上同時啟動等個進程,模擬分布式運行的各個節(jié)點。完全分布式模式正常的集群,由多個各司其職的節(jié)點構(gòu)成。在之前在集群中存在單點故障。正確的下載鏈接會有,這個就是公司需要用戶在下載時提供的注冊信息。每一次 Hadoop 生態(tài)的更新都是如此令人激動像是 hadoop3x 精簡了內(nèi)核,spark3 在調(diào)用 R 語言的 UDF 方面,速度提升了 40 倍所以該文章肯定得配備上最新的生態(tài)h...
閱讀 2365·2021-11-16 11:52
閱讀 2338·2021-11-11 16:55
閱讀 765·2021-09-02 15:41
閱讀 2997·2019-08-30 15:54
閱讀 3156·2019-08-30 15:54
閱讀 2265·2019-08-29 15:39
閱讀 1520·2019-08-29 15:18
閱讀 981·2019-08-29 13:00