Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tokyo Webmining #12 Hapyrus

5,888 views

Published on

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

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

Published in: Technology
  • Be the first to comment

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 />

×