Hadoop EC2主机中MapReduce中的SSH错误

Hadoop EC2主机中MapReduce中的SSH错误,hadoop,amazon-ec2,mapreduce,Hadoop,Amazon Ec2,Mapreduce,我已经在AmazonEC2主机上安装了ApacheHadoopMapReduce2.6.1,并使用私有IP地址配置了运行时。您可以在下面[2-5]检查我的配置 为了缓解调试问题,我允许安全组中的所有入站流量[6] 问题是,当我启动MapReduce时,SSH密钥中的权限被拒绝 我已经注意到我不能sshEC主机来自同一个主机。如何修复此错误ubuntu@ip-XXX-XX-XX-XX:sshubuntu@ip-XXX-XX-XX 我想在EC2中不同站点上运行的HDFS实例之间复制数据。使用主机的专

我已经在AmazonEC2主机上安装了ApacheHadoopMapReduce2.6.1,并使用私有IP地址配置了运行时。您可以在下面[2-5]检查我的配置

为了缓解调试问题,我允许安全组中的所有入站流量[6]

问题是,当我启动MapReduce时,SSH密钥中的
权限被拒绝

  • 我已经注意到我不能
    ssh
    EC主机来自同一个主机。如何修复此错误<代码>ubuntu@ip-XXX-XX-XX-XX:sshubuntu@ip-XXX-XX-XX
  • 我想在EC2中不同站点上运行的HDFS实例之间复制数据。使用主机的专用IP地址正确吗
  • [1] 我犯的错误

    ubuntu@ip-XXX-XX-XX-XX:~/Programs/medusa-2.0$ start-all.sh 
    This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
    15/12/16 10:52:18 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    Starting namenodes on [ip-XXX-XX-XX-XX]
    ip-XXX-XX-XX-XX: Permission denied (publickey).
    ip-XXX-XX-XX-XX: Permission denied (publickey).
    Starting secondary namenodes [0.0.0.0]
    0.0.0.0: Permission denied (publickey).
    15/12/16 10:52:23 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    starting yarn daemons
    starting resourcemanager, logging to /home/ubuntu/Programs/hadoop-2.6.2/logs/yarn-ubuntu-resourcemanager-ip-XXX-XX-XX-XX.out
    ip-XXX-XX-XX-XX: Permission denied (publickey).
    
    [2] web-site.xml

    ubuntu@ip-XXX-XX-XX-XX:~/Programs$ cat ./hadoop/etc/hadoop/yarn-site.xml 
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    
    <!-- Put site-specific property overrides in this file. -->
    <configuration>
     <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property>
     <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>  
     <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property>
     <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>ip-XXX-XX-XX-XX:8025</value> </property>
     <property> <name>yarn.resourcemanager.scheduler.address</name> <value>ip-XXX-XX-XX-XX:8030</value> </property>
     <property> <name>yarn.resourcemanager.address</name> <value>ip-XXX-XX-XX-XX:8040</value> </property>
    </configuration>
    
    [5] SSH文件

    ubuntu@ip-XXX-XX-XX-XX:~/Programs$ ls -alrt ~/.ssh/
    total 24
    -rw------- 1 ubuntu ubuntu  392 Dec 16 09:49 authorized_keys
    -rw-r--r-- 1 ubuntu ubuntu  666 Dec 16 10:33 known_hosts
    -rw-r--r-- 1 ubuntu ubuntu  404 Dec 16 10:33 id_rsa.pub
    -rw------- 1 ubuntu ubuntu 1675 Dec 16 10:33 id_rsa
    drwx------ 2 ubuntu ubuntu 4096 Dec 16 10:33 .
    drwxr-xr-x 7 ubuntu ubuntu 4096 Dec 16 10:34 ..
    
    [6] 安全小组

    All traffic   All   All   0.0.0.0/0
    SSH           TCP   22   0.0.0.0/0
    

    这与SSH问题有关。您尚未正确配置SSH


    您可以测试sshubuntu@ip****在运行start-all.sh程序之前。如果它不工作,那么您需要解决ssh问题并重试。

    是的,这是ssh问题,但我认为我对
    ~/.ssh
    中的文件拥有正确的权限。因此,我不明白为什么我不能执行SSH?您是否使用id_rsa.pub中的内容更新了授权密钥?谢谢,在我添加了
    cat id_rsa.pub>>授权密钥后,hadoop框架可以正常启动。我仍然存在在MapReduce框架中使用私有IP的问题。我希望能够在2个HDF之间复制文件。我应该在HDFS配置中使用哪些IP,以便我可以在EC2中运行在不同主机上的两个HDFS实例之间复制文件?不,但我想我必须使用VPC在不同主机之间设置VPN,并且每VPN连接小时支付0.05美元,对吗?如果您使用VPC,如果这两个实例是不同实例的一部分,您将无法在它们之间进行通信。在实例之间通信时,应始终使用专用IP。没有VPC,您将能够在实例之间通信,只要它们位于同一区域。
    
    ubuntu@ip-XXX-XX-XX-XX:~/Programs$ ls -alrt ~/.ssh/
    total 24
    -rw------- 1 ubuntu ubuntu  392 Dec 16 09:49 authorized_keys
    -rw-r--r-- 1 ubuntu ubuntu  666 Dec 16 10:33 known_hosts
    -rw-r--r-- 1 ubuntu ubuntu  404 Dec 16 10:33 id_rsa.pub
    -rw------- 1 ubuntu ubuntu 1675 Dec 16 10:33 id_rsa
    drwx------ 2 ubuntu ubuntu 4096 Dec 16 10:33 .
    drwxr-xr-x 7 ubuntu ubuntu 4096 Dec 16 10:34 ..
    
    All traffic   All   All   0.0.0.0/0
    SSH           TCP   22   0.0.0.0/0