• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Tokyo Webmining #12 Hapyrus
 

Tokyo Webmining #12 Hapyrus

on

  • 5,623 views

第12回 データマイニング+WEB @東京 ( #TokyoWebmining 12th)-機械学習MapReduce・大規模R解析 祭り-

第12回 データマイニング+WEB @東京 ( #TokyoWebmining 12th)-機械学習MapReduce・大規模R解析 祭り-

「HapyrusでHadoopによる機械学習を簡単に」

Statistics

Views

Total Views
5,623
Views on SlideShare
2,395
Embed Views
3,228

Actions

Likes
1
Downloads
19
Comments
0

7 Embeds 3,228

http://d.hatena.ne.jp 3210
http://webcache.googleusercontent.com 7
url_unknown 6
http://s.deeeki.com 2
http://news.taaza.com 1
http://translate.googleusercontent.com 1
http://paper.li 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Tokyo Webmining #12 Hapyrus Tokyo Webmining #12 Hapyrus Presentation Transcript

    • 第12回 データマイニング+WEB @東京でHadoopによる機械学習を簡単に
      Hapyrus Inc.
      藤川幸一 @fujibee
    • 自己紹介
      藤川幸一Hapyrus Inc.代表
      Twitter: @fujibee
      学生時代からITベンチャーに参加
      電脳隊・PIM -> Yahoo! JAPAN -> テクノロジックアート -> シンプレクス・テクノロジー -> シリウステクノロジーズ -> (Yahoo!?) -> 独立
      IPA未踏人材育成事業クリエータ
      Hadoop Papyrus = Hadoop middleware for scripting Ruby DSL
      NII本位田研究室
      詳しい経歴はLinkedInにて
    • Java
      package org.apache.hadoop.examples;
      import java.io.IOException;
      import java.util.StringTokenizer;
      import org.apache.hadoop.conf.Configuration;
      import org.apache.hadoop.fs.Path;
      import org.apache.hadoop.io.IntWritable;
      import org.apache.hadoop.io.Text;
      import org.apache.hadoop.mapreduce.Job;
      import org.apache.hadoop.mapreduce.Mapper;
      import org.apache.hadoop.mapreduce.Reducer;
      import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
      import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
      import org.apache.hadoop.util.GenericOptionsParser;
      publicclassWordCount{
      publicstaticclassTokenizerMapperextends
      Mapper<Object, Text, Text, IntWritable>{
      privatefinalstatic IntWritable one =new IntWritable(1);
      private Text word =new Text();
      publicvoidmap(Object key, Text value, Context context)
      throws IOException, InterruptedException {
      StringTokenizer itr =new StringTokenizer(value.toString());
      while(itr.hasMoreTokens()){
      word.set(itr.nextToken());
      context.write(word, one);
      }
      }
      }
      同様な処理がJavaでは70行必要だが、
      HadoopPapyrusだと10行に!
      publicstaticclassIntSumReducerextends
      Reducer<Text, IntWritable, Text, IntWritable>{
      private IntWritable result =new IntWritable();
      publicvoidreduce(Text key, Iterable<IntWritable> values,
      Context context)throws IOException, InterruptedException {
      int sum = 0;
      for(IntWritable val : values){
      sum += val.get();
      }
      result.set(sum);
      context.write(key, result);
      }
      }
      publicstaticvoidmain(String[] args)throws Exception {
      Configuration conf =new Configuration();
      String[] otherArgs =new GenericOptionsParser(conf, args)
      .getRemainingArgs();
      if(otherArgs.length != 2){
      System.err.println("Usage: wordcount <in> <out>");
      System.exit(2);
      }
      Job job =new Job(conf, "word count");
      job.setJarByClass(WordCount.class);
      job.setMapperClass(TokenizerMapper.class);
      job.setCombinerClass(IntSumReducer.class);
      job.setReducerClass(IntSumReducer.class);
      job.setOutputKeyClass(Text.class);
      job.setOutputValueClass(IntWritable.class);
      FileInputFormat.addInputPath(job,new Path(otherArgs[0]));
      FileOutputFormat.setOutputPath(job,new Path(otherArgs[1]));
      System.exit(job.waitForCompletion(true)? 0 : 1);
      }
      }
      Hadoop Papyrus
      dsl 'LogAnalysis‘
      from ‘test/in‘
      to ‘test/out’
      pattern /[[([^|]:]+)[^]:]*]]/
      column_name :link
      topic "link num", :label => 'n' do
            count_uniq column[:link]
      end
    • Hadoopの
      何が
      うれしいのか
    • Hadoop開発の
      問題点
    • 最初の敷居が高い!
    • サーバやサービスの大量セットアップ
      MapReduce???
      クラスタの運用

    • HadoopPaaS
      &
      マーケットプレイス!
    • Hapyrusとは
      大量分散データ処理(Hadoop利用)のためのWebサービス
      Hadoopアプリケーションのための
      PaaS=開発・実行
      ディストリビューション=マーケットプレイス
      クラウド環境上で動作(EC2・S3 etc.)
      基本利用は無料・アプリケーション購入や大量データ処理のみ課金
    • Demo
    • http://hapyrus.com/
      現在一般登録可能!
      フィードバック募集中
    • 将来への課題
      Hadoop Streamingのみ
      Ruby, Phthon, Perl
      外部ライブラリ依存は難しい
      多段実行は手動
      S3書き出し(近々実装予定)
      アプリ公開(近々実装予定)
      無料アプリのみ
      まだまだアプリケーション不足・・
    • まとめ
      HapyrusはHadoop PaaS & マーケットプレイスウェブサービス
      大規模機械学習に必要なデータの操作を行ったりスクリプトを公開することでKnowledgeも共有できる
      現在ベータ公開中。どんどんバージョンアップします!
    • ありがとうございました!
      Twitter: @hapyrus_ja