BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Glenn Tamkin氏、NASA大規模気候データへのApache Hadoop適用を語る

Glenn Tamkin氏、NASA大規模気候データへのApache Hadoop適用を語る

原文(投稿日:2015/05/06)へのリンク

NCCS (NASA Center for Climate Simulation) はハイパフォーマンスデータ分析にApache Hadoopを使っている。クラスタに最適化されており、大規模データセットの分散ストレージと並列計算を結合しているためだ。NASAチームのGlenn Tamkin氏は先月のApacheCon Conference講演し、Hadoopを使って構築した、気候データ分析のためのプラットフォームの詳細について説明した。

次世代気候データ分析機能を開発、評価するためのITインフラを提供するNCCSにとって、科学データサービスは重要な部分だ。そのチームの目的は、ハイパフォーマンス分析の実験開発のためのテストベッドを提供すること、そして気候データ分析にアーキテクチャ的アプローチを提供することだ。

Hadoopはテキストベースの問題に対してよく知られているが、彼らのデータセットとユースケースではバイナリデータを扱うため、独自のJavaアプリケーションを作ってMapReduce処理でデータを読み書きしている。彼らは高速データアクセスのための独自の複合キー設計を行うとともに、Hadoop Bloomフィルタを利用している。Bloomフィルタというのは、要素が存在しているかどうかを高速にメモリ効率良く特定するよう設計されたデータ構造だ。データシーク時に既存のインデックスを利用する追加のハッシュテーブルを含んでいるため、HadoopではBloomMapFileをMapFileの拡張版と見なすことができる。

もともとのMapReduceアプリケーションは標準のHadoop Sequence Filesを使っていたが、その後、Sequence、Map、Bloomという3つのフォーマットをサポートするよう変更した。Bloomフィルタを追加することで、約30-80%のパフォーマンス向上が見られたという。

彼はそのユースケースのMap Reduceワークフローについても説明した。データをHDFSに入れる方法には3つの選択肢があった。

  • Option 1: MERRAデータを変更なしにHadoopに入れる。パースするための独自のマッパーを書く必要がある。
  • Option 2: Hadoopシーケンサに独自のNetCDFを書き、ファイルをまとめて保持する。このやり方は、インデックスをファイルに置くことでHadoopがキーでパースすることを可能にし、各ファイルのNetCDFメタデータを管理する。
  • Option 3: Hadoopシーケンサに独自のNetCDFを書き、ファイルを別々に分割する(ブロックサイズを小さくする)。ただし、このやり方だとデータとNetCDFメタデータの繋がりが切れてしまう。

彼らはOption 2を選択し、シーケンスファイルフォーマットを使った。データは時間で分割されており、シーケンスファイルの各レコードには、複合キーとしてのタイムスタンプとパラメータ名(例えば、気温)と、パラメータの値(1次元から3次元)が含まれている。

Glenn氏は分析プロジェクトで使われているデータセットについて説明した。データプロダクトは25のコレクションに分かれている(標準18、化学7)。データセットは1979年から2012年までの月平均ファイルと6時間間隔の日次ファイルから成り、データサイズは合計80 TBほどになる。生成される月/日ごとのファイルサイズは20MBから1.5GBの範囲になる。

彼は学んだこととして次のように語った。シーケンスファイルフォーマットの設計は大きなバイナリデータにとって重要である。コンフィグレーションが鍵となる。チューニングでは同時に1つのパラメータだけを変更しよう。HDFSのインストールは簡単だが、最適化は簡単ではない。

 

この記事に星をつける

おすすめ度
スタイル

BT