Python:Hadoop:MapReduceサンプル のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Python:Hadoop:MapReduceサンプル へ行く。
- 1 (2011-11-30 (水) 00:37:10)
- 2 (2011-11-30 (水) 01:08:12)
Python:Hadoop:MapReduce?サンプル †
HadoopのMapReduce?のプログラムをHadoopStreaming?を使ってPythonで書いてみました。
Reducerの処理は一工夫必要だけど、簡単に書けます。
ログの集計とか、Hadoop使ってやるとほんと簡単に実行できるなーと実感した限りです。
処理対象データの一部 †
こんな感じのデータが入力で、時刻(分)単位のレスポンスタイムの平均を求めたいです。
2011/11/25-21:25:58.900,/mnt/dfs/da/C/0/000/007,4096,32 2011/11/25-21:25:58.931,/mnt/dfs/da/C/0/000/008,4096,28 2011/11/25-21:25:58.960,/mnt/dfs/da/C/0/000/009,4096,24 2011/11/25-21:25:58.988,/mnt/dfs/da/C/0/000/010,4096,25 ・・・・ 2011/11/26-02:00:07.704,/mnt/dfs/da/C/0/262/145,8192,32 2011/11/26-02:00:07.754,/mnt/dfs/da/C/0/262/146,8192,32 2011/11/26-02:00:07.803,/mnt/dfs/da/C/0/262/147,8192,32 2011/11/26-02:00:07.855,/mnt/dfs/da/C/0/262/148,8192,34 ・・・・ 2011/11/26-06:05:03.007,/mnt/dfs/da/C/0/458/759,16384,62 2011/11/26-06:05:03.118,/mnt/dfs/da/C/0/458/760,16384,64 2011/11/26-06:05:03.224,/mnt/dfs/da/C/0/458/761,16384,56 ・・・・
- 第一カラム
- 時刻(ミリ秒まで出力されている)
- 第四カラム
- レスポンスタイム(ミリ秒)
ソース †
こんな感じです。
■Map.py
#!/usr/bin/env python import sys # input comes from STDIN (standard input) for line in sys.stdin: line = line.strip() data = line.split(",") print '%s\t%s' % (data[0][0:16],data[3])
■