hdknr’s posterous

 
Filed under

hbase

 

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]