Cloudera ManagerでNameNode HAしてから,以下のWARNメッセージがStandbyNameNodeのログに定期的に出力される。結構な頻度で書き込まれ,また診断のログの方にも上がってくるので何とか抑制したい。
1 |
2015-05-01 00:00:00,350 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Get corrupt file blocks returned error: Operation category READ is not supported in state standby |
このJIRAのことだろうか。。
[HDFS-7452] Can we skip getCorruptFiles() call for standby NameNode..? – ASF JIRA
ソースを追っていくと,このgetCorruptFiles()
の先のStandbyState#checkOperation
のStandbyException
からのようだった。どのサービスが影響しているのかと,手元の仮想環境で試してところ,どうも以下の状況でログにこのメッセージが吐かれているもよう(他にもあるかもしれない。。)
- SNNのcloudera-scm-agentがrunning
- SNNのWebUIへのアクセス
- Cloudera Management Service,Event Server
そこそこログを占める割合も大きく,診断>イベントでも頻繁に上がってくるため,filterで対応することにした。以下をNameNode ログの高度な設定スニペット(安全バルブ)に設定して再起動する。
1 2 3 4 5 6 |
log4j.appender.RFA.filter.1=org.apache.log4j.varia.StringMatchFilter log4j.appender.RFA.filter.1.StringToMatch=Get corrupt file blocks returned error: Operation category READ is not supported in state standby log4j.appender.RFA.filter.1.AcceptOnMatch=false log4j.appender.EventCatcher.filter.1=org.apache.log4j.varia.StringMatchFilter log4j.appender.EventCatcher.filter.1.StringToMatch=Get corrupt file blocks returned error: Operation category READ is not supported in state standby log4j.appender.EventCatcher.filter.1.AcceptOnMatch=false |
他に,dfs.ha.allow.stale.reads
というプロパティをtrue
にすることでもできそうだったが,ソースのコメントを見て触らないことにした。。
コメント