一. 配置机器名
配置/etc/hosts和/etc/sysconfig/network
注意:NameNode的hosts文件必须有其slaves指定的所有节点的机器名
二. ssh设置 (hadoop中需要在namenode 和 datanode 中直接连接集群内的机器,需要配置ssh)
NameNode节点运行
- ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
- cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
注意(转):
假设 A 为客户机器,B为目标机;
要达到的目的:
A机器ssh登录B机器无需输入密码;
加密方式选 rsa|dsa均可以,默认dsa
做法:
1、登录A机器
2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;
ssh-keygen做密码验证可以使在向对方机器上ssh ,scp不用使用密码.
具体方法如下:
ssh-keygen -t rsa
然后全部回车,采用默认值.
这样生成了一对密钥,存放在用户目录的~/.ssh下。
将公钥考到对方机器的用户目录下,并拷到~/.ssh/authorized_keys中。
要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效。
要达到的目的:
A机器ssh登录B机器无需输入密码;
加密方式选 rsa|dsa均可以,默认dsa
做法:
1、登录A机器
2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;
ssh-keygen做密码验证可以使在向对方机器上ssh ,scp不用使用密码.
具体方法如下:
ssh-keygen -t rsa
然后全部回车,采用默认值.
这样生成了一对密钥,存放在用户目录的~/.ssh下。
将公钥考到对方机器的用户目录下,并拷到~/.ssh/authorized_keys中。
要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效。
DataNode节点执行
注意:DataNode节点的~/.ssh/authorized_keys必须有其关联的所有NameNode的公钥
- mkdir ~/.ssh (如果没有 ~/.ssh 文件夹的话)
- chmod 700 ~/.ssh/
- 追加NameNode的authorized_keys到自身的authorized_keys中,可以在NameNode执行
,然后在DataNode上执行cat temp >> authorized_keys, rm temp - chmod 600 ~/.ssh/authorized_keys
配置结束后,可以在NameNode上执行
来验证配置是否成功注意:DataNode节点的~/.ssh/authorized_keys必须有其关联的所有NameNode的公钥
三. 环境变量设置
环境变量位置 ~/.bash_profile
四. 其他:
Hadoop-0.23的配置文件默认在etc/hadoop下,具体参数请参考附件core-site.xml和hdfs-site.xml
每个NameNode的slaves文件可以不一样,就是说可能一个集群中,某NameNode管理4个节点,某NameNode管理2个节点
运行
查看Federation情况
查看各个NameNode情况
在Hadoop根目录执行
如果打印出PI值,说明Hadoop可以正常运行了 补充
如果机器之间连接出问题,可能需要关闭防火墙
和关闭sellinux
官方的log4j.properties在我这有问题,增加log4j.appender.NullAppender=org.apache.log4j.varia.NullAppender这行就可以了
补充2011-12-23:现在已经有这个patch,https://issues.apache.org/jira/browse/HADOOP-7837
------------------------------------------------------------------------------------------------------
命令补充:
拷贝命令 scp~/.ssh/authorized_keysocdc_dev@10.1.253.99:~/.ssh/temp
scp 源文件 其他机器用户名@IP:目标文件
拷贝文件夹: scp -r ~/bin/jdk1.6.0_21 ocdc_dev@10.1.253.99:~/bin/jdk1.6.0_21
scp 是可以拷贝通过配置ssh的两台电脑之间的数据,数据加密,比FTP安全.