Hadoop-2.7.3集群(YARN)搭建

在上一篇《Hadoop-2.7.3集群(HDFS)搭建》之后,继续记录整理YARN的搭建。

1、修改mapred-site.xml


       
       
                mapreduce.framework.name
                yarn
       


2、修改yarn-site.xml



    
        yarn.resourcemanager.hostname
        chan-takchi
        The hostname of the RM.
    
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
    
         yarn.nodemanager.aux-services.mapreduce.shuffle.class
         org.apache.hadoop.mapred.ShuffleHandler
    
    
         yarn.scheduler.capacity.maximum-am-resource-percent
         100
    


3、测试,运行wordcount,mr运行失败。


在页面上可以看到,任务会一直处在状态,"ACCEPTED: waiting for AM container to be allocated,launched and register with RM.",最终任务失败。

Hadoop-2.7.3集群(YARN)搭建_第1张图片

 

4、查看日志并分析

2017-01-18 01:58:03,700 INFO org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher: Error launching appattempt_1484732222847_0002_000001. Got exception: java.net.ConnectException: Call From ubuntu/127.0.1.1 to ubuntu:49135 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused


原因在于,RM和NM机器的hosts文件是一致的,而且yarn-site.xml里的yarn.nodemanager.hostname在没有指定的情况下采用的是主机的hostname,所以NM的地址为ubuntu:49135,而RM访问ubuntu时用的是本地hosts配置的ip,访问了自身49135端口,由于该端口并未打开,所以会访问失败。


5、解决方案


为每个NM配置一个不一样的域名并在yarn.nodemanager.hostname里指定。如果NM默认的hostname一样而yarn.nodemanager.hostname恰巧又没有指定其他域名的话,将会出现以下的情况(Node HTTP Address),无法区分哪一个NM在哪一个机器上。


Hadoop-2.7.3集群(YARN)搭建_第2张图片

最后给出能正确运行mr任务的yarn-site.xml配置,这样的一个缺点就是每个NM都要维护一份yarn-site.xml,除非默认的hostname不一样。

 



    
        yarn.resourcemanager.hostname
        chan-takchi
        The hostname of the RM.
    
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
    
         yarn.nodemanager.aux-services.mapreduce.shuffle.class
         org.apache.hadoop.mapred.ShuffleHandler
    
    
         yarn.scheduler.capacity.maximum-am-resource-percent
         100
    
    
         yarn.nodemanager.hostname
         chan-takchi-01
    


NOTE:yarn.nodemanager.hostname对应的域名不要配置成“*.*.*”的样子,如“chan.takchi.01”,否则会在启动过程中报以下错误(上一篇文章中的hosts文件相应的域名都要改过来)。

 

Does not contain a valid host:port authority: chan.takchi.01:8040 (configuration property 'yarn.nodemanager.localizer.address')

你可能感兴趣的:(Hadoop-2.7.3集群(YARN)搭建)