在伪分布式模式下设置Yarn High Availability(HA)

时间:2018-04-05 19:50:54

标签: hadoop yarn

我是一名学生并开始了一项涉及Hadoop的新研究项目。

我一直试图在一台机器(我的个人计算机上安装了Ubuntu 16.04)中设置Yarn HA进行一些测试。在单个节点上查找有关ResourceManager HA测试的报告非常困难(这个link是少数几个有关此信息的信息之一)。

我的Hadoop(目前版本为2.7.5,我已经尝试过2.9但遇到了同样的问题)配置如下:

  • 等/ hadoop的/芯-site.xml中:

    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
        </property>
    </configuration>
    
  • 等/ hadoop的/ HDFS-site.xml中:

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
    </configuration>
    

纱线配置:

  • 等/的hadoop / mapred-site.xml中

     <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    
  • 等/ hadoop的/纱线-site.xml中

这里我尝试了很多不同的配置,因为我认为端口号或主机名存在一些问题。在这种情况下,我尝试编辑here中显示的基本配置,并按照here中纱线配置参数的说明进行编辑。实际上,我对我应该用于RM的地址有点困惑(它真的是本地主机吗?)。

    <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>

    <!-- H.A. -->
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>yarn-cluster</value>
    </property>
    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>localhost</value> 
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>localhost</value>
    </property>
    <property>
        <name>yarn.resourcemanager.recovery.enabled</name>
        <value>true</value>
    </property>

    <!-- RM1 Configs -->
    <property>
        <name>yarn.resourcemanager.address.rm1</name>
        <value>localhost:23140</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address.rm1</name>
        <value>localhost:23130</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address.rm1</name>
        <value>localhost:23188</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address.rm1</name>
        <value>localhost:23125</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address.rm1</name>
        <value>localhost:23141</value>
    </property>

    <!-- RM2 configs -->
    <property>
        <name>yarn.resourcemanager.address.rm2</name>
        <value>localhost:33140</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address.rm2</name>
        <value>localhost:33130</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address.rm2</name>
        <value>localhost:33188</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address.rm2</name>
        <value>localhost:33125</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address.rm2</name>
        <value>localhost:33141</value>
    </property>

所以,我试过跑:

$ yarn rmadmin -getServiceState rm1

但我每次都有连接异常。如下:

18/04/05 21:49:59 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:23141. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=1, sleepTime=1000 MILLISECONDS)

Operation failed: Call From hadoop-pc/127.0.1.1 to localhost:23141 failed on connection exception: java.net.ConnectException: Connection refused;

For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

有人能给我一些帮助吗?我真的不知道我做错了什么,或者我能做些什么来解决它。

编辑: 是否可以在一台机器中设置Yarn HA?我在考虑使用Zookeeper来做这件事,但现在我不确定这是否可行。

感谢您的帮助。

0 个答案:

没有答案