NameNodeHA構成時のFluentd動作確認

今回はNameNodeHA構成時にFluentdを使ってデータをアップロードする際の動作確認です。

環境

CDH5.2を使用しHAは下記の構成で組みました。
Namenode2台
JournalNode1台
 
NameNodeHAの設定は下記を参照してください。
HDFS High Availability

Webhdfs設定

HDFSにWebhdfsの設定を投入します。
hdfs-site.xml

  <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
  </property>

  <property>
    <name>dfs.support.append</name>
    <value>true</value>
  </property>

Fluentdインストール

データソース(今回はCentOS)となるServerにFluentdをインストールします。

参考
rpmパッケージからFluentdをインストールする | Fluentd

curl -L http://toolbelt.treasuredata.com/sh/install-redhat.sh | sh

fluent-plugin-webhdfsもインストールします。

/usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-webhdfs

Fluentd設定

Fluentdの設定を投入します。
Apacheアクセスログを転送します。

<source>
  type tail
  format apache
  path /var/log/httpd/access_log
  tag apache.access
</source>

<match apache.access>
  type webhdfs
  namenode        nn1.local:50070
  standby_namenode nn2.local:50070
  path /user/test/access.log.%Y%m%d_%H.log
  username testuser
</match>

※usernameを指定しないとHDFS上でファイルの所有者がdr.whoになります。

設定はこれで完了です。

ログで動作確認

通常時
Active側のnn1.localに接続しています。

2014-12-09 20:56:47 +0900 [info]: adding source type="forward"
2014-12-09 20:56:47 +0900 [info]: adding source type="http"
2014-12-09 20:56:47 +0900 [info]: adding source type="debug_agent"
2014-12-09 20:56:47 +0900 [info]: adding source type="tail"
2014-12-09 20:56:47 +0900 [warn]: 'pos_file PATH' parameter is not set to a 'tail' source.
2014-12-09 20:56:47 +0900 [warn]: this parameter is highly recommended to save the position to resume tailing.
2014-12-09 20:56:47 +0900 [info]: adding match pattern="td.*.*" type="tdlog"
2014-12-09 20:56:47 +0900 [info]: adding match pattern="debug.**" type="stdout"
2014-12-09 20:56:47 +0900 [info]: adding match pattern="apache.access" type="webhdfs"
2014-12-09 20:56:47 +0900 [info]: webhdfs connection confirmed: nn1.local:50070
2014-12-09 20:56:47 +0900 [info]: listening fluent socket on 0.0.0.0:24224
2014-12-09 20:56:47 +0900 [info]: listening dRuby uri="druby://127.0.0.1:24230" object="Engine"
2014-12-09 20:56:47 +0900 [info]: following tail of /var/log/httpd/access_log

Active側NameNode障害時
nn1.localに接続出来ずStandby側のnn2.localに接続しています。

2014-12-09 21:01:07 +0900 [info]: adding source type="forward"
2014-12-09 21:01:07 +0900 [info]: adding source type="http"
2014-12-09 21:01:07 +0900 [info]: adding source type="debug_agent"
2014-12-09 21:01:07 +0900 [info]: adding source type="tail"
2014-12-09 21:01:07 +0900 [warn]: 'pos_file PATH' parameter is not set to a 'tail' source.
2014-12-09 21:01:07 +0900 [warn]: this parameter is highly recommended to save the position to resume tailing.
2014-12-09 21:01:07 +0900 [info]: adding match pattern="td.*.*" type="tdlog"
2014-12-09 21:01:08 +0900 [info]: adding match pattern="debug.**" type="stdout"
2014-12-09 21:01:08 +0900 [info]: adding match pattern="apache.access" type="webhdfs"
2014-12-09 21:01:08 +0900 [warn]: webhdfs check request failed. (namenode: nn1.local:50070, error: {"RemoteException":{"exception":"StandbyException","javaClassName":"org.apache.hadoop.ipc.StandbyException","message":"Operation category READ is not supported in state standby"}})
2014-12-09 21:01:08 +0900 [info]: webhdfs connection confirmed: nn2.local:50070
2014-12-09 21:01:08 +0900 [info]: listening fluent socket on 0.0.0.0:24224
2014-12-09 21:01:08 +0900 [info]: listening dRuby uri="druby://127.0.0.1:24230" object="Engine"
2014-12-09 21:01:08 +0900 [info]: following tail of /var/log/httpd/access_log

Active側NameNode復旧時
復旧したら再びnn1.localに接続出来ています。

2014-12-09 21:14:20 +0900 [info]: adding source type="forward"
2014-12-09 21:14:20 +0900 [info]: adding source type="http"
2014-12-09 21:14:20 +0900 [info]: adding source type="debug_agent"
2014-12-09 21:14:20 +0900 [info]: adding source type="tail"
2014-12-09 21:14:20 +0900 [warn]: 'pos_file PATH' parameter is not set to a 'tail' source.
2014-12-09 21:14:20 +0900 [warn]: this parameter is highly recommended to save the position to resume tailing.
2014-12-09 21:14:20 +0900 [info]: adding match pattern="td.*.*" type="tdlog"
2014-12-09 21:14:20 +0900 [info]: adding match pattern="debug.**" type="stdout"
2014-12-09 21:14:20 +0900 [info]: adding match pattern="apache.access" type="webhdfs"
2014-12-09 21:14:20 +0900 [info]: webhdfs connection confirmed: nn1.local:50070
2014-12-09 21:14:20 +0900 [info]: listening fluent socket on 0.0.0.0:24224
2014-12-09 21:14:20 +0900 [info]: listening dRuby uri="druby://127.0.0.1:24230" object="Engine"
2014-12-09 21:14:20 +0900 [info]: following tail of /var/log/httpd/access_log

以上。今回も動作確認系のエントリでした。
(ノ´▽`)ノ{+++THANK YOU+++}ヽ(´▽`ヽ)

Hadoop 第3版

Hadoop 第3版