1、用vmware安装3个Ubuntu虚拟机。分别命名为shit-master、shit-slave-1、shit-slave-2,ip地址分别为192.168.59.129、192.168.59.130、192.168.59.131。
2、分别登陆3台虚拟机,用sudo vim /etc/hosts命令修改hosts文件,增加ip地址与名称的映射关系:
192.168.59.129 shit-master
192.168.59.130 shit-slave-1
192.168.59.131 shit-slave-2
3、在3台虚拟机上安装jdk。下载jdk1.6.0_45.tar.gz ,解压到/usr/share目录下,编辑/etc/profile文件在末尾加上:
export JAVA_HOME=/usr/share/jdk1.6.0_45
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
4、建立master机与slave之间的免密码ssh登陆。首先登陆shit-master,执行命令:
ssh-keygen -t rsa
执行成功后,会在主文件目录下的.ssh文件夹生成3个文件:
id_rsa id_rsa.pub known_hosts
在shit-master上依次执行以下命令(这3台虚拟机的用户名都是shit):
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys shit@192.168.59.130:~/.ssh/
scp ~/.ssh/authorized_keys shit@192.168.59.131:~/.ssh/
5、从apache的官网下载hadoop-1.2.0.tar.gz ,通过vmware的share folders,将压缩包拷贝到shit-master的主文件目录,并解压到当前目录下
6、编辑hadoop-1.2.0/conf下的hadoop-evn.sh ,在开头加上:
export JAVA_HOME=/usr/share/jdk1.6.0_45
修改同目录下的mapred-site.xml,在<configuration></configuration>之间加上:
<property>
<name>mapred.job.tracker</name>
<value>192.168.59.129:9001</value>
</property>
修改core-site.xml,在<configuration></configuration>之间加上:
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.59.129:9000</value>
</property>
<!--设置文件路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/shit/tmp</value>
</property>
修改hdfs-site.xml,在<configuration></configuration>之间加上:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
修改masters的文件内容为:
192.168.59.129
修改slaves的文件内容为:
192.168.59.130
192.168.59.131
7、大功告成。进入hadoop目录下的bin目录,执行命令启动hadoop:
./start-all.sh
如果有类似下面的文字,选择yes,下次就不会出现了。
The authenticity of host '192.168.59.129 (192.168.59.129)' can't be established.
ECDSA key fingerprint is fa:7c:d6:52:5f:3d:a5:5c:8f:54:c9:91:a7:d4:87:84.
Are you sure you want to continue connecting (yes/no)?
通过以下URL 可查看MapReduce是否启动成功:
http://192.168.59.129:50030/jobtracker.jsp
通过以下URL可查看HDFS是否启动成功:
http://192.168.59.129:50070/