hadoop-logo
ようこそ Tech blogへ!
「これからHadoopを勉強しよう」という方はまず下記のページから

サイトの移行に伴って画像が表示されないなどの不具合が生じています

CDHとApache Spark

CDH(Cloudera’s Distribution including Apache Hadoop)にApache Sparkが仲間入り

本日Clouderaから公開されたプレスリリース(英語)によると、ClouderaとDataBricksがパートナー提携し、CDHにApache Sparkがサポートされるようになるとのことです。
更新)日本語のプレスリリースが出ています。

Cloudera、新たなパートナープログラムCloudera Connect:Innovatorsを発表 〜ハイスピードデータアナリティクスのためDatabricks社とタイアップし、Sparkをサポート〜

Apache SparkはMapReduceを使用せずに分散処理を行う仕組みです。詳しい資料(Spark/Shark)が @oza_x86さんから公開されています。
この資料をご覧になれば、下記は読む必要ありません、、

Apache Spark (Incubator)

MapReduceはMapフェーズでHDFSからデータを読み込み、Mapperの出力(中間データ)をローカルディスクに書き出します。中間データはシャッフル&ソートフェーズでネットワークを介してReducerに渡され、最終出力は通常HDFSに書き出されます。耐障害性もあり、数千台規模でもスケールアウトします。しかし、繰り返し処理を行う場合などはこれらの処理が障壁になります。機械学習ような繰り返し処理をMapReduceで実装するのは非効率です。また、Map、Reduceタスクの起動は(通常)毎回JVMを起動するので、起動コストもかかります。
Apache Sparkは、MapReduceを使用しておらず、またHDFS上に特殊なキャッシュを使用することで、この書き出し処理を減らしており、繰り返し処理をインメモリで行えることが特徴です。また、タスクの起動コストも低いため、複雑な処理はMapReduceよりもかなり高速ですし、メモリを使った繰り返し処理に適しています。

Cloudera Impala

話は逸れますが、昨年のHadoop World 2013で公開されたCloudera Imapla(以降Impala)は、Apache Hiveと同様の、SQLライクなクエリを高速化するための仕組みです。(ちょっと古いですが、昨年Imapalaについてまとめたブログはこちら)。ImpalaもMapReduceを使用しない分散処理です。分散処理の結果はメモリ上で扱われ、中間データはディスクに書き出されません。
メモリ上で処理をするという点でApache SparkとCloudera Imaplaとは何が違うの?という疑問があるかも(ないかも)しれません。ImapalaはHDFS/HBase上で動作するクエリエンジンなので、Apache Sparkとは目的が違います。
そうそう、Clouderaのブログ(Impalaのロードマップ)によるとCloudera Impala 1.2ではUDFとUDAFがサポートされる予定とのことなので、こちらも待ち遠しいところです。

まとめ

ユーザーにとって選択肢が増えるのは良いことですが、選択肢が増えすぎると迷いますね。。(かつ、覚えなきゃならないことが増えるのはツラい)
参考URL(日本語):
Cloudera Incのプレスリリース(英語):New Cloudera Partner Program Harnesses Power of Innovative Startups
DataBricksのブログ(英語):Databricks and Cloudera Partner to Support Spark
SlideShare(oza_x86さん):Spark/Shark
夢とガラクタの集積場:[Spark]Apache Sparkってどんなものか見てみる(その1
 

コメント

  1. kernel023 kawasaki より:

    2013/10/29 0:01 DataBricksのブログ(英語)へのリンクを追加

  2. kernel023 kawasaki より:

    2013/10/29 13:20更新:日本語のプレスリリース追加