巷に情報があまりないので関連情報をまとめてます。
Apache Ozoneって?
Apache Ozoneとは、スケーラブルで冗長性のある分散オブジェクトストアです1。
また、様々なサイズのオブジェクトを数十億個まで拡張できるほか、KubernetesのCSIにも対応しようとしています。
Ozoneには、Javaクライアントライブラリ、S3プロトコルのサポート、Ozoneの使用を容易にするコマンドラインインターフェイスが付属しています。
Apache Iceberg、Delta Lake、Apache Hudiといった、Data Lakehouse2 を構築する際のストレージ層として、利用されるケースもあります3
書籍
知ってる人いたら教えてください。
アーキテクチャ
-
Apache Hadoop Ozone — オブジェクトストアのアーキテクチャー - Cloudera株式会社 公式ブログ
-
Erasure Coding(EC)
サイジングに関する情報
データサイズに応じた各ホストのスペックやネットワークスイッチに関する情報
CLI関連
- Client Interfaces Command Line Interface - Documentation for Apache Ozone
- ボリュームを管理するためのコマンド
- バケットを管理するためのコマンド
- キーを管理するためのコマンド
省略表記
ドキュメントなどで補足無く記載している場合があるので...。
一部、Ozoneのコンポーネントだけでなく、関連する用語も含みます。
省略表記 | 正式名 |
---|---|
OM | Ozone Manager |
SCM | Storage Container Manager |
DN | DataNode |
EC | Erasure Coding |
運用関連の情報
Container Balancer
DataNode間の偏りを調整する機能(Ozone v1.3.0でリリース済み)
Container Balancerは、各DNの使用率を平均した値より、設定値 Balancing Threshold 以上離れているDNが存在したらContainer Balancerが動く。
- Container Balancer overview | CDP Private Cloud
- Configuring container balancer service | CDP Private Cloud
ただし、EC利用時は v1.3.0時点では対応してない(次のV1.4.0から対応予定)
可用性に関する対応について
Ozoneには、2つのメタデータ管理コンポーネント(OM:キースペース管理、SCM:ブロックスペース管理)があり、いずれもの可用性の対応している(内部の状態はRAFTで整合している。Apache Ratisを利用)。
可用性を実現する内部の仕組みについて
データを書き込みする際には以下のMulti-Raftを使って実現している。
ReconのPipelineのUIがその状況を示している
Multi-Raftのデザインドキュメント
ReconのPipelineページの説明記事
監視関連
Ozoneは、ozone-site.xml
のhdds.prometheus.endpoint.enabled
をtrue
にすることで、各コンポーネントでPromethusフォーマットでメトリクスを出力出来る。
各コンポーネントのHTTP Web UI Portに対して、/prom
でアクセスすると取得出来る。
デフォルトの場合は以下の通り
SCM: http://scm-fqdn:9876/prom (ozone.scm.http-portで指定したポート)
OM: http://om-fqdn:9874/prom (ozone.om.http-portで指定したポート)
DN: http://dn-fqdn:9882/prom (ozone.datanode.http-portで指定したポート)
Recon: http://recon-fqdn:9888/prom (ozone.recon.http-portで指定したポート)
その他
- DataNode内のDisk間の偏りを調整するToolはまだ無いがIssueはある
- DataNodeのDiskフル対策(予約領域の設定は、Ozone v1.3.0でリリース済み)
- Bucketを作成する際に指定するレイアウト(FSO、OBS、LEGACY)の説明
関連記事やブログ
-
パフォーマンス改善やベンチマーク
-
Ozone performance improvements. Author: Ritesh Shukla, Duong Nguyen… | by Ritesh H Shukla | Engineering@Cloudera | Jun, 2023 | Medium
- (Ozone v1.4.0の一部を含む)CDP v7.1.9の話。毎秒約105kのリードオペレーションをサポート。CDP v7.1.8と比較して、Ozone ManagerのIOPSが約7倍増加。
-
Ozone performance improvements. Author: Ritesh Shukla, Duong Nguyen… | by Ritesh H Shukla | Engineering@Cloudera | Jun, 2023 | Medium
-
Clouderaブログ
- Ozoneに10億ファイル - Cloudera株式会社 公式ブログ
- Apache Hadoop Ozone セキュリティ — 認証 - Cloudera株式会社 公式ブログ
- Ozoneのベンチマーク: ClouderaのCDP向け次世代ストレージ - Cloudera株式会社 公式ブログ
- Apache Hadoop Ozone: オブジェクトストアの概要 - Cloudera株式会社 公式ブログ
- Apache Hadoop Ozone — オブジェクトストアのアーキテクチャー - Cloudera株式会社 公式ブログ
- Apache Hadoop Ozone: Apache Hadoop 用のオブジェクトストアの紹介 - Cloudera株式会社 公式ブログ
- Multi-Raft: Apache Hadoop Ozoneの書き込みパフォーマンスを加速する - Cloudera株式会社 公式ブログ
-
Apache Ozone - A Multi-Protocol Aware Storage System - Cloudera Blog
- File System Optimized (FSO) と Object Store (OBS) の紹介・比較やどういったワークロードで使い分けると良いかの紹介
-
国内での情報
スライド
- Losing Data in a Safe Way – Advanced Replication Strategies in Apache Hadoop Ozone (Ozone自体の登場背景とかベースとなる仕組みに関して)
- 利用事例
動画アーカイブ
-
Future of Data Meetup: Apache Ozone User Group Summit - YouTube
-
Apache Ozone: Multi-Protocol Aware System Handles Both Files And Objects Efficiently - YouTube
-
Future of Data Meetup: Apache Ozone - Breaking the 10 billion object barrier - YouTube
-
Apache Ozone: A High Performance Object Store For Analytics Workloads - YouTube
関連イベント
ハンズオン環境構築するには
https://ozone.apache.org/downloads/ ページにあるBinaryにDocker ComposeやKubernetesのマニフェストが用意されている。READMEもあるので見るとわかる。
- Docker Composeの場合は、composeディレクトリ以下を参照。
- compose/ozoneにあるdocker-compose.yamlが単純な構成なので手始めには分かりやすい。
- HA構成のものもあるので色々見てみると参考になります。
- https://github.com/apache/ozone-docker/ に代表的な構成があるのでこっちも分かりやすい
- ozone-site.xmlに設定追加したい場合は、compose以下の各フォルダにdocker-configってファイルがあるのでそこに決まったフォーマットで入れるとOzone起動時にozone-site.xmlが生成されて利用される
- compose/ozoneにあるdocker-compose.yamlが単純な構成なので手始めには分かりやすい。
- Kubernetesの場合は、Kubernetesディレクトリ以下を参照。
-
Cloudera Data Platform の Apache Iceberg で、マルチクラウドのオープンレイクハウスを実装する - Cloudera株式会社 公式ブログの「CDP パブリッククラウドによるマルチクラウド展開」の項にある図参照 ↩