Ozoneに10億ファイル

Ozoneに10億ファイル

By Nandakumar Vadivelu & Bharat Viswanadham & Shashikant Banerjee
この記事は 2020/4/24 に公開された「One billion files in Ozone」の翻訳です。

関連リンク
Apache Hadoop Ozone: Apache Hadoop 用のオブジェクトストアの紹介
Apache Hadoop Ozone: オブジェクトストアの概要
Apache Hadoop Ozone — オブジェクトストアのアーキテクチャー
Ozoneのベンチマーク: CDP用Clouderaの次世代ストレージ
Apache Hadoop Ozone セキュリティ — 認証

Apache Hadoop Ozoneは分散型のキーバリューストアであり、小さなファイルから大きなファイルまでの両方を管理することができます。Ozoneは、小さなファイルに関するHDFSのスケールの制限に対処するために設計されました。HDFSは大きなファイルを格納するために設計されており、HDFSでの推奨ファイル数は NameNode で3億個で、この制限を超えてのスケールはできません。

スケーラビリティを達成するためのOzoneの主な特徴は以下の通りです。

  • Ozoneの名前空間はローカルのRocksDBインスタンスに書き込まれ、パフォーマンス(全てをメモリに保持する)とスケーラビリティ(あまり使われていないメタデータをディスクに永続化)の間のバランスを、簡単に調整することができます。
  • 名前空間とブロックスペースの管理は、2つの異なるデーモン、OzoneManager(OM)とStorageContainerManager(SCM)にそれぞれ分かれています。これらのデーモンは、それぞれ独立してスケールさせることができます。
  • HDFSとは異なり、Ozoneのブロックレポートは、コンテナ内の複数のブロックを集約したコンテナレポートによりレポートされます。

Ozoneプロジェクトの主な目的の一つは、名前空間のスケーラビリティを提供し、それと同時に耐障害性、セキュリティ、パフォーマンス、クライアントのスケーラビリティを維持することです。

10億キーへの道: HDFSのスケーラビリティの限界を超えて

Ozoneで10億オブジェクトを管理できるようにすることは、プロジェクトの重要なマイルストーンの一つでした。データは、5ノードでそれぞれ50スレッドで実行されるカスタムジョブを用いて生成されました。Ozoneは11ノードのクラスター(1台のOM,1台のSCM、9台のDataNode)で実行し、それぞれのオブジェクトのサイズは10KBで、10億オブジェクトに到達するまで56時間かかりました。10KBを選択した理由は、小さなファイルでのOzoneのパフォーマンスを測定するためです。

Ozoneは、~5000オブジェクト/秒を持続する速度でオブジェクトを書き込むことができました。これは、テスト全体において、同じスループットを提供することができるという、Ozoneでの小さなファイルの扱いをさらに強調しています。

いくつかの重要ポイント

OzoneManagerのトランザクション耐性

Ozone Managerは、合計20億のトランザクションを処理しました。これは各オブジェクトへの2つのトランザクションです(一つはファイルをオープンのため、もう一つはファイルのコミットのため)。Ozone Manager(OM)は10億のオブジェクトに渡って、これらのトランザクションを ~12ミリ秒の遅延で処理しました。この一定の遅延は、OzoneManager上で長いGCの休止がないことも強調しています。

小さなメタデータのオーバーヘッド

10億のキーが、それぞれ10KBのサイズで2121個の5GBのコンテナに格納されていたため、SCMのブロックメタデータは、HDFSで10億ブロックだったのに対しOzoneでは2121個のコンテナへと大幅に削減されました。一方、OMでの10億のキーは、SSD上に合計127GBの容量を必要としていました。

テスト環境

テストは Apache Hadoop Ozone 0.5.0 (Beta) リリースで行いました。

ハードウェア

テストはAWS EC2で、OzoneManagerとStorage Container Managerのデータベース用に、インスタンスタイプがm5a.4xlargeでSSDを使用して行いました。

まとめ

小さなファイルと名前空間のスケール制限に関するHDFSの既知の制約は、ストレージノードの使用率の低さ、GCの問題、NameNodeの不安定さ、および大規模データレイクのデプロイでの名前空間の断片化に繋がります。Ozoneは、あらゆるサイズの数10億のファイルを扱うことでこれらの制限を克服し、単一の名前空間で大規模データレイクのデプロイメントを可能にします。より高スケール、かつオブジェクトストレージのユースケースをサポートするOzoneのアーキテクチャーは、コンピュートとストレージの分断が急速に台頭して来ているプライベートクラウド環境でのビッグデータのストレージ要件に対処します。

追記

2020年5月14日現在、Cloudera Data Platform — Data Center (CDP-DC) 7.0.3にはOzone 0.4.0が技術評価版として含まれています。https://docs.cloudera.com/runtime/7.0.3/ozone-storing-data/topics/ozone-introduction.html

 

モダンデータウェアハウスが直面する3つの最大の問題

Cloudera Japan Marketing
この著者の他の記事

コメントする

あなたのメールアドレスは公開されません。また、コメントにリンクを貼ることはできません。