Spark SQLとHive、Hadoop上でのクエリ処理性能を比較してみた

羽野三千世 (編集部)

2016-01-20 07:00

 年々拡大するビッグデータ市場。IDC Japanの予測によれば、国内のビッグデータソフトウェア市場の規模は2014~2019年にかけて年間平均成長率33.5%で拡大し、2019年には470億6100万円に達する。

 ビッグデータを分散処理・管理するためのソフトウェア基盤としてメジャーなOSSに「Apache Hadoop」がある。Hadoop上のデータ処理には、従来から「Hadoop MapReduce」や、MapReduce上で動作するクエリ処理技術である「Apache Hive」が利用されてきた。しかし、MapReduceとHiveには、大規模データの処理に活用する上での課題がある。

 MapReduceはスループット重視の設計であるため、どちらかというとバッチ処理に適しており、インタラクティブにクエリを実行したいというニーズを満たさない。また、Hiveのクエリ言語は“SQLライク”なHiveQLであり、Hadoop上で標準SQLを使いたいという声があった。

 そのような背景から、近年、Hadoop上で標準SQLを使って、HadoopのデータをDWHなどでインタラクティブ分析に活用できる技術として、OSSのSQL on Hadoopの開発が活発化している。その中でも、今特に注目されているのが、汎用データ分析処理エンジン「Apache Spark」のSQLクエリ処理のコンポーネントである「Spark SQL」だ。

Spark SQLとは

 Apache Sparkは、Spark SQLを含み、Spark Streaming(ストリーム処理)、MLlib(機械学習処理)、Graph X(グラフ処理)の4つのコンポーネントで構成される。クラスタマネージャとして、独自クラスタマネージャのほかに、Hadoop YARN、Apache Mesosを利用することが可能で、YARNと連携してHadoop上で動作する。

 クエリ処理を行うSpark SQLは、Hadoop HDFS上のファイル(CSV、JSON,Parquet、ORC、Avroなど)、Hiveテーブル、RDBなど、さまざまなデータに標準SQLでアクセスできるという特徴がある。また、Spark StreamingやMLlibと連携して、ストリーム処理、機械学習処理も標準SQLで利用可能にする。

 このSpark SQLは、スループットと低レイテンシを両立し、MapReduce上で動作するクエリ処理ソフトApache Hiveより高速だと言われている。ここでは、2015年12月に開催された「オープンソースカンファレンス2015 .Enterprise」で発表されたSpark SQLの性能検証結果を紹介する。同検証は、日立ソリューションズ オープンソース技術グループが実施し、同グループの倉又裕輔氏がカンファレンスで発表した(記事中に掲載する図表はすべて日立ソリューションズから提供を受けたもの)。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

自社にとって最大のセキュリティ脅威は何ですか

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]