タグ

mapreduceに関するpero1のブックマーク (12)

  • MapReduceのパターン、アルゴリズム、そしてユースケース - きしだのHatena

    Ilya Katsov氏による「MapReduce Patterns, Algorithms, and Use Cases」の翻訳 http://highlyscalable.wordpress.com/2012/02/01/mapreduce-patterns/ (下書きに入れて推敲するつもりが、なんか公開されてしまっていたので、あとでいろいろ修正すると思います) February 1, 2012 この記事では、Webや科学論文で見られる異なるテクニックの体系的な視点を与えるために、数々のMapReduceパターンとアルゴリズムをまとめた。 いくつかの実用的なケーススタディも提供している。 すべての説明とコードスニペットでは、Mapper、Reducer、Combiner、Partitionaer、ソーティングにおいてHadoopの標準的なMapReduceモデルを利用します。このフレー

    MapReduceのパターン、アルゴリズム、そしてユースケース - きしだのHatena
  • クックパッドとHadoop - クックパッド開発者ブログ

    はじめまして。今年の5月に入社した勝間@さがすチームです。 入社してからは、なかなか大変なことも多いですが、最近はお酒好きが集まって月曜から飲み合う 「勝間会」なるものも発足して、仕事面でも仕事以外の面でも密度の高い毎日を過ごしています! さて、僕は「さがす」チーム所属ということで、普段はレシピを「さがす」ユーザの満足度を上げるために、 クックパッドの検索まわりについて、いろいろな開発を行っています。 一方で、ユーザの「さがす欲求」について深く知るために、大規模なデータ解析を行い、欲求の分析を行う機会も増えてきました。 ところが、クックパッドのログは膨大な数があるので、一口のデータ解析と言っても通常のバッチ処理だと間に合わないため、 分散処理環境の必要性が高まってきました。 そこで、まずは手軽に試せる分散処理の王道ということで、最近ではHadoopを使ったデータ解析環境を整備しています。

    クックパッドとHadoop - クックパッド開発者ブログ
  • Hadoopで、かんたん分散処理 (Yahoo! JAPAN Tech Blog)

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、地域サービス事業部の吉田一星です。 今回は、Hadoopについて、Yahoo! JAPANでの実際の使用例を交えながら書きたいと思います。Hadoopとは、大量のデータを手軽に複数のマシンに分散して処理できるオープンソースのプラットフォームです。 複数のマシンへの分散処理は、プロセス間通信や、障害時への対応などを考えなければならず、プログラマにとって敷居が高いものですが、 Hadoopはそういった面倒くさい分散処理を一手に引き受けてくれます。 1台では処理にかなり時間がかかるような大量のデータも、複数マシンに分散させることで、驚くべきスピードで処理を行うことができます。 例えば、今まで1台でやっていた、あるログ集計処理

    Hadoopで、かんたん分散処理 (Yahoo! JAPAN Tech Blog)
  • Hadoopを使いこなす(1)

    まず、 1 の入力ファイルを分割する方法は、InputFormatクラスの、getSplits関数を上書きすることで、カスタマイズできます。 また、 3 のInputSplitから、KeyとValueを抽出する処理も、InputFormatクラスを通じてカスタマイズできます。 InputFormatのgetRecordReader関数を通じて、RecordReaderクラスを生成するのですが、これに任意のRecordReaderクラスを指定すればOKです。 2 のMap処理ですが、ユーザが指定したMapperクラスの処理を実行します。 Mapperクラスは、MapRunnerクラスを通じて、初期化処理、map関数を繰り返す過程、終了処理といった一連の流れを実行します。 MapRunnerクラスをカスタマイズすれば、こうした流れを制御することができます。 0.20.0からの新しいMapRed

    Hadoopを使いこなす(1)
  • そろそろHadoopについてひとこと言っておくか - nokunoの日記

    もうこの手の話題は出尽くした感がありますが、最近Hadoopについて考えることが多いので、エントリにしてみます。なお、ここではベーシックなMapReduce+HDFSのことをHadoopと呼ぶことにします。 HadoopとはHadoopとは言わずと知れたGoogleMapReduce/GFSのオープンソースのクローンです。MapReduceではプログラマはMapとReduceという2つの関数を書くだけで、並列分散処理をすることができます。これは(1) データを実際に持つマシンにプログラムを配布する (2) MapとReduceをつなぐShuffleフェーズでキーをグループ化してソートする、(3) 障害時のフェールオーバーやレプリケーション、といった処理をフレームワーク側が受け持つことによって、プログラマ側の負担を減らすものです。GFSに対応するHDFSにはファイルをクラスタに分散して保存

  • グーグルが構築した大規模システムの現実、そしてデザインパターン(1)~MapReduce編

    グーグルが「Evolution and Future Directions of Large-Scale Storage and Computation Systems at Google」(グーグルにおける、大規模ストレージとコンピュテーションの進化と将来の方向性)という講演を、6月に行われたACM(米国計算機学会)主催のクラウドコンピューティングのシンポジウム「ACM Symposium on Cloud Computing 2010」で行っています。 グーグルはどのようにして大規模分散システムを構築してきたのか、そして、そこからどのようなことを学んだのかが語られていますし、後半では大規模分散システムのデザインパターンという、非常に興味深いノウハウも公開している、非常に情報量の多い講演です。 その講演の内容を、全部で4つの記事、MapReduce編、BigTable編、教訓編、デザイン

    グーグルが構築した大規模システムの現実、そしてデザインパターン(1)~MapReduce編
  • MOONGIFT: » Googleのデータ処理分散システムMapReduceのオープンソース実装「Skynet」:オープンソースを毎日紹介

    Googleではその超巨大なコンピュータネットワークを使って、データ処理が分散化されている。これにより、大量のデータを瞬時に処理することが可能になっている。この分散処理システムはMapReduceと呼ばれており、Googleの基盤を支えるコア技術の一つだ。 処理状態を確認するコンソール ごく小規模なシステムであればニーズは発生しないかも知れないが、数十台、数百台のコンピュータを結びつける上で分散化処理は欠かせない技術だ。そこでMapReduceをオープンソース実装したこちらを紹介しよう。 今回紹介するオープンソース・ソフトウェアはSkynetRubyで実装されたMapReduceのオープンソース実装だ。 Skynetは多数のワーカーを立ち上げ、それらが互いに監視し合うことで障害発生時にも柔軟にタスクの受け渡しが可能になっている。単一障害点はなく、マスタサーバという位置づけのものですら他の

    MOONGIFT: » Googleのデータ処理分散システムMapReduceのオープンソース実装「Skynet」:オープンソースを毎日紹介
  • Hadoop Streaming - naoyaのはてなダイアリー

    id:naoya:20080511:1210506301 のエントリのコメント欄で kzk さんに教えていただいた Hadoop Streaming を試しています。 Hadoop はオープンソースの MapReduce + 分散ファイルシステムです。Java で作られています。Yahoo! Inc のバックエンドや、Facebook、Amazon.com などでも利用されているとのことです。詳しくは http://codezine.jp/a/article/aid/2448.aspx (kzk さんによる連載記事)を参照してください。 Hadoop Streaming 記事にもあります通り、Hadoop 拡張の Hadoop Streaming を使うと標準入出力を介するプログラムを記述するだけで、Hadoop による MapReduce を利用することができます。つまり、Java 以外

    Hadoop Streaming - naoyaのはてなダイアリー
  • グーグル株式会社の人が MapReduce (以下 MR)について解説をしてくれるというので聞いてきた - steps to phantasien t(2006-01-27)

    2006-01-27 近況 グーグル株式会社の人が MapReduce (以下 MR) について解説をしてくれるというので聞いてきた. 私は友人が誘ってくれたのに便乗しただけの野次馬なので, どういう集りなのかはよく把握していない. 何かの勉強会ということらしい. 技術的には論文に書いてある以上の話はなかったが, 実際に使っている人の話を聞けたのは貴重だった. 忘れないうちにあれこれメモしておく. (発表に使ったスライドはウェブに公開されているものと同じだという. スライドがあるなんて気がつかなかった...) まず MR のマスタープロセスは途中経過や統計情報を HTML として(?) 出力してくれる. そのスクリーションショットがスライドにあった. 進捗などがけっこうグラフィカルに表示される. こういうフィードバックの仕組みは開発生産性に影響しそうだ. (Tapestry の作者がいうと

  • Thread Base MapReduce - moratorium

    Thread Base MapReduce 2007-01-09 (Tue) 0:29 Uncategorized 並列計算フレームワークを作っている人を見てたら自分もなんか作りたくなって来たので、スレッドベースでGoogleMapReduceを真似て見ました。1マシン用のMapReduceといった所ですかね。 以下にソースコードが有ります。適当に煮るなり焼くなりしてください。 ソースコード ワードカウントが以下のようなコードで記述できます。 [code] class WordCounter : public Mapper { public: virtual void Map(const MapInput& input) { string text = input.value(); istringstream iss(text); string word; while

  • MapReduce - naoyaのはてなダイアリー

    "MapReduce" は Google のバックエンドで利用されている並列計算システムです。検索エンジンのインデックス作成をはじめとする、大規模な入力データに対するバッチ処理を想定して作られたシステムです。 MapReduce の面白いところは、map() と reduce() という二つの関数の組み合わせを定義するだけで、大規模データに対する様々な計算問題を解決することができる点です。 MapReduce の計算モデル map() にはその計算問題のデータとしての key-value ペアが次々に渡ってきます。map() では key-value 値のペアを異なる複数の key-value ペアに変換します。reduce() には、map() で作った key-value ペアを同一の key で束ねたものが順番に渡ってきます。その key-values ペアを任意の形式に変換すること

    MapReduce - naoyaのはてなダイアリー
  • Google Research Publication: MapReduce: Simplified Data Processing on Large Clusters

    MapReduce: Simplified Data Processing on Large Clusters Jeffrey Dean and Sanjay Ghemawat Abstract MapReduce is a programming model and an associated implementation for processing and generating large data sets. Users specify a map function that processes a key/value pair to generate a set of intermediate key/value pairs, and a reduce function that merges all intermediate values associated with t

  • 1