基礎設備
宿主機器:
CPU:Intel® Core™ i5-2400 CPU @ 3.10GHz
內存:4G
硬盤:500G
操作系統:Win7 32Bit
Linux 版本:
CentOS-6.2-x86_64-minimal.iso
虛擬機版本
VirtualBox 4.2.0 RC1
計划安裝3個CentOS虛擬機,實現完整分布式模式。
h1,h2,h3 分別內存為512M,硬盤容量為20G。
虛擬機配置
新建虛擬機。
內存預先設置為1G,安裝完成后調整為512M。1G以上內存方可使用GUI安裝。
加載ISO光盤鏡像。
網絡方式使用 橋接網卡 最為簡單。
具體介紹:http://www.douban.com/group/topic/15558388/
配置完成后,直接啟動該虛擬機。
跳過光盤檢測。
下面是配置鍵盤與語言等選項,一路next下去,注意網絡配置畫面。
分區配置。
然后配置管理員密碼等。
完成安裝,重新啟動虛擬機。
正常登錄后,在shell命令中,輸入uname –r,查看Linux版本內核。
輸入ifconfig eth0 查看是否正常獲取IP地址,使用ping命令確認能否上網。
使用yum update -y命令將系統更新。(163下載的ISO自動在163的鏡像上下載。)
時間較長!
使用yum install –y wget 將下載工具安裝。
徹底關閉Linux中的Iptables。
命令行中:service iptables stop && chkconfig iptables off
一般linux中都已經開啟了ssh功能。
下載隨意windows下的ssh客戶端,例如:Xshell、SecureCRT、PuTTY 、Xmanager等。
登錄后,使用此命令下載JAVA JDK
[root@h1 ~]# wget http://210.75.11.10/ jdk-7u7-linux-x64.rpm
[root@h1 ~]# rpm -ivh jdk-7u7-linux-x64.rpm
安裝JAVA JDK
配置系統環境變量。
[root@h1 ~]# vi /etc/profile
添加
JAVA_HOME=/usr/java/jdk1.7.0_07
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH JAVA_HOME CLASSPATH
[root@h1 ~]# java –version 測試是否成功。
新增運行的hadoop用戶,並配置密碼。
將grid 添加到管理員組。
接下來,關閉本虛擬機。
halt –p
復制虛擬機
復制h1
C:\Program Files\Oracle\VirtualBox>VBoxManage clonehd "D:\Linux\CentOS\h1.vdi" "D:\Linux\CentOS\h2.vdi"
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 74a09b9d-c4d8-4689-9186-87e34e4b5265
復制h3
C:\Program Files\Oracle\VirtualBox>VBoxManage clonehd "D:\Linux\CentOS\h1.vdi" "D:\Linux\CentOS\h3.vdi"
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 110c9759-c9c3-4867-9721-3633dfe02384
將虛擬機文件添加到VirtualBox內。命名分別為h1,h2,h3。
分別登錄3台虛擬機內,將IP地址與hostname,hosts修改正確,使之能互相ping通。
192.168.3.230 h1
192.168.3.231 h2
192.168.3.232 h3
vi /etc/hosts
復制的h2 h3同樣要做以下修改。
vi /etc/sysconfig/network
命令行中輸入hostname=h2 立即生效。
修改IP地址。
vi /etc/sysconfig/network-scripts/ifcfg-eth0
直接修改配置文件IPADDR和 HWADDR(抄VBOX上的MAC地址)還不能使網卡變更。
最簡單的解決辦法是直接刪除70-persistent-net.rules配置文件
rm -fr /etc/udev/rules.d/70-persistent-net.rules
reboot
重啟系統就ok了,系統會自動生成一個新的。
配置ssh互信
分別啟動h1,h2,h3虛擬機,互相ping確認是否能通。
然后分別使用grid用戶,正常登錄每台機器執行生成密鑰命令。
ssh-keygen –t rsa
回到h1主機上,使用跨主機的管道和重定向將h2,h3主機上的公鑰id_rsa.pub添加到h1上的authorized_keys文件中。
分別將通過
ssh h2 cat ~/.ssh/id_rsa.pub && ssh h3 cat ~/.ssh/id_rsa.pub
添加到
authorized_keys
完成后,authorized_keys文件變成了三大段。
然后分別scp 復制到h2,h3機器中。
scp authorized_keys grid@h2:~/.ssh/
驗證成功。
SSH互信配置完成。
配置hadoop下載hadoop
回到h1虛擬機內,使用wget 命令下載hadoop 0.20。(如果沒有安裝wget可以yum install –y wget安裝。)
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-0.20.2/hadoop-0.20.2.tar.gz
使用Xshell操作會簡便很多,可以在windows與linux間復制。

解壓hadoop
[grid@h1 ~]$ tar zxvf hadoop-0.20.2.tar.gz
分別修改core-site.xml、hdfs-site以及mapred-site.xml
:wq保存退出。
[grid@h1 conf]$ vi mapred-site.xml
:wq保存退出。
[grid@h1 conf]$ vi hdfs-site.xml
:wq保存退出。
配置hadoop-env.sh文件
再次確認java jdk安裝在/usr/java/jdk1.7.0_07目錄下面。
[grid@h1 conf]$ vi hadoop-env.sh
:wq保存退出。
修改masters和slaves文件
分別存盤退出。
向各節點復制hadoop目錄
[grid@h1 ~]$ scp -r hadoop-0.20.2 h2:~/
[grid@h1 ~]$ scp -r hadoop-0.20.2 h3:~/
格式化分布式文件系統
格式化成功。
啟動守護進程
輸入一次yes后,無需再輸入。
檢測守護進程啟動情況
[grid@h1 hadoop-0.20.2]$ /usr/java/jdk1.7.0_07/bin/jps
jps工具查看java進程。
至此,hadoop完整分布式模式安裝完成。