著者: Arpit Agarwal
本ブログ記事は「https://blog.cloudera.com/apache-hadoop-ozone-object-store-overview/」(2018/10/10投稿)の日本語翻訳記事です。また、原文の投稿はClouderaとHortonworks合併前に記述されたものであり、いくつかのリンク、リソースにはアクセスできない場合があります。
*訳注: 元記事公開時点では 0.2.1-alpha 版が最新でしたが、日本語翻訳時点(2020/3/9)では0.4.1-alpha版が公開されています。
1. 概要
この記事は、Ozoneに関するシリーズの2回目です。Ozoneは、小さなファイルと大きなファイルの両方を同じように管理できる分散キーバリューストアです。
前回の記事では 、Ozone の設計哲学を紹介しました。今回の記事は、Ozoneを試してみたいユーザーを対象としています。Ozoneの概念を紹介し、Ozoneクラスターを起動してOzoneコマンドシェルの使用方法を説明します。
2. Ozoneの概念
Ozoneは、ボリューム、バケット、およびキーで構成されています。
ボリューム[Volume]:ボリュームはアカウントに似ています。ボリュームは管理者のみが作成または削除できます。通常、管理者が、組織またはチームのボリュームを作成します。
バケット[Bucket]: ボリュームには任意の数(0個以上)のバケットを含めることができます。OzoneのバケットはAmazon S3のバケットに似ています。
キー[Key]: キーは特定のバケット内でユニークであり、Amazon S3のオブジェクトに似ています。キーの名前には任意の文字列を使用できます。値は、これらのキー内に保存するデータを表します。現時点では、Ozoneはキーのサイズに上限を設けていません。
3. Ozoneのインストール
3.1 バイナリの取得
- バイナリリリースをダウンロード — Ozoneのウェブサイト(https://hadoop.apache.org/ozone/)から最新のOzoneのリリースを取得します。
- ソースコードからビルド — 手順は下記をご覧ください。
https://cwiki.apache.org/confluence/display/HADOOP/Try+out+Ozone
3.2 クラスターのデプロイ
Ozoneクラスターをセットアップするにはいくつかの方法があります。
- Dockerでクラスターをデプロイ。手順は下記をご覧ください。
https://cwiki.apache.org/confluence/display/HADOOP/Try+out+Ozone#TryoutOzone-StartClusterUsingDocker - 単一ノードの開発クラスター
https://cwiki.apache.org/confluence/display/HADOOP/Try+out+Ozone#TryoutOzone-SingleNodeDevelopmentCluster - 複数ノードのOzoneクラスター
https://cwiki.apache.org/confluence/display/HADOOP/Try+out+Ozone#TryoutOzone-Multi-NodeOzoneCluster
4. Ozoneコマンドラインシェル
4.1 ボリューム、バケット、キーを扱う
アルファ版には以下のインターフェースが含まれています。
- REST & RPC API
- オブジェクトストアの操作を行うためのコマンドラインシェル
- OzoneFS — Hadoop互換ファイルシステムインターフェース
コマンドラインシェルを使用して、オブジェクトストアの操作を行ういくつかの例をみてみましょう。
4.1.1 ボリュームの作成
以下のコマンドは、aliceというユーザーが所有する videos という名前の新しいボリュームを作成します。新しいボリュームの作成は管理操作です。
$ ozone sh volume create --user=alice videos
2020-03-09 14:52:12 INFO RpcClient:263 - Creating Volume: videos, with alice as owner.
4.1.2 バケットの作成
以下のコマンドは、videosボリュームにvacationという名前の新しいバケットを作成します。
$ ozone sh bucket create videos/vacation
2020-03-09 14:54:27 INFO RpcClient:402 - Creating Bucket: videos/vacation, with Versioning false and Storage Type set to DISK and Encryption set to false
4.1.3 キーのアップロード
これは、ファイルをオブジェクトストアに「置く」ことと同等です。以下のコマンドは、ローカルファイル video-001.mp4 を、machu-picchu.mp4 という名前でOzoneのバケットにアップロードします。
$ ozone sh key put videos/vacation/machu-picchu.mp4 video-0001.mp4
4.1.4 バケットのキーの一覧
$ ozone sh key list videos/vacation
[ {
"version" : 0,
"md5hash" : null,
"createdOn" : "Mon, 09 Mar 2020 15:05:35 GMT",
"modifiedOn" : "Mon, 09 Mar 2020 15:05:39 GMT",
"size" : 18189,
"keyName" : "machu-picchu.mp4",
"type" : null
} ]
4.1.5 ボリュームのバケットの一覧
$ ozone sh bucket list videos
[ {
"volumeName" : "videos",
"bucketName" : "vacation",
"createdOn" : "Mon, 09 Mar 2020 15:05:18 GMT",
"acls" : null,
"versioning" : "DISABLED",
"storageType" : "DISK",
"encryptionKeyName" : "N/A"
} ]
4.1.6 ボリュームの一覧
$ ozone sh volume list
[ {
"owner" : {
"name" : "alice"
},
"quota" : {
"unit" : "TB",
"size" : 1048576
},
"volumeName" : "videos",
"createdOn" : "Mon, 09 Mar 2020 15:04:52 GMT",
"createdBy" : "alice"
} ]
5. さらに詳しく知るための情報
- Ozone web site — https://hadoop.apache.org/ozone/
- Ozone Command Line Interface
https://hadoop.apache.org/ozone/docs/0.4.1-alpha/shell.html
追記
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
謝辞
日本語版翻訳にあたり、Cloudera Japan の Daisuke Kobayashi氏のレビューに感謝します。