内容纲要
概要描述
HDFS 服务是正常的,但是 Sqoop 任务会偶发报如下错误。
INFO retry.RetryInvocationHandler: Exception while invoking rename of class ClientNamenodeProtocolTranslatorPB over ${hostname}/${ip}:8020. Trying to fail over immediately.
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyException): Operation category WRITE is not supported in state standby
详细说明
出现该问题的原因,可能是在执行 Sqoop 任务的过程中,NameNode 的 active 节点发生切换导致的。
对于应用,如果要做到对 HDFS NN 的 active 节点切换无感知,可以指定命名空间来实现。
可通过如下命令获取命名空间地址:
$ hdfs --loglevel ERROR getconf -confKey "fs.defaultFS"
对于 Sqoop,可以在命令中加参数 -fs
来指定命名空间,如:
$ sqoop job -fs "hdfs://nameservice1"
$ sqoop import -fs "hdfs://nameservice1" [GENERIC-ARGS] [TOOL-ARGS]