Hadoop完全分散式模式安裝(採用三臺虛擬主機模擬環境)
作業系統: CentOS6.7
jdk: jdk-8u221
hadoop: 2.7.3
一. 解除安裝系統自帶jdk並安裝準備好的jdk
1. 檢視: rpm -qa | grep jdk
2.解除安裝: yum -y remove xxxx
3.安裝jdk1.8
解壓jdk包
tar zxvf jdkxxxx.tar.gz
重新命名:mv jdk1.8.0_221/ jdk1.8
或者給jdk目錄建立軟連線 ln -s jdk1.8 jdk ( 用jdk 代替jdk1.8)
配置jdk環境變數(我裝在全域性下,所以修改的配置檔案是/etc/profile,如果是普通使用者則修改 ~/.bashrc)
使配置生效: source /etc/profile (普通使用者 source ~./bashrc)
使用java -version 可以檢視安裝的jdk版本
二. 解壓hadoop壓縮包
tar zxvf hadoopxxxx.tar.gz
修改名字為hadoop2.7: mv hadoop-2.7.3 hadoop2.7
配置環境變數
vi profile
source /etc/profile
測試一下
成功了, 系統找到了hdfs命令在的目錄
三.克隆出另外兩臺主機
主機1 : hostname:hadoop1 ip:192.168.253.128
主機2 : hostname:hadoop2 ip:192.168.253.129
主機3 : hostname:hadoop3 ip:192.168.253.130
按以上分配修改相應的系統配置
四. 配置主機間兩兩免密登入(每臺主機都要做)
修改/etx/hosts 檔案 ,在末尾追加
關閉防火牆 :
永久關閉: chkconfig iptables off
在hadoop1上生成金鑰對
$ ssh-keygen -t rsa
連續敲三次回車後會在~下生成.ssh資料夾.
將hadoop1公鑰 id_rsa.pub複製到hadoop1,hadoop2,hadoop3中
$ ssh-copy-i ~/.ssh/id_rsa.pub hadoop1
$ ssh-copy-i ~/.ssh/id_rsa.pub hadoop2
$ ssh-copy-i ~/.ssh/id_rsa.pub hadoop3
...
測試一下 在任意一臺主機上輸入ssh hadoop2
不用輸入密碼即可登入hadoop2 即表示免密成功
五. ntp服務(centos自帶了就不贅述)
六. 設定Hadoop配置檔案
1.vi hadoop-env.sh
2.vi core-site.xml
每一臺都要建立這個tmp資料夾
3. vi hdfs-site.xml
4. cpmapred-site.xml.template mapred-site.xml
vi mapred-site.xml
5. vi yarn-site.xml
6. vi slavers
7. 分發配置到hadoop2,hadoop3
scp -r ~/hadoop2.7/etc/hadoop roshan@hadoop2:~/hadoop2.7/etc/
scp -r ~/hadoop2.7/etc/hadoop roshan@hadoop3:~/hadoop2.7/etc/
七.啟動Hadoop
初始化namenode :hdfs namenode -format
啟動hadoop: start-all.sh
在hadoop1裡有一下程序
在hadoop2,hadoop3中有
說明分散式成功搭建
在windows瀏覽器中開啟192.168.253.128:50070/192.168.253.128:50090
可以看到有兩個datanode