More Related Content Similar to Hadoop(emr) (20)
とあるシステム/開発者の混沌 分散Xxへの道 とあるシステム/開発者の混沌 分散Xxへの道
M S ?
とりあえず、突然このあたりに、ほうりこまれた身内に説明する時に使った資料にちょっと、手を入れた物です。
正確さよりも、ざっくりとした雰囲気と、おおざっぱな流れ重視で。。
多分、みても、やくにたたない。。 (??ω?`)
WDD2012_SC-004 WDD2012_SC-004
Kuninobu SaSaki ?
Windows Developer Daysで使ったHadoop on Windows (Server|Azure)紹介資料です。「設計?実装?活用法」というタイトルとは裏腹にただの概要紹介になってしまったので、もう少しましなものを作りたいと思っています???
Apache Spark チュートリアル Apache Spark チュートリアル
K Yamaguchi ?
2015-4-28に東北大学 乾?岡崎研究室でおこなったチュートリアルの資料です。
研究室にはHadoopクラスタ(CDH5.3)があります。実験や実験の前処理といったタスクでそのクラスタを利用するためのチュートリアル、という前提です。
(追記)PMIの計算はもっと実行効率がいい手順があります。という説明を入れ忘れてました。
(追記)PMI計算でIntと書いてある部分は全部Longの間違いでした。
Hadoop(emr)
16. 贬补诲辞辞辫の特徴はビッグデータに対して高速にバッチ処理を行うこ
とにあります。
よく利用されるのは、ログの解析、分析です。
特定の条件での集計や、ユーザの行動履歴等を解析することで、
その結果をレコメンド等マーケティング等に利用します。
少し前だとクックパッドさん、最近だとホットペッパーさんの履
歴データの分析にも本格利用されるようになったそうです。
?
?COOKPADの食材の検索データを地域別、週別、月別で見れる「たべみる」
??Mysqlだと7000時間(推定)かかる処理が、30時間に短縮!!
??http://www.slideshare.net/sasata299/hadoop-in
?ホットペッパーの利用履歴分析にHadoop活用
??メルマガのおすすめのお店のリンクのクリック率が1.6倍に向上
??http://itpro.nikkeibp.co.jp/article/JIREI/20120125/379353/
39. ワードカウントの結果
順位 単語 出現数 順位 単語 出現数
1 of 25,667,195 16 his 3,966,155
2 is 18,162,455 17 my 3,840,411
3 i 18,113,175 18 he 3,718,725
4 it 15,542,277 19 at 3,279,149
5 in 14,314,656 20 like 3,220,910
6 this 14,225,666 21 has 3,119,657
7 that 11,616,208 22 can 2,893,385
8 s 10,047,393 23 about 2,874,535
9 as 6,771,606 24 great 2,731,248
10 but 6,337,996 25 her 2,687,953
11 book 6,060,566 26 what 2,644,247
12 not 5,356,163 27 very 2,504,191
13 have 5,196,102 28 will 2,386,309
14 t 4,770,961 29 up 2,183,147
15 all 4,029,276 30 when 2,168,171
Editor's Notes #2: それでは、発表を始めさせて頂きます。宜しくお願いします。\n#3: 本日のアジェンダはこのようになっております。\n#4: まずは、今回、初LTなので簡単に自己紹介をさせて頂きます。\n#5: ちなみに自分の名前の由来は千葉さんが詳しいので、気になる方は千葉さんに聞いてください。\n出身地は、埼玉県行田市です。\n現在住んでいるところは埼玉県川口市です。\nといっても、皆さんどこかよく分からないと思いますので、地図を用意しました。\n#6: これが埼玉県の地図ですが\n#7: 行田市はこちらになります。\n#8: ちなみに、営業チームの中嶋さんのすんでいる熊谷市の隣でして、熊谷同様とても暑いところです。\n#9: 川口市はこちらです。\n今回は、せっかくなので、行田の名物を2つばかり紹介させて頂きます。\n#10: 埼玉の人にはこのCMで有名な十万石まんじゅうです。まあ、普通のまんじゅうです。\n#11: 次がゼリーフライです。どんな物なのか、名前からは想像できないと思います。特にどんな物かここではあえて教えませんので、気になる方は是非、行田に食べに行って頂ければと思います。\n#12: ちなみに、こちらで購入可能です。ただ、ゼリーフライは休日のみの営業で、しかも雨の日以外しか営業しないという緩い感じなので注意が必要です。\n#13: では本題に入らさせて頂きます。まずはHadoopの歴史について簡単に説明させて頂きます。\n#14: Hadoopはgoogleから発表された2つの論文を元に開発が行われていいます。\n1つが、GFSという分散ファイルシステムに関する論文です。こちらはHadoopではHDFSという形で実装されています。\nもう一つが、MapReduceに関する論文でこちらは、論文を元に実装されています。\nなお、実装は、米Yahooが中心となり進められました。\n\nまた、Googleの分散ファイルシステム、分散処理に関してはこちらの本に詳しく書かれています。\n会社にもありますので気になる方は是非呼んでみてください。\n#15: ちなみに、Hadoopという名前の由来なのですが、プロジェクト創始者の子供が持っていた、黄色いゾウのぬいぐるみにつけた名前から取っているそうです。\nなので、Hadoopのロゴは黄色い像になっています。\n#16: では、Hadoopって実際どんなことに使うの?ということで、実例と共に紹介させて頂きます。\n#17: まずHadoopの特徴はビッグデータに対して、高速にバッチ処置を行うことにあります。\nですので、よく利用されるのは、ログデータの解析、分析が多いかと思います。\n\n少し前だと、クックパッドさん、最近だとホットペッパーさんが実際にHadoopを利用しているそうです。\n\n・クックパッドさんは「たべみる」というサービスがあるのですが、その為のデータ集計がMysqlだと、7,000時間かかると見られた処理がHadoopを使用することによって30時間に短縮されたそうです。\n・ホットペッパーさんでは、ホットペッパー利用履歴の分析にHadoopを活用することで、メルマガでの「おすすめのお店リンク」のクリック率が1.6倍に向上したそうです。\n\n#18: 続いて、簡単にHadoopのサーバ構成について説明させて頂きます。\n#19: Hadoopのサーバ構成は非常にシンプルで、JOBのコントロールを行うMasterサーバが1台と実際にJOBを処理するSlaveサーバが複数台存在する構成になります。\n#20: 実際にどのようにJOBが振り分けられるかというと、Masterサーバが各SlaveサーバへJOBの処理依頼を送ります。この時、あるサーバでJOBが失敗した場合は、そのJobは別のサーバへ再度依頼されます。Jobが失敗したサーバへはまた別のJobが割り振られ順次処理が行われて行き、すべてのJOBが完了するまで処理を行います。\n#21: 続いて、Hadoopの一番キモになるMap&Reduce処理に関してです。\n#22: まずは、Map処理についてです。\nMap処理では、入力データをKey:Valueの形に変換します。また、ここでシャッフル処理が実行され、Key:Valueのデータをソートしておきます。\n#23: Reduce処理では、Mapでの結果を集計します。\n\n実際には、もっと複雑な処理を行いますが、すごくシンプルに説明すると、MapReduceはこのような処理を行います。\n#24: こちらは、MapReduce処理の説明でよく目にするフローです。こちらは参考程度に目を通してください。\n#25: 今回は簡単にMapReduceを説明しましたが、実際に実装を行おうとすると、結構大変です。\nパフォーマンスが思うように出なかったり、そもそもMapReduceをちゃんと理解するには結構時間がかかるかと思います。\nそこで、HadoopにはMapReduceを隠蔽してくれる便利なミドルウェアがいくつかあります。\n\n#26: Pig、Hbase、Zookeeper、Hiveと様々なミドルウェアが存在します。\n最近、AWSのブログで、Hive0.8.1が利用可能になったと発表がありました。\n自分が以前Hadoopの実装を行った際もHiveを利用してシステムの構築を行っています。\n\n#27: では、実際にHadoopを使ってみたいと思います。ただ、時間がかかるため今回はデモという形ではなく、どのように使ったかと、その結果について紹介します。\n\n#28: 今回はAWSのEMRを使用します。\n使用したデータは、Amazonが公開しているレビューデータのアーカイブを使用して、ワードカウントを行っています。\n#29: まずは事前にS3へ使用するデータを上げておきます。\n#30: 実際にEMRを使用するにはAWSのマネージメントコンソールより[ElasticMapReduce]を選択し、「Create New Job Flow」をクリックします。\n#31: ウィザードが起動しますので、ジョブの名前を指定します。\nまた、今回はAWSで提供されているワードカウントプログラムを選択します。\n\n#32: 次に、先ほどS3にあげたデータをInputLocationへ指定します。\nあと、処理結果が出力される場所をOutputLocationへ指定します。\n#33: あとは、Masterサーバのインスタンスサイズ、スレーブサーバの台数とインスタンスを指定して、完了です。\n今回は、スレーブサーバを10台使用しています。\n#34: 処理が開始されますと、このようにジョブの表示が行われStateが「Starting」になっていることが確認できます。\n#35: EC2のインスタンス一覧を見ますと、このように指定した台数分(Master1台+Slave10台で11台)起動していることが分かります。\n#36: ElasticMapReduceのタブを見ますと、Stateが「Running」になり、処理が実行されていることが分かります。\n#37: しばらく待ちますと、Stateが「Completed」になり処理が完了していることが分かります。\n今回は29分処理に時間がかかったことが分かります。 \n#38: なお、ElasticMapReduceの処理が完了しますと、EC2のインスタンスは自動的に停止します。\n#39: 次に、S3のバケットを確認しますと、OutputLocationで指定したフォルダに処理結果が出力されます。\n#40: なお、今回の結果はこんな感じでした。\n一般的な単語がやはり多く使用されているようで、あまり面白くない結果となりました。\n#41: ではまとめに入ります。\n\n#42: ・Hadoopは必要に応じてサーバの台数を変更できるため、クラウドと非常に親和性が高いと感じます。\n・また、Hive等のミドルウェアが豊富にあり、Map&Reduceを意識せずに開発を行うことが出来るのは非常に便利です。\n\n・今回は、AWSのサンプルスクリプトを利用しましたが、今後は別の形でMapReduce、Hiveの実装を行って検証をしてみたいと思います。\n・個人的にはEMRには非常に可能性を感じているので、皆さんも是非いろいろ試してもらえたらと思います。\n\n・なお、実際のシステムではこんな構成が考えられるかなと思います。\n\n#43: 以上となります。\nご清聴ありがとうございました。\n