Hadoop Conf Japan 2009 After Party LT - Hadoop Ruby DSL

8

Click here to load reader

description

Lightening Talk for my project of Hadoop Ruby DSL.

Transcript of Hadoop Conf Japan 2009 After Party LT - Hadoop Ruby DSL

Page 1: Hadoop Conf Japan 2009 After Party LT - Hadoop Ruby DSL

(Hadoop + Ruby DSL)x Hudson = ?

藤川幸一

2009上期未踏本体クリエイター株式会社シリウステクノロジーズ

Page 2: Hadoop Conf Japan 2009 After Party LT - Hadoop Ruby DSL

未踏でHadoopやってます

Page 3: Hadoop Conf Japan 2009 After Party LT - Hadoop Ruby DSL

Hadoop は敷居が高い?(と思う人には高い・・・)

そういう人は・・

1. Mapper とか Reducer とか、何? どうやって書けばいいの?

2. Java で書くの? いろいろ制約があって難しそう・・・

3.実行環境準備するだけで大変そう

Page 4: Hadoop Conf Japan 2009 After Party LT - Hadoop Ruby DSL

そういう人にこそ・・

Page 5: Hadoop Conf Japan 2009 After Party LT - Hadoop Ruby DSL

Ruby で Mapper / Reducer※でも Hadoop Streaming は使わないよ

JRubyを使うMapper / Reducer からRuby呼び出し呼び出されたRubyにMRが書ける

def map(key, value, output, reporter) # Mapper code end

def reduce(key, values, output, reporter) # Reducer code end

Page 6: Hadoop Conf Japan 2009 After Party LT - Hadoop Ruby DSL

さらに MR も意識せずに~DSLある特定の分野(ログ分析とか)だと、Mapper / Reducerに分解する部分がわりと明確最初から分解してその指示をメタな言語(DSL)にすればMapReduceを意識せずHadoopで処理ができる?

use 'LogAnalysis'

data 'apache log on test1' do from 'apachlog/inputs' to 'apachlog/outputs'

each_line do pattern /(.*) (.*) (.*) \[(.*)\] (".*") (\d*) (\d*)/ column_name 'remote_host', 'pass', 'user', 'access_date', 'request', 'status', 'bytes'

topic 'which users?', :label => 'user' do count_uniq column[:user] end

topic 'access date by monthly' do select_date column[:access_date], BY_MONTHLY count column[:access_date] end・・・

Page 7: Hadoop Conf Japan 2009 After Party LT - Hadoop Ruby DSL

Hudsonで実行分散環境を簡単に準備

HudsonはOSS分散ビルドツール→タスク分散が得意メインコミッターのkohsuke(Sunの川口耕介さん)がHudsonのプラグインとしてHadoopを使えるように→簡単にHadoopインストールHudsonのスレーブを増やすとHadoopのノードとして使える

Page 8: Hadoop Conf Japan 2009 After Party LT - Hadoop Ruby DSL

まだまだプロジェクトはこれからです!興味がある方はご一報を!

ありがとうございました。

Twitter: @fujibee