zoukankan      html  css  js  c++  java
  • Hadoop ssh配置设置

    一.   配置机器名 

    配置/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_21
    export JAVA_HOME
    
    PATH=$JAVA_HOME/bin:$PATH
    export PATH
    
    export HADOOP_DEV_HOME=/home/hadoop/hadoop-0.23.0
    export 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安全.


  • 相关阅读:
    [POI2014]KUR-Couriers
    [题解向] Luogu4092 [HEOI2016/TJOI2016]树
    [探究] OI中各种初级数论算法相关
    [SCOI2005]骑士精神
    [intoj#7]最短距离
    数列分块入门
    动态规划问题基础
    Luogu P1967 货车运输
    Luogu P3379 【模板】最近公共祖先(LCA)
    Luogu P3378 【模板】堆
  • 原文地址:https://www.cnblogs.com/java20130722/p/3206997.html
Copyright © 2011-2022 走看看