hdknr’s posterous

 
Filed under

hadoop

 

Hadoop conference 2009に行ってきました | イベント | キャリア形成のお手伝い | あすなろBLOG

■ Elastic Map Reduceでお手軽 Wikipediaマイニング

数百行程度のpythonスクリプトで大規模データ処理を実現する例を紹介。90万記事程度のwikipediaの日本語を題材に
AmazonEC2/S3とElastic Map Reduceを活用。

結構実践的な話が多く、実際に試した人ならではの話(S3は頻繁な入出力が想定されていないインフラのようなので頻繁に読み書きがされる用途ではパフォーマンス面ではオススメできないとのこと)とか、実際の分析結果(年、国名とかが上位にくるがこれを除外するようにフィルタリングすると、明治、神部天皇とかがPagerankとして高い...)という話は面白かったなぁ。

AmazonEC2/S3、Elastic Map Reduce良い/悪い部分もまとめてくださいました。
-良い点:かんたん。小規模なジョブならMasterの値段分安い。お手軽。1時間1台0.1ドルなので、1時間100台1000円
-悪い所:多数のジョブを走らせる事を考えるともったいない。ログが見にくい(開発時には生産性低下につながる?)。独自のディスクイメージが利用出来ない。

Q.amazonのサービスは時間によってパフォーマンスの差があると聞いた事があるが、実際にそのような事があったのか?
A.ある程度台数をつかっているからかもしれないが、時間によって差があるというのはかんじられなかった。(せいぜい2,3分)
※アメリカの昼時間帯に実際にジョブを実行していたとのこと。

Filed under  //   Hadoop   MapReduce   Python  

Comments [0]

AmazonS3 - Hadoop Wiki

Hadoop provides two filesystems that use S3.

S3 Native FileSystem (URI scheme: s3n)
A native filesystem for reading and writing regular files on S3. The advantage of this filesystem is that you can access files on S3 that were written with other tools. Conversely, other tools can access files written using Hadoop. The disadvantage is the 5GB limit on file size imposed by S3. For this reason it is not suitable as a replacement for HDFS (which has support for very large files).
S3 Block FileSystem (URI scheme: s3)
A block-based filesystem backed by S3. Files are stored as blocks, just like they are in HDFS. This permits efficient implementation of renames. This filesystem requires you to dedicate a bucket for the filesystem - you should not use an existing bucket containing files, or write other files to the same bucket. The files stored by this filesystem can be larger than 5GB, but they are not interoperable with other S3 tools.

AWS Hadoop Filesystem(HDFS)
- ネイティブ・ファイルシステム( s3n:// )
- ブロック・ファイルシステム ( s3:// )

Filed under  //   AWS   Hadoop   S3  

Comments [0]

Hadoop、hBaseで構築する大規模分散データ処理システム:CodeZine

hBaseはBigTableのオープンソースクローンです。Web検索エンジンを開発しているPowerset社のエンジニアが主導して開発しており、Hadoopと同じくJavaで記述されています。hBaseはHadoopに依存しており、実際のデータはHDFS上に安全に保存されます。昔のバージョンのソースコードはHadoopに同梱されていましたが、現在は分かれているので気をつけてください。

 以下にhBaseの情報が掲載されているURLを集めてみました。

Filed under  //   BASE   Hadoop   hBase  

Comments [0]

Hadoop、hBaseで構築する大規模分散データ処理システム:CodeZine

 採用実績はこちらをご覧下さい。開発を主導しているYahoo!はもちろんのこと、Facebookでも実際に使用されています。特にログ解析目的での使用が多いようです。

 Hadoopに関する情報は以下の場所から得られます。現在日本語での情報はほとんどありません。

Filed under  //   BASE   Hadoop   hBase  

Comments [0]

Hadoop、hBaseで構築する大規模分散データ処理システム:CodeZine

1.3 BigTable

 BigTableはGoogle File System上に構成されたスケーラブルな分散データベースです。Google File Systemは巨大なファイルを扱うのに特化されていますが、小さいファイルの大量の読み書きには向いていません。しかしWebページなどの情報を扱うには、構造化された小さいデータに対してデータベース的にアクセスしたいという要求があります。BigTableはそのような要求を満たすために作られた分散データベースです。

 BigTableでは大規模なデータを保存するために、テーブルを複数の行で構成される「タブレット」という単位に分割します。各タブレットは異なるサーバーに分散して配置され、データサイズ増大への対応と負荷分散が可能になります。

 またデータ圧縮を用いてディスクスペースを節約したり、メモリをうまく使うことでデータの参照や挿入を高速に行えたりするのも特徴です。データモデルも行・列で扱う既存のRDBMSとは異なっています。

Filed under  //   BASE   BigTable   Hadoop   hBase  

Comments [0]

Hadoop、hBaseで構築する大規模分散データ処理システム:CodeZine

1.2 MapReduce

 MapReduceは大規模なデータを大量のマシンで並列に処理するための分散計算フレームワークです。ウェブ検索のためのインデックス作成処理や、ログ解析、機械学習などの処理に利用されているようです。

図3 MapReduceの概念図
図3 MapReduceの概念図

 MapReduceという名前は処理を「Mapフェーズ」と「Reduceフェーズ」という2段階のフェーズに分割することに由来します。Mapフェーズでは大量の情報を分解し、必要な情報を抜き出して出力します。ReduceフェーズではMapフェーズで抽出された情報を集約し、それに対して計算を行い結果を出力します。MapReduceの入出力はGFSからなされることが多いようです。

 Map、Reduceのそれぞれのフェーズでは他のマシンと通信することがないため、数万台のマシンに効率よくタスクを分配することができ、台数に比例する能力でデータを処理することができます。タスクを分配する際には、データを保持しているノードでそのデータを処理する計算を始める事で、余計なファイルの転送を防ぎます。またマシンが途中で故障して処理が中断した場合も、他のマシンで同じ処理を自動的に始めてくれるなど、耐障害性についても十分考慮されています。

Filed under  //   BASE   Hadoop   hBase   MapReduce  

Comments [0]

Hadoop、hBaseで構築する大規模分散データ処理システム:CodeZine

1.1 Google File System

GFS(Google File System)は、大量のデータを大量のマシンで安全に保存するための分散ファイルシステムです。分散ファイルシステムというのは、複数のマシンのディスクを組み合わせて1つのファイルシステムとして見せる技術です。1つのディスクで保存しきれないような大量のデータを効率よく扱う際に非常に有効です。

図2 Google File Systemの概念図
図2 Google File Systemの概念図

GFSの特徴としては同じファイルを異なるマシンに重複して持たせることで、一部のマシンが故障してもファイルが失われないという点が挙げられます(冗長化)。Googleでは何万台ものサーバーが常時稼動しているので、1日に多くのマシンが壊れます。それに耐えられるような耐故障性の高い分散ファイルシステムを持つことは巨大データを扱う上で必須だったのではないかと思われます。

 

Filed under  //   BASE   GFS   Hadoop   hBase  

Comments [0]

Amazon Elastic MapReduceを使ってみた - moratorium

Elastic MapReduceの中核に使われているHadoopについては僕がいくつか記事をCodeZineに寄稿させて頂いております。最近ではYahoo, Facebookはもちろん、国内では楽天さんやはてなさんも使用されているようです。

Filed under  //   Aws Amazon   Hadoop   MapReduce  

Comments [0]