SmartData 3.1.x 以降では、Jindo HDFS クライアントレベルでのパスの書き換えがサポートされており、クラスター移行時のパス変更が簡素化されます。例えば、HDFS パスを OSS パスに書き換えることで、アプリケーションのデータパスを変更することなく、OSS に移行したデータにアクセスできます。
制限事項
この機能は Hadoop 2.x ではサポートされていますが、Hadoop 3.x ではサポートされていません。
パス書き換えの有効化
- SmartData サービスに移動します。
- EMR コンソールにログインします。
- 上部のナビゲーションバーで、必要に応じてリージョンとリソースグループを選択します。
- Clusters タブをクリックします。
- Clusters ページで、対象のクラスターを見つけ、[操作] 列の Details をクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。
- EMR コンソールにログインします。
- Configure タブをクリックします。
- Service Configuration セクションで、[smartdata-site] タブをクリックします。
- Service Configuration セクションの右上隅にある Custom Configuration をクリックします。
- Add Configuration Item ダイアログボックスで設定項目を追加し、[キー] を
fs.hdfs.implに、[値] をcom.aliyun.emr.fs.hdfs.JindoHdfsShimsFileSystemに設定します。 - OK をクリックします。
- 設定を保存します。
- 右上隅にある Save をクリックします。
- 変更する ダイアログボックスで、説明フィールドに理由を入力し、[設定の自動更新] を有効にします。
- OK をクリックします。
パス書き換えの設定
- SmartData サービスに移動します。
- EMR コンソールにログインします。
- 上部のナビゲーションバーで、必要に応じてリージョンとリソースグループを選択します。
- Clusters タブをクリックします。
- Clusters ページで、対象のクラスターを見つけ、[操作] 列の Details をクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。
- EMR コンソールにログインします。
- Configure タブをクリックします。
- Service Configuration セクションで、[smartdata-site] タブをクリックします。
- Service Configuration セクションの右上隅にある Custom Configuration をクリックします。
- Add Configuration Item ダイアログボックスで、次の 2 つの設定項目を追加します。
パラメーター 説明 値 fs.jindo.shim.path-rewrite.<RULE-NAME>.source書き換え元のソースパス。このパスはマウントポイントとして機能します。 - HA クラスター
hdfs://emr-cluster/<osspath> - 非 HA クラスター
hdfs://<your_hostname>:9000/<osspath>説明 ホスト名を取得するには、SSH を使用してマスターノードにログインし、hostnameコマンドを実行します。詳細については、「クラスターへのログイン」をご参照ください。
fs.jindo.shim.path-rewrite.<RULE-NAME>.target書き換え後の宛先パス。 oss://<your_bucket>/<testpath><RULE-NAME>はカスタマイズする必要があります。 - HA クラスター
- OK をクリックします。
- 設定を保存します。
- 右上隅にある Save をクリックします。
- 変更する ダイアログボックスで、説明フィールドに理由を入力し、[設定の自動更新] を有効にします。
- OK をクリックします。
例
HA クラスターの場合、[smartdata-site] タブで次のパラメーターを追加すると、
hdfs://emr-cluster/osspath へのリクエストは oss://jindo-bucket/<testpath> に書き換えられます。| パラメーター | 値 |
fs.jindo.shim.path-rewrite.testrule.source |
hdfs://emr-cluster/osspath |
fs.jindo.shim.path-rewrite.testrule.target |
oss://jindo-bucket/<testpath> |
SSH を使用してクラスターのマスターノードにログインし、次のコマンドを実行して設定を検証します:
hadoop fs -ls /
次の出力は、
osspath
がルートディレクトリにマウントされていることを示しています。 [root@emr-header-1 ~]# hadoop fs -ls /
Found 7 items
drwxr-xr-x - hadoop hadoop 0 2020-11-24 21:12 /apps
drwxrwxrwx - flowagent hadoop 0 2020-11-24 21:11 /emr-flow
drwxr-x--x - root hadoop 0 2020-11-24 21:12 /emr-sparksql-udf
drwxrwxrwx - 0 2020-11-25 16:55 /osspath
drwxr-x-x - hadoop hadoop 0 2020-11-25 16:56 /spark-history
drwxrwxrwx - root hadoop 0 2020-11-25 16:55 /tmp
drwxr-x--t - hadoop hadoop 0 2020-11-24 21:14 /user