Tokyo Webmining #12 Hapyrus

5,836 views

Published on

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

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,836
On SlideShare
0
From Embeds
0
Number of Embeds
3,356
Actions
Shares
0
Downloads
21
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Tokyo Webmining #12 Hapyrus

  1. 1. 第12回 データマイニング+WEB @東京でHadoopによる機械学習を簡単に<br />Hapyrus Inc.<br />藤川幸一 @fujibee<br />
  2. 2. 自己紹介<br />藤川幸一Hapyrus Inc.代表<br />Twitter: @fujibee<br />学生時代からITベンチャーに参加<br />電脳隊・PIM -> Yahoo! JAPAN -> テクノロジックアート -> シンプレクス・テクノロジー -> シリウステクノロジーズ -> (Yahoo!?) -> 独立<br />IPA未踏人材育成事業クリエータ<br />Hadoop Papyrus = Hadoop middleware for scripting Ruby DSL<br />NII本位田研究室<br />詳しい経歴はLinkedInにて<br />
  3. 3. Java<br />package org.apache.hadoop.examples;<br />import java.io.IOException;<br />import java.util.StringTokenizer;<br />import org.apache.hadoop.conf.Configuration;<br />import org.apache.hadoop.fs.Path;<br />import org.apache.hadoop.io.IntWritable;<br />import org.apache.hadoop.io.Text;<br />import org.apache.hadoop.mapreduce.Job;<br />import org.apache.hadoop.mapreduce.Mapper;<br />import org.apache.hadoop.mapreduce.Reducer;<br />import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;<br />import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;<br />import org.apache.hadoop.util.GenericOptionsParser;<br />publicclassWordCount{<br />publicstaticclassTokenizerMapperextends<br />Mapper<Object, Text, Text, IntWritable>{<br />privatefinalstatic IntWritable one =new IntWritable(1);<br />private Text word =new Text();<br />publicvoidmap(Object key, Text value, Context context)<br />throws IOException, InterruptedException {<br />StringTokenizer itr =new StringTokenizer(value.toString());<br />while(itr.hasMoreTokens()){<br />word.set(itr.nextToken());<br />context.write(word, one);<br />}<br />}<br />}<br />同様な処理がJavaでは70行必要だが、<br />HadoopPapyrusだと10行に!<br />publicstaticclassIntSumReducerextends<br />Reducer<Text, IntWritable, Text, IntWritable>{<br />private IntWritable result =new IntWritable();<br />publicvoidreduce(Text key, Iterable<IntWritable> values,<br />Context context)throws IOException, InterruptedException {<br />int sum = 0;<br />for(IntWritable val : values){<br />sum += val.get();<br />}<br />result.set(sum);<br />context.write(key, result);<br />}<br />}<br />publicstaticvoidmain(String[] args)throws Exception {<br />Configuration conf =new Configuration();<br />String[] otherArgs =new GenericOptionsParser(conf, args)<br />.getRemainingArgs();<br />if(otherArgs.length != 2){<br />System.err.println("Usage: wordcount <in> <out>");<br />System.exit(2);<br />}<br />Job job =new Job(conf, "word count");<br />job.setJarByClass(WordCount.class);<br />job.setMapperClass(TokenizerMapper.class);<br />job.setCombinerClass(IntSumReducer.class);<br />job.setReducerClass(IntSumReducer.class);<br />job.setOutputKeyClass(Text.class);<br />job.setOutputValueClass(IntWritable.class);<br />FileInputFormat.addInputPath(job,new Path(otherArgs[0]));<br />FileOutputFormat.setOutputPath(job,new Path(otherArgs[1]));<br />System.exit(job.waitForCompletion(true)? 0 : 1);<br />}<br />}<br />Hadoop Papyrus<br />dsl 'LogAnalysis‘<br />from ‘test/in‘<br />to ‘test/out’<br />pattern /[[([^|]:]+)[^]:]*]]/<br />column_name :link<br />topic "link num", :label => 'n' do<br />      count_uniq column[:link]<br />end<br />
  4. 4. Hadoopの<br />何が<br />うれしいのか<br />
  5. 5. Hadoop開発の<br />問題点<br />
  6. 6. 最初の敷居が高い!<br />
  7. 7. サーバやサービスの大量セットアップ<br />MapReduce???<br />クラスタの運用<br />
  8. 8. =<br />HadoopPaaS<br />&<br />マーケットプレイス!<br />
  9. 9. Hapyrusとは<br />大量分散データ処理(Hadoop利用)のためのWebサービス<br />Hadoopアプリケーションのための<br />PaaS=開発・実行<br />ディストリビューション=マーケットプレイス<br />クラウド環境上で動作(EC2・S3 etc.)<br />基本利用は無料・アプリケーション購入や大量データ処理のみ課金<br />
  10. 10. Demo<br />
  11. 11. http://hapyrus.com/<br />現在一般登録可能!<br />フィードバック募集中<br />
  12. 12. 将来への課題<br />Hadoop Streamingのみ<br />Ruby, Phthon, Perl<br />外部ライブラリ依存は難しい<br />多段実行は手動<br />S3書き出し(近々実装予定)<br />アプリ公開(近々実装予定)<br />無料アプリのみ<br />まだまだアプリケーション不足・・<br />
  13. 13. まとめ<br />HapyrusはHadoop PaaS & マーケットプレイスウェブサービス<br />大規模機械学習に必要なデータの操作を行ったりスクリプトを公開することでKnowledgeも共有できる<br />現在ベータ公開中。どんどんバージョンアップします!<br />
  14. 14. ありがとうございました!<br />Twitter: @hapyrus_ja<br />

×