Hadoop ssh配置设置

来源:互联网 发布:淘宝佣金软件购买 编辑:程序博客网 时间:2024/04/20 00:13

一.   配置机器名 

配置/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都只有用户自己有写权限。否则验证无效。

DataNode节点执行
  • mkdir ~/.ssh (如果没有 ~/.ssh 文件夹的话)
  • chmod 700 ~/.ssh/
  • 追加NameNode的authorized_keys到自身的authorized_keys中,可以在NameNode执行
    scp ~/.ssh/authorized_keys hadoop@10.1.243.27:~/.ssh/temp

    ,然后在DataNode上执行cat temp >> authorized_keys, rm temp
  • chmod 600 ~/.ssh/authorized_keys

配置结束后,可以在NameNode上执行

ssh DataNode机器名
来验证配置是否成功
注意:DataNode节点的~/.ssh/authorized_keys必须有其关联的所有NameNode的公钥

三. 环境变量设置

环境变量位置 ~/.bash_profile

环境变量设置

JAVA_HOME=/home/hadoop/jdk1.6.0_21export JAVA_HOMEPATH=$JAVA_HOME/bin:$PATHexport PATHexport HADOOP_DEV_HOME=/home/hadoop/hadoop-0.23.0export HADOOP_MAPRED_HOME=${HADOOP_DEV_HOME}export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}export YARN_HOME=${HADOOP_DEV_HOME}export PATH=$HADOOP_DEV_HOME/bin:$HADOOP_DEV_HOME/sbin:$PATH

四. 其他:

Hadoop-0.23的配置文件默认在etc/hadoop下,具体参数请参考附件core-site.xml和hdfs-site.xml
每个NameNode的slaves文件可以不一样,就是说可能一个集群中,某NameNode管理4个节点,某NameNode管理2个节点

运行

http://NameNode IP:50070/dfsclusterhealth.jsp

查看Federation情况
NameNode IP:50070/

查看各个NameNode情况

在Hadoop根目录执行 

hadoop jar hadoop-mapreduce-examples-0.23.0.jar pi -Dmapreduce.clientfactory.class.name=org.apache.hadoop.mapred.YarnClientFactory -libjars modules/hadoop-mapreduce-client-jobclient-0.23.0.jar 16 10000

如果打印出PI值,说明Hadoop可以正常运行了补充

如果机器之间连接出问题,可能需要关闭防火墙 

service iptables stop

和关闭sellinux
vi /etc/selinux/config

官方的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安全.
0 0
原创粉丝点击