各操作命令的详细原理性说明请参考 http://www.cnblogs.com/lanxuezaipiao/p/3525554.html,这里只是把关键步骤列一下,方便自己今后安装。该网址上还列出了一些可能的错误,本文略去安装过程中没有出现的错误,按照本文操作步骤若出现错误也首先参考该网址。
集群环境下最少可以只有两台机器,但建议最少配三台,因为两台机器的话,一台master负责分发任务,一台slave负责执行任务,效果与单机环境没有很大的区别,也就失去了搭建集群的意义。但为简单起见,本文介绍只有两台机器的情况,利用本文的配置方法,可以任意增加多台slave.
首先如果只配两台机器,hdfs-site.xml文件中value字段要配成“1”,这样可以保证只有一个副本
1. /etc/hostname与/etc/hosts配置
我的环境如下:
一台ubuntu13.10机器,IP:114.212.84.164,作为master, /etc/hostname中写入master
一台fedora19机器,IP:114.212.85.58,作为slave, /etc/hostname中写入master
/etc/hosts应当写入:
127.0.0.1 master
114.212.84.164 master
114.212.85.58 slave
第一行中应填每台机器的/etc/hostname中的主机名,后两行两台机器配置相同
这项配置完成后要重启机器,重启后先互相ping IP,看是否能ping通,然后再互相ping主机名,如果能ping通,这部分工作完成。
2. ssh无密码验证配置
首先是安装,不再多说,下面是master主机上的操作经过:
1)进入/home/hadoop目录,敲命令ssh-keygen -t rsa,一路回车,会生成一个隐藏文件夹.ssh(命令行下能看到), 进入.ssh目录,看到生成的密钥对id_rsa(私钥)、id_rsa.pub(公钥)
2)把id_rsa.pub(公钥)追加到授权的key里面去:
cat id_rsa.pub >> authorized_keys
查看并修改新生成的authorized_keys文件的权限:chmod 600 authorized_keys
3)root用户登录并修改/etc/ssh/sshd_config文件的内容:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
以上几行去注释并修改成如上内容
4)设置完后重启ssh服务:service ssh restart
用ssh localhost测试是否可以免密码登录本机,注意测试一定是在hadoop帐户下,别的帐户因为没有生成密钥,所以仍然会要求输密码
5)将公钥拷贝到slave机器上
ssh-copy-id hadoop @slave(slave机器名),会提示输入密码
拷贝完成后,测试ssh hadoop @slave或ssh slave应当都可以免密码登录
注意:若测试ssh root@slave应当是要输密码的,这是一个权限问题
然后在slave机器上将1)~5)步重新来一遍
3. 前两步完成后可以安装hadoop,只需安装master,安装方法参考上一篇博客
配置文件中需要ip的地方将localhost改为主机IP(114.212.84.164),与单机相比要多配置两个文件,conf下masters与slaves,两个文件均写上真实的master与slave主机名即可,也可以直接写IP
注意:masters文件一般只有一个值,slaves文件可以有多个值
配置完后拷贝,两个文件,JAVA与hadoop(注意为避免麻烦,所有机器的java,hadoop目录结构都保持相同),命令:
scp -r /home/hdoop(源拷贝目录)root@slave:/home/hadoop(目标目录)
注意:一定要用root帐户,因为需要有创建目录的权限,会要求输密码
拷贝后,这两个文件默认是root帐户的,这样使用起来有诸多不便,root下改一下权限:
chown -R hadoop:hadoop(用户名:用户组)hadoop(目标文件夹)
注意:ubuntu下进入root帐户最好使用sudo su或者sudo -s -H临时进入一下,建议不要永久开启此帐号。
4. 这时可以启动了,只需在主机(master)上启动即可:
master上三个进程:JobTracker、NameNode、SecondaryNameNode
slave上两个进程:TaskTracker、DataNode
阅读(1453) | 评论(0) | 转发(0) |