2013/05/05

ビックデータを体験する-準備編

ビックデータブームって

ビックデータブームって、一昔前のデータウェアハウスブームと同じような臭いがする。
で、こういったものは、とにかくデータがないと始まらない。分析しようと思ってからデータを集め始めても、遅いのだ。
とはいうものの、分析対象とするデータをいろいろと集めるのもシンドイ作業。手元にあるデータで手っ取り早く試してみたい。
もう1つの問題は、データをどこに集めるのかということ。集めるための大容量のサーバを用意すべきなんだろうけど、手軽に試すという範疇を超えてしまう。

Treasure Data

こういった問題を解決する方法があった。Hadoop-based Big Data as a Service on the Cloud | Treasure Dataというのがあり、容量の制限はあるものの、試してみることができる。
データは、syslogで収集しているものを使えばよい。とにかくまずは使ってみて、そこから何に適用できるかを考える。

td-agent

Treasure Dataに登録すると、そのままデータ登録・操作のプログラムのインストールとチュートリアルに進むようになっているので、その手順に従う。
td-agentは、乱暴に言うと、fluentdの安定版。従って、td-agentが提供されていないOSでは、fluentdを使う。他にも、fluent-agent-liteというのがあるけど、手軽に試してみる段階では考えなくてよさそう。

td-agent(fluentd)は
  • データを受け取って
  • フォーマットの整形とかして
  • 保存先に送信する
ということをやる。今回は
  • データはsyslog
  • フォーマットの整形はなし
  • 保存先はTreasure Data
とし、td-agent.conf(fluentd.conf)に設定を記述していく。

syslogからのデータ取得

td-agentは、syslogのようにデータを受け取ることが可能なので、
<source>
type syslog
port 5140
bind 127.0.0.1
tag td
</source>

のように記述しておくと、port 5140で動いているsyslogdのように見える。なので、syslogd.confに

*.*       @127.0.0.1:5140
と書いておくと、今のsyslogが受信している内容をすべてtd-agentに渡すことができる。

Treasure Dataへ保存

<match td.*.*>
  type tdlog
  apikey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  auto_create_table
  buffer_type file
  buffer_path /var/log/td-agent/buffer/td
  use_ssl true
  flush_interval 10s
</match>
と記述しておくと、自動でfacility名でデータベースを作り、priority名でテーブルを作ってくれる。

td-agentを起動してエラーが出てなければ、syslogdにシグナルを送ってsyslogd.confの再読み込みをさせて、準備OK。

td

Treasure Dataに保存したデータにアクセスするのが、tdコマンド。これについては、次回。


0 件のコメント :

コメントを投稿

Comments on Google+: