分散並列処理プログラミングフレームワーク「Apache Hadoop」を中心にしたイベント「Hadoop Conference Japan 2014」が7月8日に開催された。今回で5回目となる同イベントには、HadoopでSQLクエリや機械学習などを高速に処理するための並列処理エンジン「Apache Spark」の主要開発者であるPatrick Wendell氏、Hadoopの産みの親であり、現在はHadoopディストリビューションベンダーであるClouderaのチーフアーキテクトを務めているDoug Cutting氏が参加し、基調講演に登壇した。
最新版となる「Hadoop 2.0」は2013年10月にリリース。Hadoopはバッチ処理基盤としてのイメージが強かったが、Hadoop 2.0ではバッチ処理以外にも対応している。その一つがSparkであり、Sparkはこの5月にバージョン 1.0が公開されている。Hadoop 2.0では、リアルタイムにSQLクエリを処理するための「Cloudera Impala」や「HAWQ」などのSQLエンジンにも対応しており、Hadoopを適用する範囲が広がると期待されている。
Cloudera チーフアーキテクト Doug Cutting氏
ZDNet Japanの取材に対して、Hadoop 2.0の特徴についてCutting氏はさまざまあるとしながらも「“YARN”が追加された」ことを挙げた。YARN(Yet Another Resource Negotiator)は、分散するアプリケーションからメモリやCPUなどのリソースを要求するためのハンドリング、スケジューリングの実行を管理するためのAPIなどを提供する。
従来のHadoopは、バッチ処理として「MapReduce」を基本にしていた。MapReduceは、分散して処理する「Map」と、その結果を集約する「Reduce」で構成され、比較的大きな単位に分割して並列に処理する。
YARNは、この「MapReduceをリファクタリングしたもの」(Cutting氏)になる。YARNで「スケジューリングやリソースを割り当てられるようになり、クラスタでリソースを共有できる」(Cutting氏)。YARNは、MapReduce上のアプリケーションだけでなく、そのほかの複数のアプリケーションも実行できるとして注目を集めている。
Cutting氏は、先に挙げたSparkもHadoop 2.0の特徴と指摘。さらに、分散ファイルシステムであり、Hadoopのストレージとも言える「HDFS(Hadoop Distributed File System)」の「スピードが2倍になった」ことも特徴と解説した。Cutting氏は、Hadoop 2.0の可能性について、このように表現した。
「(MapReduce専用の分析ツールである)PigやSparkなどHadoopの上で何でもできる。1つのプラットフォームでさまざまなことができる。これは面白い技術」
Hadoopは、「ビッグデータ」というキーワードとともに注目を集めてるようになっている。Hadoopは大規模のデータ、特に非構造化データを効率よく処理できる技術だが、かつては「ビッグデータ=Hadoop」というイメージで語られるほどだった。
今回のイベントでも分かるように、日本企業もHadoopを利用していることは明らかだが、米企業ではどうなのか? Cutting氏は、米国でのユーザー企業は「毎年2倍の速度で増えている」と説明した。
「企業はさまざまなデータを生成、保存している。これを活用するにはコストがかかることは明らかだ。Hadoopがデータ処理の大きな部分をになっており、コストを抑えてデータを活用するには、Hadoopを使うしかない。シンプルなETL(データの抽出、変換、読み込み)やレポーティングにはHadoopが最適」(Cutting氏)
Hadoopは、Apache Software Foundation(ASF)が中心となって開発が進むオープンソースソフトウェア(OSS)であり、基本的には無料で利用できる(Cutting氏はASFのチェアマンも経験)。Hadoopに限らずLinuxなどのOSSは、商用ソフトウェアと異なり、利用するための経済的障壁が低いために、Cutting氏が言うように利用するユーザー企業が増え続けることは理解しやすい。
それに加えて、Hadoopはスモールスタートできるというメリットもあるという。「導入当初は10台で処理して、2年目は20台といった感じで台数を増やしていけばいい」(Cutting氏)。こうしたメリットからFortune 50の半分がHadoopが導入、利用するまでになっているという。Cutting氏によれば、Hadoopに保存されるデータの量も年に2倍の割合で増加していると説明。Cutting氏は「すべてを解決できるわけではないが、ほかに解決策がない」と強調している。
数年前では考えられなかったことだが、OSSに特化していないベンダー、例えばOracleやTeradataなどもHadoopと連携する製品、Hadoopを取り込んだ製品を提供するようになっている。これは「ビッグデータ=Hadoop」というイメージが影響したとも言えるし、Hadoopが分散並列処理領域での事実上の標準だからとも言える。Cutting氏はこの状況について、こう指摘した。
「既存ベンダーはトレンドに乗り遅れないようにしたいと思える。Hadoopという新しい脅威に対して、脅威として扱うのではなく、防御策としてHadoopを取り込もうとしている。だが、馬車を作っている会社がクルマについてコンサルティングすることはできない」
HadoopそのものはOSSだが、Cutting氏がチーフアーキテクトを務めるClouderaをはじめとしたさまざまなディストリビューションが提供されている。Hadoopでデータをうまく処理したいというユーザー企業はこれからも増えていくだろうが、効果的な使い方はどうすればいいのだろうか。
Clouderaは無償版のHadoopディストリビューション「CDH(Cloudera's Distrbution Including Apache Hadoop)」を提供している。Cutting氏は、こうした無償版のディストリビューションから利用することを勧めた。その上でサポートが必要ならばベンダーからの有償サポートを求めればいい。「OSSを自分で導入して設定して使うのはやはり難しい。Linux.orgからダウンロードして導入するユーザーは珍しい」(Cutting氏)
Cutting氏は、所属するCloudera製品の優位性をこう強調した。「CDHは一部を除いてApacheライセンスで提供される。Apacheで承認されたものがCDHに取り込まれている。法務的な理由、著作権の侵害があった場合に弁償金を払いたくないのであれば、Cloudera製品を利用した方がいい」