Hadoop 有三种分布模式,Standalone-distributemode, Pseudo-distribute mode, Full-distribute.
前期准备工作:
背景:
Fedora 15
两台计算机。johnny(10.63.0.230),cloud(10.63.0.17)。johnny作为Namenode和JobTracker。cloud作为DataNode和TaskTracker。
1、安装jdk,配置环境变量
2、安装Hadoop,配置环境变量
3、Hadoop要求集群计算机上用户名必须一致,所以现在cloud机上建立一个名为johnny的用户。
For hadoop, the accounts should have the same username on all ofthe nodes
但是节点计算机(cloud)无需使用johnny登陆。具体请参考Hadoopin Action第二章。
4、配置SSH(伪分布、全分布需要,单机分布不需要)
先对johnny机做如下操作:
修改/etc/hosts 文件
这个文件告诉本主机哪些域名对应那些ip,那些主机名对应哪些
一般情况下hosts文件的每行为一个主机,每行由三部份组成,每个部份由空格隔开。其中#号开头的行做说明,不被系统解释。
第一部份:网络IP地址;第二部份:主机名或域名;第三部份:主机名别名;
向此文件中加入:
10.63.0.230 johnny johnny
10.63.0.17 cloud cloud
试一试能否ping通。
$ ping cloud
开启sshd:
#service sshd start
开启ssh-agent
$ ssh-agent
将私钥加入到agent
$ ssh-add ~/.ssh/id_sra
(可能需要关闭防火墙 #serviceiptables stop,或者开启22端口)
生成公钥:
$ ssh-keygen -t -rsa
一路回车敲到底,不要输入密码,否则无法实现免密码登陆。
生成的公钥将储存在~/.ssh/下。有两个文件id_rsa.pub(公钥),id_rsa(私钥)。
将公钥发送给cloud机以便能与其相连:
$ ssh-copy-id johnny@cloud
代码含义:将自己的公钥拷贝给cloud(10.63.0.17)上的johnny用户。(此公钥内容将写入cloud上johnny用户的~/.ssh/authorized_keys中)
在此期间会要求输入johnny@cloud'spassword,johnny用户在cloud这台机器上的密码。
试一试能否与其建立链接sshjohnny@cloud
断开链接请使用命令:
$ logout
(伪分布是一台计算机既当NameNode又当DataNode,既当JobTracker又当TaskTracker,所以伪分布要求自己能够ssh连接自己,所以需要将公钥拷贝给自己,$ssh-copy-idjohnny@localhost,可以试验一下是否可以登陆自己sshjohnny@localhost,记得logout)
现在可以给 johnny@cloud传送文件了。使用scp命令(具体使用见下文)。这样等配置完主机的信息后,可以将整个hadoop、jdk目录传送给节点计算机(见下文)。
单机分布模式
无需配置,安装好Hadoop后默认为单机分布模式