我是一名学生并开始了一项涉及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来做这件事,但现在我不确定这是否可行。
感谢您的帮助。