DataNodeで大量のINFOレベルメッセージが・・・

hadoop
この記事は約4分で読めます。

パッケージでインストールしていたCDH4.4から,新たにCloudera Manager Standard(以下CM)管理のクラスタ(CDH4.5)に切り替え,以前同様fluentdのwebhdfsプラグインからHDFSヘログをappendしたところ,予期せぬ現象が・・・。以前も出ていたのだろうか。。

WebHDFSの有効化

CDH4.5でwebhdfsを利用可能にするため,以下のように設定した。dfs.support.appendについては,デフォルトでtrueとなっているようだった。CM経由では,hdfsサービス > サービス全体 > WebHDFS の有効化にチェックがついていることを確認する。CMの場合,実際の設定ファイルを確認するには,/var/run/cloudera-scm-agent/process下のxxx-hdfs-(NAME|DATA)NODE/hdfs-site.xmlで確認できる。

その後,fluentdのwebhdfsプラグインを使ってWebHDFS API経由でHDFSへappendしたが,以下のようなINFOレベルのログが大量に出力されてしまう事態に遭遇。初めは,許容範囲かと思う程度だったけれど,段々と高頻度でメッセージが出力され,最終的にはtailでコンソールがログで埋め尽くされたしまう状態だった。INFOなので基本的には関与せずで問題ないかと思っていたが,ここまでくるとさすがに目をつぶってはいられない。しかも同じブロックIDっぽい。終了条件が満足されず無限ループから脱することができなくなっているように見える。

HDFSサービスを再起動すると,

のようなメッセージがつらつらと出力される。念のためブロック状態を確認するためhdfs fsckを実行したところHEALTHYと表示され,不良ブロックらしきも報告されない。それから,ファイルのappend自体は成功しているように見える。

なんとくWebHDFS経由でのファイルappendに関連していると思われるので,fluentd側を1 collector,1 webhdfsで設定しHDFSへの書き込みの状況を観察する。

まず,appendをすべてcreateのみにしてみる。fluentdのwebhdfsプラグインの設定で,append noにしてみたところ,Verification failed for xxxxのようなメッセージは確認されなかった(テスト条件にもよると思うので一概には言えないかもしれないが)ので,appendに起因すると推測する。append noなので,毎回新しいファイルが作成される。ここでは,chunk_idごとに一意なファイルとなる。

次に,単一のcollectorからのappendでのHDFSへの書き込みを行ない様子を見る。flush_intervalを20sで設定してみたところ,上記ほどのレベルでないが同メッセージの出力が確認されることがある。flush_intervalを短くするとその頻度は高くなるようだった。

CDH4.4でも同様だったかダウングレードして同様な条件で試してみたところ,少なくともINFOレベルでの上記のようなメッセージが見られなかったので,CDH4.5へのアップグレードによるものか?ソースを見てみたが,さすがに簡単に特定はできなさそうだ。。

結局,今回はCDH4.4にダウングレードして様子を見ることとしたが,メッセージが出力されないだけで根本的な解決には至っていない気がするが。。

参考

コメント

タイトルとURLをコピーしました