httpfs error Operation category READ is not supported in state standby 状态备用
httpfs error Operation category READ is not supported in state standby
我正在使用 hadoop apache 2.7.1,我有一个由 3 个节点组成的集群
nn1
nn2
dn1
nn1 是 dfs.default.name,因此它是主名称节点。
我已经安装了httpfs,当然是在重启所有服务后启动它。当 nn1 处于活动状态且 nn2 处于待机状态时,我可以发送此请求
http://nn1:14000/webhdfs/v1/aloosh/oula.txt?op=open&user.name=root
从我的浏览器中出现 打开或保存此文件 的对话框,但是当我杀死 nn1 上的名称节点 运行 并正常重新启动它时然后由于高可用性,nn1 变为备用状态,nn2 变为活动状态。
所以这里 httpfs 应该可以工作,即使 nn1 变为备用,但现在发送相同的请求
http://nn1:14000/webhdfs/v1/aloosh/oula.txt?op=open&user.name=root
给我错误
{"RemoteException":{"message":"Operation category READ is not supported in state standby","exception":"RemoteException","javaClassName":"org.apache.hadoop.ipc.RemoteException"}}
httpfs不应该克服nn1待机状态,把文件带过来吗?是配置错误还是其他原因?
我的 core-site.xml
是
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
看起来 HttpFs
尚不支持高可用性。这可能是由于缺少客户端连接到当前活动名称节点所需的配置。
确保 core-site.xml
中的 fs.defaultFS
属性 配置正确 nameservice ID
.
如果您在 hdfs-site.xml
中有以下内容
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
那么在core-site.xml
中应该是
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
同时配置 Java class 的名称,DFS 客户端将使用该名称来确定哪个 NameNode 当前处于活动状态并正在为客户端请求提供服务。
将此 属性 添加到 hdfs-site.xml
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
在所有节点中添加属性后重启Namenodes和HttpFs。
我正在使用 hadoop apache 2.7.1,我有一个由 3 个节点组成的集群
nn1
nn2
dn1
nn1 是 dfs.default.name,因此它是主名称节点。
我已经安装了httpfs,当然是在重启所有服务后启动它。当 nn1 处于活动状态且 nn2 处于待机状态时,我可以发送此请求
http://nn1:14000/webhdfs/v1/aloosh/oula.txt?op=open&user.name=root
从我的浏览器中出现 打开或保存此文件 的对话框,但是当我杀死 nn1 上的名称节点 运行 并正常重新启动它时然后由于高可用性,nn1 变为备用状态,nn2 变为活动状态。
所以这里 httpfs 应该可以工作,即使 nn1 变为备用,但现在发送相同的请求
http://nn1:14000/webhdfs/v1/aloosh/oula.txt?op=open&user.name=root
给我错误
{"RemoteException":{"message":"Operation category READ is not supported in state standby","exception":"RemoteException","javaClassName":"org.apache.hadoop.ipc.RemoteException"}}
httpfs不应该克服nn1待机状态,把文件带过来吗?是配置错误还是其他原因?
我的 core-site.xml
是
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
看起来 HttpFs
尚不支持高可用性。这可能是由于缺少客户端连接到当前活动名称节点所需的配置。
确保 core-site.xml
中的 fs.defaultFS
属性 配置正确 nameservice ID
.
如果您在 hdfs-site.xml
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
那么在core-site.xml
中应该是
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
同时配置 Java class 的名称,DFS 客户端将使用该名称来确定哪个 NameNode 当前处于活动状态并正在为客户端请求提供服务。
将此 属性 添加到 hdfs-site.xml
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
在所有节点中添加属性后重启Namenodes和HttpFs。