Apache Hadoop Ozone: Apache Hadoop 用のオブジェクトストアの紹介

Apache Hadoop Ozone: Apache Hadoop 用のオブジェクトストアの紹介

著者: Arpit Agarwal
本ブログ記事は「Introducing Apache Hadoop Ozone: An Object Store for Apache Hadoop」(2018/10/08投稿)の日本語翻訳記事です。また、原文の投稿はClouderaとHortonworks合併前に記述されたものであり、いくつかのリンク、リソースにはアクセスできない場合があります。
*訳注: 元記事公開時点では 0.2.1-alpha 版が最新でしたが、日本語翻訳時(2020/3/9)は0.4.1-alpha版が公開されています。

1. はじめに

Apache Hadoop 分散ファイルシステム(HDFS)はビッグデータ用のデファクトファイルシステムになっています。現実世界では、HDFSがどれほどスケーラブルで堅牢であるのかを忘れがちです。私たちのお客様は数千ノードのクラスターを実行しています。これらのクラスターでは100ペタバイトを超えるデータを格納し、数千のクライアントにデータを提供しています。
そのビッグデータの起源(訳注: GFS)に忠実に、HDFSではほとんどのファイルが大きな場合(数10〜数100MB)に最適です。HDFSは、有名なスモールファイル問題(*1)に悩まされており、4億個を超えるファイルに苦労してきました。そこで、何十億個ものスモールファイルに対応できる、HDFSのようなストレージシステムに対する需要が高まっています。
*1: 訳注: ブログ記事「小さなファイルが大きな問題を引き起こす:Hadoopクラスターでのスモールファイルの予防と対処について」
Ozoneは、小さなファイルと大きなファイルの両方を同じように管理できる分散キーバリューストアです。HDFSはPOSIXライクなセマンティクスを提供しますが、Ozoneはオブジェクトストアのようにも動作します。
Ozoneは、大規模なHadoopクラスターの管理に豊富な経験を持っているエンジニアとアーキテクトのチームによって設計、実装されています。そのため、HDFSのどのような点が優れているのか、どのような点がより良い方法で解決できるのか、についての深い理解がありました。これらの教訓がOzoneの設計と進化に影響を与えています。
Ozoneのアルファリリースは Apache Ozoneのウェブサイトで入手できます。リンク

2. 設計理念

Ozoneの設計は次の原則に基づいています。

2.1 強い一貫性 (Strongly Consistent)
強い一貫性によりアプリケーションの設計が簡素化されます。Ozoneは厳密な直列化可能性(strict serializability)を提供するように設計されています。

2.2 アーキテクチャーのシンプルさ
シンプルなアーキテクチャーは、物事がうまくいかなかった時に原因を考えやすくデバッグしやすいです。潜在的なスケーラビリティを犠牲にしても、Ozoneのアーキテクチャーをシンプルに保つことを試みました。しかしながら、実際のところOzoneはよくスケールします。1つのクラスターに1兆を超えるオブジェクトを格納できるように設計しました。

2.3 階層化アーキテクチャー
現代的なストレージシステムのスケールを達成するために、Ozoneは階層化ファイルシステムとなっています。これは、名前空間の管理をブロック管理とノード管理の層から分離しており、ユーザーは両方の軸でそれぞれをスケールできます。

2.4 簡単なリカバリー
HDFSの主な強みは、データを失うことなく、クラスター全体の電力喪失のような壊滅的な状況から、比較的簡単な方法で効率的にリカバリーできることです。ラックとノードの損失の影響は比較的軽微です。Ozoneは、障害が発生しても同様に堅牢です。

2.5 Apacheのオープンソース
Ozoneの成功にはApache Open Source コミュニティが不可欠だと考えています。Ozoneの設計と開発は全てApache Hadoopコミュニティで行われています。

2.6 Hadoopエコシステムとの相互運用性
Ozoneは、既存のApache Hadoopエコシステム、Apache Hive、Apache Spark、および従来のMapReduceジョブのような関連アプリケーションで使用できる必要があります。したがって、Ozoneは以下をサポートします。

  1. Hadoop互換ファイルシステムAPI 。(別名 OzoneFS)。これにより、Hive、Sparkなどは、変更することなくOzoneをファイルシステム層として使用できます。
  2. データの局所性(ローカリティ)。データの局所性とは、計算タスクをデータのあるのと同じノードでスケジュールできるようにすることで、元々のHDFS/MapReduceアーキテクチャーにおける鍵となっていました。Ozoneもデータの局所性をサポートします。
  3. HDFSと共存したデプロイが可能。Ozoneは既存のHadoopクラスターにインストールでき、HDFSとストレージディスクを共有できます。

3. 現在の状況

評価用のOzoneのアルファリリース版は、Apache Ozoneのウェブサイト(https://hadoop.apache.org/ozone/)にてご利用いただけます。コミュニティは、将来のベータリリースで利用可能になる多くの機能に積極的に取り組んでいきます。

  1. セキュリティ: KerberosとDelegation Token (*2)
  2. 高可用性
  3. Amazon S3互換 REST API (*3)
  4. ラックアウェアなデータ配置

*2: 訳注: 0.4.0で対応済み https://cwiki.apache.org/confluence/display/HADOOP/Ozone+Road+Map

*3: 訳注: 0.3.0、0.4.0で段階的に対応済み https://cwiki.apache.org/confluence/display/HADOOP/Ozone+Road+Map

Apache Hadoopコミュニティは、過去に、HDFSをスケールするための複数の方法を提案しています。その一例は以下の通りです。

  • HDFS-5477 — Block manager as a service.
  • HDFS-8286 — Scaling out the namespace using KV store
  • HDFS-5389 — A Namenode that keeps only a part of the namespace in memory
  • Block Collection/Mega-block abstraction

Ozoneの設計は、これらすべての提案からアイデアを借りています。現在活動中の開発者や過去に活動していた開発者など数多くの人たちが、アイデアやコーディングで、このOzoneプロジェクトに貢献を続けてきています。

5. 参考文献

  1. Apache Hadoop Ozone web site — https://hadoop.apache.org/ozone/
  2. Try out Ozone — https://www.katacoda.com/elek/scenarios/ozone101

謝辞

日本語版翻訳にあたり、Cloudera Japan の
Daisuke Kobayashi、Bin Liu 、Ryo Suzukiのレビューに感謝します。

追記

2020/3/19現在、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

 

E-book: IoTによる デジタル トランスフォーメーション

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

コメントする

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