Hadoop基于3台虚拟机下的集群配置
1. 准备工作
先虚拟出3台虚拟机 (本实验使用的是fedora 18+VMware Workstation 9)
Jdk-6u16-linux-i586-rpm.bin
机器名 |
Ip地址 |
作用 |
master |
192.168.253.133 |
NameNode、JobTracker |
slave1 |
192.168.253.137 |
DataNode、TaskTracker |
slave2 |
192.168.253.135 |
DataNode、TaskTracker |
hadoop-1.2.1.tar.gz
2. 先设定主机名,每台主机名都不一样
2.1在192.168.253.133设置如下:
#echo “master” >hostname
#mv hostname /etc/hostname
#hostname –F /etc/hostname
检查是否设置正确
#hostname
出现master则表示设置正确
2.2在192.168.253.137设置如下
#echo “slave1” >hostname
#mv hostname /etc/hostname
#hostname –F /etc/hostname
检查是否设置正确
#hostname
出现slave1则表示设置正确
2.3在192.168.253.135设置如下
#echo “slave2” >hostname
#mv hostname /etc/hostname
#hostname –F /etc/hostname
检查是否设置正确
#hostname
出现slave2则表示设置正确
2.4配置每台机器的/etc/hosts 保证各台机器之间通过机器名可以互访,实例配置如下(每台机器都配置)
192.168.253.133 master
192.168.253.137 slave1
192.168.253.135 slave2
3. 在3台虚拟机上分别安装jdk(方法相同,以下只举一个实例,读者可在3台虚拟机上用同样的方法配置)
2.1卸载fedora 18自带的openjdk(因为其javac命令不能用)#yum –y remove java 全名
2.2安装Jdk-6u16-linux-i586-rpm.bin
#chmod +x jdk-6u16-linux-i586-rpm.bin
#./jdk-6u16-linux-i586-rpm.bin
然后ctrl+C翻页 选择yes
2.3配置/etc/profile(设置环境变量)
在done的后面、unset i的前面输入
#set java environment
export JAVA_HOME=/usr/java/jdk1.6.0_16
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
2.4测试是否成功
#java –version
能出现自己配置的java版本则说明已安装配置成功。
如果出现
则说明linux自带有openssh
在"master" 上操作
接着将key产生并复制到其他node上
# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ""
# cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
# scp -r ~/.ssh slave1:~/
# scp -r ~/.ssh slave2:~/
3.3 测试是否能无密码登陆
解压:tar -zvxf hadoop-1.2.1.tar.gz
hadoop 的主要配置都在 hadoop-1.2.1 /conf 下。
(1) 在 conf/hadoop-env.sh 中配置 Java 环境
export JAVA_HOME=jdk的路径
(2) 配置 conf/core-site.xml, conf/hdfs-site.xml 及 conf/mapred-site.xml
core-site.xml的配置
hdfs-site.xml的配置 ( replication 默认为 3 ,如果不修改, datanode 少于三台就会报错)
mapred-site.xml的配置
配置conf/masters和conf/slaves来设置主从结点,注意最好使用主机名,并且保证机器之间通过主机名可以互相访问,每个主机名一行
(1)格式化文件系统 #bin/hadoop namenode – format
(2)启动hadoop:bin/start-all.sh
(3)用jps命令查看进程 master
slave2