OSS-HDFSが有効になっているバケットで、オブジェクトのアップロード、オブジェクトのダウンロード、オブジェクトの削除などの操作をCLIを使用して実行する場合は、Hadoop Shellコマンドを使用できます。
環境の準備
- E-MapReduce (EMR) 環境では、JindoSDKはデフォルトでインストールされ、直接使用できます。 説明 OSS-HDFSにアクセスするには、EMR 3.44.0以降、またはEMR 5.10.0以降のクラスターを作成します。
- EMR以外の環境では、まずJindoSDKをインストールします。 詳細については、「EMR以外の環境にJindoSDKをデプロイする」をご参照ください。 説明 OSS-HDFSにアクセスするには、JindoSDK 4.6.x以降をデプロイします。
コマンドと例
次のセクションでは、Hadoop Shellコマンドを使用してOSS-HDFSにアクセスする方法の例を示します。
- オブジェクトのアップロード
次のコマンドを実行して、ローカルルートディレクトリにあるexamplefile.txtという名前のファイルをexamplebucketという名前のバケットにアップロードします。
hdfs dfs -put examplefile.txt oss:// examplebucket.cn-shanghai.oss-dls.aliyuncs.com/
- ディレクトリの作成
次のコマンドを実行して、examplebucketという名前のバケットにdir/ という名前のディレクトリを作成します。
hdfs dfs -mkdir oss:// examplebucket.cn-shanghai.oss-dls.aliyuncs.com/dir/
- オブジェクトまたはディレクトリの照会
次のコマンドを実行して、examplebucketという名前のバケット内のオブジェクトまたはディレクトリを照会します。
hdfs dfs -ls oss:// examplebucket.cn-shanghai.oss-dls.aliyuncs.com/
- オブジェクトまたはディレクトリのサイズを照会する
次のコマンドを実行して、examplebucketという名前のバケット内のすべてのオブジェクトまたはディレクトリのサイズを照会します。
hdfs dfs -du oss:// examplebucket.cn-shanghai.oss-dls.aliyuncs.com/
- オブジェクトコンテンツの照会
次のコマンドを実行して、examplebucketという名前のバケット内のlocalfile.txtという名前のオブジェクトのコンテンツを照会します。
hdfs dfs -cat oss:// examplebucket.cn-shanghai.oss-dls.aliyuncs.com/localfile.txt
重要 照会されたオブジェクトのコンテンツは、プレーンテキストで画面に表示されます。 コンテンツがエンコードされている場合は、HDFS API for Javaを使用してコンテンツを読み取り、デコードします。 - オブジェクトまたはディレクトリのコピー
次のコマンドを実行して、subdir1という名前のルートディレクトリを、examplebucketという名前のバケット内のsubdir2という名前のディレクトリにコピーします。 さらに、subdir1ルートディレクトリの位置、subdir1ルートディレクトリ内のオブジェクト、およびsubdir1ルートディレクトリ内のサブディレクトリの構造および内容は変更されない。
hdfs dfs -cp oss:// examplebucket.cn-shanghai.oss-dls.aliyuncs.com/subdir1 oss:// examplebucket.cn-shanghai.oss-dls.aliyuncs.com/subdir2/subdir1
- オブジェクトまたはディレクトリの移動
次のコマンドを実行して、examplebucketという名前のバケット内のsrcdirという名前のルートディレクトリと、ルートディレクトリ内のオブジェクトおよびサブディレクトリをdestdirという名前の別のルートディレクトリに移動します。
hdfs dfs -mv oss:// examplebucket.cn-shanghai.oss-dls.aliyuncs.com/srcdir oss:// examplebucket.cn-shanghai.oss-dls.aliyuncs.com/destdir
- オブジェクトのダウンロード
次のコマンドを実行して、exampleobject.txtという名前のオブジェクトを、examplebucketという名前のバケットからコンピュータのルートディレクトリにある /tmpという名前のディレクトリにダウンロードします。
hdfs dfs -get oss:// examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampleobject.txt /tmp/
- ディレクトリまたはオブジェクトの削除
次のコマンドを実行して、destfolder/ という名前のディレクトリとそのディレクトリ内のすべてのオブジェクトをexamplebucketという名前のバケットから削除します。
hdfs dfs -rm oss:// examplebucket.cn-shanghai.oss-dls.aliyuncs.com/destfolder/