一 实验环境:
1.三台物理机(可以虚拟机虚拟出的三台主机),其中一台做为主节点(namenode)ip:192.168.30.50,两台做为从节点(datanode)ip:192.168.30.51 / 192.168.30.52
2.为每一台主机安装JDK1.6以上,并设置好环境变量,推荐(如:JAVA_HOME=/usr/java/java1.7.0_17),配置好后可以通过:java -version检验是否安装成功;
3.为每一台主机安装SSH。
4.为每台主机创建一个运行hadoop的用户:useradd hdtest。
二 实验具体步骤
1.在每台主机上分别设置/etc/hosts和/etc/hostname.
例如:master主机
slave1主机
配置好后要重启网络配置:/etc/rc.d/init.d/network restart,实在不行就重启主机,一点要保证hostname相同。
2.在每台主机上生成密钥对,以普通用户身份(hdtest)登录
首先,在/home/hdtest目录下创建.ssh隐藏目录
#生成密钥(在每个节点上执行)
ssh-keygen -t rsa
#改变目录密钥文件夹的权限
chmod 755 .ssh
###把每个节点上的id_rsa.pub文件(公钥)都复制到主节点的authorized_keys文件中
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
#修改公钥文件的权限(注意因为ssh安全要求,公钥文件的权限不能设置的太低)
chmod 644 .ssh/authorized_keys
其次,把每个主机中authorized_keys文件内容拷贝到一起,替换原来authorized_keys文件,也就是说,每个主机authorized_keys文件中都包含三个公钥(可用winscp工具可视化操作)。也可以用 scp ~/.ssh/id_rsa.pub hdtest@slave1:~/.ssh/authorized_keys
结果如图:
#各个节点之间相互登录,注意本机也要登录
ssh 192.168.157.96ssh 192.168.157.97
ssh localhost
ssh设置后的主节点的.ssh目录下的文件
3.配置三台主机的Hadoop文件
1).将hadoop软件包放到/home/hdtest目录下,并以hdtest的身份解压;
2)conf/Hadoop-env.sh:
export JAVA_HOME="你的java安装地址“(/usr/java/jdk1.7.0.17)
3)修改hadoop的配置文件,共需要修改三个文件,可以先在一台机器上配置好之后再分发到各个节点上
hadoop-0.20.2/conf/master 存放主节点的ip
hadoop-0.20.2/conf/slaves 存放从节点的ipca
masters和slaves文件
4)hadoop-0.20.2/conf/core-site.xml 配置hdfs路径、临时目录等信息,可以按照如下所示的配置修改
5)hadoop-0.20.2/conf/mapred-site.xml 配置map reduce任务调度进程(job),可以按照如下所示的配置修改
//这里空行或空格了可能会报错
6)conf/hdfs-site.xml:
4.在~/hadoop -0.2.0/bin目录
###启动hadoop启动前先格式化namenode节点
使用bin/start-all.sh启动hadoop
###观察hadoop的状态hadoop监控页面:http://192.168.30.50:50070/dfshealth.jsp和http://192.168.30.50:50030/jobtracker.jsp
使用jdk中的jps查看启动的java进程
over