Hadoop(emr)

658 views
533 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
658
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • それでは、発表を始めさせて頂きます。宜しくお願いします。\n
  • 本日のアジェンダはこのようになっております。\n
  • まずは、今回、初LTなので簡単に自己紹介をさせて頂きます。\n
  • ちなみに自分の名前の由来は千葉さんが詳しいので、気になる方は千葉さんに聞いてください。\n出身地は、埼玉県行田市です。\n現在住んでいるところは埼玉県川口市です。\nといっても、皆さんどこかよく分からないと思いますので、地図を用意しました。\n
  • これが埼玉県の地図ですが\n
  • 行田市はこちらになります。\n
  • ちなみに、営業チームの中嶋さんのすんでいる熊谷市の隣でして、熊谷同様とても暑いところです。\n
  • 川口市はこちらです。\n今回は、せっかくなので、行田の名物を2つばかり紹介させて頂きます。\n
  • 埼玉の人にはこのCMで有名な十万石まんじゅうです。まあ、普通のまんじゅうです。\n
  • 次がゼリーフライです。どんな物なのか、名前からは想像できないと思います。特にどんな物かここではあえて教えませんので、気になる方は是非、行田に食べに行って頂ければと思います。\n
  • ちなみに、こちらで購入可能です。ただ、ゼリーフライは休日のみの営業で、しかも雨の日以外しか営業しないという緩い感じなので注意が必要です。\n
  • では本題に入らさせて頂きます。まずはHadoopの歴史について簡単に説明させて頂きます。\n
  • Hadoopはgoogleから発表された2つの論文を元に開発が行われていいます。\n1つが、GFSという分散ファイルシステムに関する論文です。こちらはHadoopではHDFSという形で実装されています。\nもう一つが、MapReduceに関する論文でこちらは、論文を元に実装されています。\nなお、実装は、米Yahooが中心となり進められました。\n\nまた、Googleの分散ファイルシステム、分散処理に関してはこちらの本に詳しく書かれています。\n会社にもありますので気になる方は是非呼んでみてください。\n
  • ちなみに、Hadoopという名前の由来なのですが、プロジェクト創始者の子供が持っていた、黄色いゾウのぬいぐるみにつけた名前から取っているそうです。\nなので、Hadoopのロゴは黄色い像になっています。\n
  • では、Hadoopって実際どんなことに使うの?ということで、実例と共に紹介させて頂きます。\n
  • まずHadoopの特徴はビッグデータに対して、高速にバッチ処置を行うことにあります。\nですので、よく利用されるのは、ログデータの解析、分析が多いかと思います。\n\n少し前だと、クックパッドさん、最近だとホットペッパーさんが実際にHadoopを利用しているそうです。\n\n・クックパッドさんは「たべみる」というサービスがあるのですが、その為のデータ集計がMysqlだと、7,000時間かかると見られた処理がHadoopを使用することによって30時間に短縮されたそうです。\n・ホットペッパーさんでは、ホットペッパー利用履歴の分析にHadoopを活用することで、メルマガでの「おすすめのお店リンク」のクリック率が1.6倍に向上したそうです。\n\n
  • 続いて、簡単にHadoopのサーバ構成について説明させて頂きます。\n
  • Hadoopのサーバ構成は非常にシンプルで、JOBのコントロールを行うMasterサーバが1台と実際にJOBを処理するSlaveサーバが複数台存在する構成になります。\n
  • 実際にどのようにJOBが振り分けられるかというと、Masterサーバが各SlaveサーバへJOBの処理依頼を送ります。この時、あるサーバでJOBが失敗した場合は、そのJobは別のサーバへ再度依頼されます。Jobが失敗したサーバへはまた別のJobが割り振られ順次処理が行われて行き、すべてのJOBが完了するまで処理を行います。\n
  • 続いて、Hadoopの一番キモになるMap&Reduce処理に関してです。\n
  • まずは、Map処理についてです。\nMap処理では、入力データをKey:Valueの形に変換します。また、ここでシャッフル処理が実行され、Key:Valueのデータをソートしておきます。\n
  • Reduce処理では、Mapでの結果を集計します。\n\n実際には、もっと複雑な処理を行いますが、すごくシンプルに説明すると、MapReduceはこのような処理を行います。\n
  • こちらは、MapReduce処理の説明でよく目にするフローです。こちらは参考程度に目を通してください。\n
  • 今回は簡単にMapReduceを説明しましたが、実際に実装を行おうとすると、結構大変です。\nパフォーマンスが思うように出なかったり、そもそもMapReduceをちゃんと理解するには結構時間がかかるかと思います。\nそこで、HadoopにはMapReduceを隠蔽してくれる便利なミドルウェアがいくつかあります。\n\n
  • Pig、Hbase、Zookeeper、Hiveと様々なミドルウェアが存在します。\n最近、AWSのブログで、Hive0.8.1が利用可能になったと発表がありました。\n自分が以前Hadoopの実装を行った際もHiveを利用してシステムの構築を行っています。\n\n
  • では、実際にHadoopを使ってみたいと思います。ただ、時間がかかるため今回はデモという形ではなく、どのように使ったかと、その結果について紹介します。\n\n
  • 今回はAWSのEMRを使用します。\n使用したデータは、Amazonが公開しているレビューデータのアーカイブを使用して、ワードカウントを行っています。\n
  • まずは事前にS3へ使用するデータを上げておきます。\n
  • 実際にEMRを使用するにはAWSのマネージメントコンソールより[ElasticMapReduce]を選択し、「Create New Job Flow」をクリックします。\n
  • ウィザードが起動しますので、ジョブの名前を指定します。\nまた、今回はAWSで提供されているワードカウントプログラムを選択します。\n\n
  • 次に、先ほどS3にあげたデータをInputLocationへ指定します。\nあと、処理結果が出力される場所をOutputLocationへ指定します。\n
  • あとは、Masterサーバのインスタンスサイズ、スレーブサーバの台数とインスタンスを指定して、完了です。\n今回は、スレーブサーバを10台使用しています。\n
  • 処理が開始されますと、このようにジョブの表示が行われStateが「Starting」になっていることが確認できます。\n
  • EC2のインスタンス一覧を見ますと、このように指定した台数分(Master1台+Slave10台で11台)起動していることが分かります。\n
  • ElasticMapReduceのタブを見ますと、Stateが「Running」になり、処理が実行されていることが分かります。\n
  • しばらく待ちますと、Stateが「Completed」になり処理が完了していることが分かります。\n今回は29分処理に時間がかかったことが分かります。 \n
  • なお、ElasticMapReduceの処理が完了しますと、EC2のインスタンスは自動的に停止します。\n
  • 次に、S3のバケットを確認しますと、OutputLocationで指定したフォルダに処理結果が出力されます。\n
  • なお、今回の結果はこんな感じでした。\n一般的な単語がやはり多く使用されているようで、あまり面白くない結果となりました。\n
  • ではまとめに入ります。\n\n
  • ・Hadoopは必要に応じてサーバの台数を変更できるため、クラウドと非常に親和性が高いと感じます。\n・また、Hive等のミドルウェアが豊富にあり、Map&Reduceを意識せずに開発を行うことが出来るのは非常に便利です。\n\n・今回は、AWSのサンプルスクリプトを利用しましたが、今後は別の形でMapReduce、Hiveの実装を行って検証をしてみたいと思います。\n・個人的にはEMRには非常に可能性を感じているので、皆さんも是非いろいろ試してもらえたらと思います。\n\n・なお、実際のシステムではこんな構成が考えられるかなと思います。\n\n
  • 以上となります。\nご清聴ありがとうございました。\n
  • Hadoop(emr)

    1. 1. Hadoop(EMR)
    2. 2. 目次1、自己紹介2、Hadoopの歴史3、どういったことに使うの?4、Hadoopの構成5、MapReduce処理の概要6、Hadoopを使いやすくするミドルウェア7、実際に使ってみる8、まとめ
    3. 3. 1,自己紹介
    4. 4. 名前:小田切 満春性別:男年齢:33歳既婚出身地:埼玉県行田市居住地:埼玉県川口市
    5. 5. 行田の名物 その1十万石まんじゅう
    6. 6. 行田の名物 その2ゼリーフライ
    7. 7. 買える場所 http://bit.ly/LicE9A
    8. 8. 2,Hadoopの歴史
    9. 9. Hadoopはgoogleから2003年に発表された分散ファイルシステム(GFS-Google File System)の論文と、2004年に発表されたMapReduceの論文を元に米Yahoo!が中心になり開発が行われていました。Hadoopでは、GFSに代わるHDFS(Hadoop Distributed File System)と呼ばれる分散ファイルシステムを使用します。MapReduceに関しては、googleの論文を元に実装が行われています。
    10. 10. Hadoopの由来ちなみに、Hadoopの名前の由来は造語で、Hadoopプロジェクト創始者のDougCuttingの子供が、黄色いゾウのぬいぐるみにつけた名前だそうです。 Hadoopのロゴ
    11. 11. 3,どういったことに使うの?
    12. 12. Hadoopの特徴はビッグデータに対して高速にバッチ処理を行うこ とにあります。 よく利用されるのは、ログの解析、分析です。 特定の条件での集計や、ユーザの行動履歴等を解析することで、 その結果をレコメンド等マーケティング等に利用します。 少し前だとクックパッドさん、最近だとホットペッパーさんの履 歴データの分析にも本格利用されるようになったそうです。  COOKPADの食材の検索データを地域別、週別、月別で見れる「たべみる」  Mysqlだと7000時間(推定)かかる処理が、30時間に短縮!!  http://www.slideshare.net/sasata299/hadoop-in ホットペッパーの利用履歴分析にHadoop活用  メルマガのおすすめのお店のリンクのクリック率が1.6倍に向上  http://itpro.nikkeibp.co.jp/article/JIREI/20120125/379353/
    13. 13. 4,Hadoopのサーバ構成
    14. 14. Hadoopのサーバ構成は非常にシンプルで、JOBのコントロールを行うMasterサーバと、実際にJOBを処理するSlaveサーバ(複数台)で構成されます。
    15. 15. HadoopのJOBの振り分け
    16. 16. 5,Map&Reduce処理の概要
    17. 17. Map処理概要
    18. 18. Reduce処理概要
    19. 19. MapReduceの概要でよく出てくるフロー
    20. 20. 6,Hadoopを使いやすくするミドルウェア
    21. 21. PigHBase:googoleのBigQueryに相当ZooKeeperHive:SQLライクなHiveQLといった言語で開発者にMapReduceを意識させずに実装を行うことが出来ます。etc.
    22. 22. 7,実際に使ってみる
    23. 23. 今回利用したデータhttp://liu.cs.uic.edu/download/dataAmazonが公開しているデータアーカイブ(テキストデータで約6GB)
    24. 24. 事前準備S3へ使用するファイルをアップロードしておく
    25. 25. ワードカウントの結果順位 単語 出現数 順位 単語 出現数1 of 25,667,195 16 his 3,966,1552 is 18,162,455 17 my 3,840,4113 i 18,113,175 18 he 3,718,7254 it 15,542,277 19 at 3,279,1495 in 14,314,656 20 like 3,220,9106 this 14,225,666 21 has 3,119,6577 that 11,616,208 22 can 2,893,3858 s 10,047,393 23 about 2,874,5359 as 6,771,606 24 great 2,731,24810 but 6,337,996 25 her 2,687,95311 book 6,060,566 26 what 2,644,24712 not 5,356,163 27 very 2,504,19113 have 5,196,102 28 will 2,386,30914 t 4,770,961 29 up 2,183,14715 all 4,029,276 30 when 2,168,171
    26. 26. 8,まとめ
    27. 27. Hadoopはクラウドと非常に親和性が高い(必要に応じてSlaveサーバの台数を増やせるため)と感じます。今回は実際に実装を行っていませんが、実際にMapReduceのプログラムは自分で実装しようとすると、結構大変です。(パフォーマンスにも影響が出やすい)その点、Hive等のミドルウェアを使用すると、MapReduceを意識せずにすむので、実装は非常に簡単になります。実際の運用では、こんな構成とかになるのではと思います。
    28. 28. ご清聴ありがとうございました。

    ×