2.1系统环境:
宿主机器:
CPU:Intel(R) Core™ i3 CPU M 380 @ 2.53GHz
内存:4G
硬盘:500G
操作系统:Win7 32Bit 无线上网
Linux 版本:
CentOS-6.3-i386-minimal
虚拟机版本
VirtualBox 4.2.12
采用host-only上网方式
计划安装3个CentOS虚拟机,实现完整分布式模式。
hadoop1,hadoop2,hadoop3 分别内存为512M,硬盘容量为10G。
环境如下:
虚拟机ip地址:
2.2 hadoop具体安装过程:
安装wget:
安装jdk
配置java环境变量
vi /etc/profile 添加:
JAVA_HOME=/usr/java/jdk1.6.0_45
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH JAVA_HOME CLASSPATH
source /etc/profile使配置生效
关闭本虚拟机。
halt –p
复制虚拟机
复制hadoop1
同样复制hadoop2,hadoop3
通过VirtualBox的新建功能把刚才hadoop1-3创建到虚拟机中。
设置虚拟机启用PAE/NX
虚拟机启动后:
rm /etc/udev/rules.d/70-persistent-net.rules
重启
然后配置虚拟机ip:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
配置结果如下:
hadoop1:192.168.137.3
hadoop2:192.168.137.4
hadoop3:192.168.137.5
配置ssh互信
首先配置host,便于以后用主机名直接访问各主机,省去了输入IP地址的麻烦
vi /etc/hosts 添加内容如下,三台机器配置相同:
192.168.137.3 hadoop1.localdomain hadoop1
192.168.137.4 hadoop2.localdomain hadoop2
192.168.137.5 hadoop3.localdomain hadoop3
各项以tab键隔开。
重启生效
登陆每台机器执行生成密钥命令。
将所有的公钥文件 id_rsa.pub汇总到一个总的认证文件authorized-keys中
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh hadoop@hadoop2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh hadoop@hadoop3 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
目前hadoop1上存在一份完整的认证key文件,这时候,把她拷到hadoop2,hadoop3主机的对应目录下
验证:
SSH互信配置完成。
配置hadoop
回到hadoop1虚拟机内,使用wget 命令下载hadoop 0.20
wget http://mirror.bjtu.edu.cn/apache/hadoop/common/stable/hadoop-1.0.4.tar.gz
解压
创建tmp文件夹
配置core-site.xml文件
修改Hadoop核心配置文件core-site.xml,这里配置的是HDFS的地址和端口号。
vi /home/hadoop/hadoop-1.0.4/conf/core-site.xml
配置hdfs-site.xml文件
修改Hadoop中HDFS的配置,配置的备份方式默认为3。
配置mapred-site.xml文件
修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端配置的是JobTracker的地址和端口。
配置masters文件
配置slaves文件(Master主机特有)
配置hadoop-env.sh 添加export JAVA_HOME=/usr/java/jdk1.6.0_45
现在在Master机器上的Hadoop配置就结束了,剩下的就是配置Slave机器上的Hadoop。
把Hadoop文件夹复制到其他机器的"/home/hadoop"目录下,然后根据实际情况进行配置,不要配置slaves文件
scp ~/.ssh/authorized_keys hadoop@hadoop2:~/.ssh/
scp ~/.ssh/authorized_keys hadoop@hadoop3:~/.ssh/
格式化namenode
这一步在主结点master上进行操作:
启动hadoop
在启动前关闭集群中所有机器的防火墙
这一步也在主结点master上进行操作:
用jps检验各后台进程是否成功启动
在主结点上查看namenode,jobtracker,secondarynamenode进程是否启动。
正常
在hadoop2和hadoop3上
至此,hadoop完整分布式模式安装完成。