tencent cloud

Cloud Object Storage

メタデータアクセラレーションバケットのマウント

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-12-22 16:16:39
メタデータ高速化機能を有効にすると、COSはメタデータアクセラレーションバケット用のマウントポイントを生成します。HDFSクライアントをダウンロードし、バケット情報を入力することで、メタデータアクセラレーションバケットをマウントできます。本記事では、計算クラスタにメタデータアクセラレーションを有効にしたバケットをマウントし、HDFS経由でのアクセスを実現する方法について詳しく説明します。

クライアントの概要

HDFSを使用してCOSにアクセスするには、Hadoopクライアント(HDFSセマンティクスの実装用)およびCOS APIクライアント(COSバケットへのアクセス用)この2つのクライアントが必要です。メタデータアクセラレーションバケットは、Hadoop-COS(COSNをschemeとして使用、別名COSNクライアント)およびchdfs-hadoop-plugin(OFSをschemeとして使用、別名OFSクライアント)の2種類のHadoopクライアントと互換性があります。
COSNクライアントを使用する場合、まずHEAD Bucketリクエストを行ってバケットタイプがメタデータアクセラレーションバケットであるかを判断し、その後のリクエストをOFSクライアントに転送して処理します。そのため、通常のCOSバケットとの互換性が必須であるシナリオ以外では、よりネイティブな操作性を得るためにOFSクライアントの使用を推奨します。

説明:
通常のCOSバケットでのCOSNの使用方法については、Hadoopツールの説明をご参照ください。

環境要件

各クライアントに必要な環境の説明は以下の通りです。
OFSクライアントの場合
COSNクライアントの場合
OFSクライアントを使用する場合は、chdfs hadoop jarパッケージをダウンロードするだけで済みます。
ダウンロードURL:chdfs-hadoop-plugin
バージョン要件:バージョン2.7以上
説明:
OFSクライアントはCOS APIクライアントを自動的に取得するため、別途インストールは不要です。マウント後、fs.ofs.tmp.cache.dirで設定したディレクトリにて、対応するJARパッケージおよびバージョンを確認できます。
COSNクライアントを使用する場合は、Hadoop-COS (COSN) jarパッケージ、chdfs-hadoop-plugin (OFS) jarパッケージ、cos_api-bundle jarパッケージをダウンロードする必要があります。
Hadoop-COS(COSN)
ダウンロードURL:COSN(hadoop-cos)
バージョン要件:バージョン8.1.5以上
chdfs-hadoop-plugin(OFS)
ダウンロードURL:chdfs-hadoop-plugin
バージョン要件:バージョン2.7以上
cos_api-bundle
ダウンロードURL:cos_api-bundle
バージョン要件:COSNのバージョンと対応している必要があります。COSN github releasesを確認してください。

Tencent Cloud EMR環境へのマウント

Elastic MapReduce (EMR)は、クラウドネイティブ技術およびHadoopエコシステムのオープンソース技術に基づいた、安全かつ低コストで高信頼性のオープンソースビッグデータプラットフォームであり、メタデータアクセラレーションバケットとシームレスに統合されています。

前提条件

メタデータアクセラレーションバケットが作成され、HDFSプロトコルが有効化されており、かつ計算クラスタが存在するVPCネットワークアドレスに関連付けられていること。具体的な操作については、メタデータアクセラレーションバケットの作成とHDFSプロトコルの有効化をご参照ください。
同リージョンにEMRクラスタが作成されており、ネットワークが相互接続されていること。具体的な操作については、EMRクイックスタートをご参照ください。
EMR temrfsクライアントにはすでにCOSNおよびapi bundleが統合されていますが、CHDFSクライアントをダウンロードする必要があります。ダウンロードURL:chdfs-hadoop-plugin

操作手順

1. 作成済みのEMR環境にログインし、そのマシン上で以下のコマンドを実行して、EMR環境下のJARパッケージのバージョンが環境要件を満たしているか確認します。
find / -name "chdfs*"
find / -name "temrfs_hadoop*"
検索結果を確認し、環境内にtemrfs_hadoop_pluginchdfs_hadoop_pluginの2つのjarパッケージが存在し、かつchdfs_hadoop_pluginのバージョンが2.7以上であることを確認してください。





2. (オプション)chdfs_hadoop_pluginのバージョンを更新する必要がある場合は、以下の操作を行ってください。
2.1 更新用jarパッケージのスクリプトファイルをダウンロードします。ダウンロードURLは以下の通りです。
2.2 上記の2つのスクリプトファイルをサーバーの /root ディレクトリに配置し、update_cos_jar.shに実行権限を付与してから、以下のコマンドを実行します。
注意:
URLパラメータは対応するリージョンのバケットに置き換えてください。例えば広州リージョンの場合、https://hadoop-jar-guangzhou-1259378398.cos.ap-guangzhou.myqcloud.com/hadoop_plugin_network/2.7に置き換えます。
sh update_cos_jar.sh https://hadoop-jar-beijing-1259378398.cos.ap-beijing.myqcloud.com/hadoop_plugin_network/2.7
2.3 各EMRノード上で上記の手順を順次実行し、マシン上のjarパッケージがすべて置換されるまで行います。
3. (オプション)hadoop-cosパッケージまたはcos_api-bundleバージョンを更新する必要がある場合は、EMR更新ガイドをご参照ください。
4. EMRコンソールでcore-site.xmlを設定し、設定項目fs.cosn.bucket.regionを新規追加します。fs.cosn.trsf.fs.ofs.bucket.regionは、バケットが存在するCOSリージョンを指定するために使用します(例:ap-shanghai)。
注意:
fs.cosn.bucket.regionおよびfs.cosn.trsf.fs.ofs.bucket.regionは、必須設定項目であり、バケットが存在するCOSリージョンを指定するために使用します(例:ap-shanghai)。バケットに対応するリージョンの取得については、COSリージョン説明ドキュメントをご参照ください。
5. Yarn、Hive、Presto、Impalaなどの常駐サービスを再起動し、core-site.xmlをすべてのHadoopノードに同期させます。
6. マウント検証。
hadoop fsコマンドラインツールを使用し、hadoop fs -ls cosn://${bucketname-appid}/コマンド(bucketname-appidは、マウントポイント、すなわちバケット名)を実行します。ファイルリストが正常に表示されれば、COSバケットをマウントしました。



独自構築したHadoop/CDH等の環境へのマウント

前提条件

メタデータアクセラレーションバケットが作成され、HDFSプロトコルが有効化されており、かつ計算クラスタが存在するVPCネットワークアドレスに関連付けられていること。具体的な操作については、メタデータアクセラレーションバケットの作成とHDFSプロトコルの有効化をご参照ください。
計算クラスタ内でマウントが必要なマシンまたはコンテナに、Java 1.8 または Java 11がインストールされていること。
環境要件にあるバージョン要件を満たすパッケージをダウンロード済みであること。

操作手順

1. 環境要件に含まれるインストールパッケージを、Hadoopクラスタ内の各サーバーのclasspathパス配下に正しく配置してください。
説明:
パスの参考:/usr/local/service/hadoop/share/hadoop/common/lib/。実際の状況に応じて配置してください。コンポーネントによって配置場所が異なる場合があります。
2. hadoop-env.shファイルを修正します。$HADOOP_HOME/etc/hadoopディレクトリに移動し、hadoop-env.shファイルを編集して以下の内容を追加し、cosn関連のjarパッケージをHadoop環境変数に追加します。
for f in $HADOOP_HOME/share/hadoop/tools/lib/*.jar; do
if [ -n "$HADOOP_CLASSPATH" ]; then
HADOOP_CLASSPATH="$HADOOP_CLASSPATH:$f"
else
HADOOP_CLASSPATH="$f"
fi
done

export HADOOP_CLASSPATH
3. 計算クラスタのcore-site.xmlを設定し、以下の必須設定を追加します。
OFSクライアントの場合
COSNクライアントの場合
OFSクライアントの必須設定項目は以下の通りです。
設定項目
設定内容
説明
fs.AbstractFileSystem.ofs.impl
com.qcloud.chdfs.fs.CHDFSDelegateFSAdapter
メタデータバケットアクセス実装クラス
fs.ofs.impl
com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapter
メタデータバケットアクセス実装クラス
fs.ofs.tmp.cache.dir
形式例:/data/emr/hdfs/tmp/posix-cosn/
実在するローカルディレクトリを設定してください。実行中に生成される一時ファイルは一時的にここに保存されます。また、各ノードのこのディレクトリには十分な容量と権限を設定することをお勧めします。例:/data/emr/hdfs/tmp/posix-cosn/
fs.ofs.user.appid
形式例:12500000000
必須。ユーザーappid
fs.ofs.bucket.region
形式例:ap-beijing
必須。ユーザーバケットに対応するregion

core-site.xml 設定参考例:
<!--ofs の実装クラス-->
<property>
<name>fs.AbstractFileSystem.ofs.impl</name>
<value>com.qcloud.chdfs.fs.CHDFSDelegateFSAdapter</value>
</property>

<!--ofs の実装クラス-->
<property>
<name>fs.ofs.impl</name>
<value>com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapter</value>
</property>

<!--ローカルキャッシュ用の一時ディレクトリ。データの読み書きにおいて、メモリキャッシュが不足した場合にcacheをローカルディスクへ書き込まれます。パスが存在しない場合は自動作成されます-->
<property>
<name>fs.ofs.tmp.cache.dir</name>
<value>/data/chdfs_tmp_cache</value>
</property>

<!--ユーザーAppID。Tencent Cloudコンソール(https://console.tencentcloud.com/developer)にログインして確認できます-->
<property>
<name>fs.ofs.user.appid</name>
<value>1250000000</value>
</property>

<!--ユーザーバケットのリージョン情報。形式例:ap-guangzhou-->
<property>
<name>fs.ofs.bucket.region</name>
<value>ap-guangzhou</value>
</property>
クライアントの概要によると、COSNクライアントを使用する場合、まずHEAD Bucketリクエストを行ってバケットタイプがメタデータアクセラレーションバケットであるかを判断し、その後のリクエストをCHDFS OFSクライアントに転送して処理します。そのため、設定項目は以下の2つの部分を含みます。
COSN設定項目:HEAD Bucketリクエストを発行するために使用されます。必須設定項目は以下の通りです。
注意:
業務のセキュリティ向上のため、設定には永続キーの使用を避け、サブアカウントキーまたは一時キーの設定をお勧めします。サブアカウントに権限を付与する際は、予期しないデータ漏洩を防ぐため、最小権限の原則に従ってください。
どうしても永続キーを使用する必要がある場合は、永続キーの権限範囲を制限することをお勧めします。最小権限の原則を参考に、永続キーの実行可能な操作、リソース範囲、および条件(アクセスIPなど)を制限することで、使用時のセキュリティを向上させてください。
設定項目
設定内容
説明
fs.cosn.userinfo.secretId/secretKey
形式例:************************************
アカウントのAPIキー情報を入力します。CAMコンソールにログインしてクラウドAPIキーを確認できます。
fs.cosn.impl
org.apache.hadoop.fs.CosFileSystem
cosnのFileSystemに対する実装クラス。org.apache.hadoop.fs.CosFileSystemに固定されています。
fs.AbstractFileSystem.cosn.impl
org.apache.hadoop.fs.CosN
cosnのAbstractFileSystemに対する実装クラス。org.apache.hadoop.fs.CosNに固定されています。
fs.cosn.bucket.region
形式例:ap-beijing
アクセスするバケットのリージョン情報を入力してください。列挙値についてはリージョンとアクセスドメインのリージョン略称(例:ap-beijing、ap-guangzhouなど)をご参照ください。既存の設定 fs.cosn.userinfo.regionと互換性があります。
fs.cosn.tmp.dir
デフォルト/tmp/hadoop_cos
実在するローカルディレクトリを設定してください。実行中に生成される一時ファイルは一時的にここに保存されます。また、各ノードのこのディレクトリには十分な容量と権限を設定することをお勧めします。
OFS設定項目:転送後のリクエストを処理するために使用されます。COSN設定項目にtrsf.fs.ofsを追加することで、設定項目のマッピングを実現します。必須設定項目は以下の通りです。
設定項目
設定内容
説明
fs.cosn.trsf.fs.AbstractFileSystem.ofs.impl
com.qcloud.chdfs.fs.CHDFSDelegateFSAdapter
メタデータバケットアクセス実装クラス
fs.cosn.trsf.fs.ofs.impl
com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapter
メタデータバケットアクセス実装クラス
fs.cosn.trsf.fs.ofs.tmp.cache.dir
形式例:/data/emr/hdfs/tmp/posix-cosn/
実在するローカルディレクトリを設定してください。実行中に生成される一時ファイルは一時的にここに保存されます。また、各ノードのこのディレクトリには十分な容量と権限を設定することをお勧めします。例:/data/emr/hdfs/tmp/posix-cosn/
fs.cosn.trsf.fs.ofs.user.appid
形式例:12500000000
必須。ユーザーappid
fs.cosn.trsf.fs.ofs.bucket.region
形式例:ap-beijing
必須。ユーザーバケットに対応するregion
core-site.xml 設定参考例:
<!--アカウントのAPIキー情報。[CAMコンソール](https://console.tencentcloud.com/capi) にログインしてクラウドAPIキーを確認できます。-->
<!--設定のセキュリティを向上させるため、サブアカウントキーまたは一時キーを使用することをお勧めします。サブアカウントへの権限付与の際は、[最小権限の原則](https://www.tencentcloud.com/document/product/436/32972)に従ってください。-->
<property>
<name>fs.cosn.userinfo.secretId/secretKey</name>
<value>************************************</value>
</property>

<!--cosn の実装クラス-->
<property>
<name>fs.AbstractFileSystem.cosn.impl</name>
<value>org.apache.hadoop.fs.CosN</value>
</property>

<!--cosn の実装クラス-->
<property>
<name>fs.cosn.impl</name>
<value>org.apache.hadoop.fs.CosFileSystem</value>
</property>

<!--ユーザーバケットのリージョン情報。形式例:ap-guangzhou-->
<property>
<name>fs.cosn.bucket.region</name>
<value>ap-guangzhou</value>
</property>

<!--ローカル一時ディレクトリ。実行中に生成される一時ファイルの保存に使用されます。-->
<property>
<name>fs.cosn.tmp.dir</name>
<value>/tmp/hadoop_cos</value>
</property>

<!--ofs の実装クラス-->
<property>
<name>fs.cosn.trsf.fs.AbstractFileSystem.ofs.impl</name>
<value>com.qcloud.chdfs.fs.CHDFSDelegateFSAdapter</value>
</property>

<!--ofs の実装クラス-->
<property>
<name>fs.cosn.trsf.fs.ofs.impl</name>
<value>com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapter</value>
</property>

<!--ローカルキャッシュ用の一時ディレクトリ。データの読み書きにおいて、メモリキャッシュが不足した場合にcacheをローカルディスクへ書き込まれます。パスが存在しない場合は自動作成されます-->
<property>
<name>fs.cosn.trsf.fs.ofs.tmp.cache.dir</name>
<value>/data/chdfs_tmp_cache</value>
</property>

<!--ユーザーAppID。Tencent Cloudコンソール(https://console.tencentcloud.com/developer)にログインして確認できます-->
<property>
<name>fs.cosn.trsf.fs.ofs.user.appid</name>
<value>1250000000</value>
</property>

<!--ユーザーバケットのリージョン情報。形式例:ap-guangzhou-->
<property>
<name>fs.cosn.trsf.fs.ofs.bucket.region</name>
<value>ap-guangzhou</value>
</property>
4. マウント検証。
hadoop fsコマンドラインツールを使用し、hadoop fs -ls cosn://${bucketname-appid}/コマンド(bucketname-appidは、マウントポイント、すなわちバケット名)を実行します。ファイルリストが正常に表示されれば、COSバケットをマウントしました。


説明:
Yarn、Hive、Trino(Presto)、Impalaなどの常駐サービスコンポーネントについては、EMRコンソールでコンポーネントを再起動し、設定をロードする必要があります。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック