Big Data Cloud Compute Editionからの移行
Oracle Big Data Cloud Compute Edition (BDCEまたはBDC)からBig Data Serviceに移行する方法をご紹介します
移行は、いくつかのステップで行われます。Oracle Cloud Infrastructure ClassicのBDCまたはOracle Cloud InfrastructureのBDCから、アーティファクトをOCIビッグ・データ・サービスに移行できます。概要レベルでは、次のことを行います。
-
既存のクラウド・リソースをBDCからObject Storageにエクスポートします。
- エクスポートされたクラウド・リソースをオブジェクト・ストレージからビッグ・データ・サービスにインポートします
前提条件
- あなたはビッグ・データ・サービスのコンパートメントに対する有効なユーザーです
- 次の操作を実行できます。
- 資格証明を使用したOCIコンソールへのアクセス
- HDFSデータをコピーできるように、Oracle Object Storageにバケットを作成します。Oracleオブジェクト・ストレージの詳細は、オブジェクト・ストレージの概要を参照してください。
- OCIオブジェクト・ストア構成の確認
詳細は、ビッグ・データ・サービスのスタート・ガイドを参照してください。
- 次のOCIパラメータ値があります。
値 詳細 テナントID テナンシのOCID。たとえば、 ocid1.tenancy.oc1..aaaaaaaa5syd62crbj5xpfajpmopoqasxy7jwxk6ihopm5vk6bxkncyp56kcです。詳細は、テナンシのOCIDおよびユーザーのOCIDの取得場所を参照してくださいユーザーID ユーザーのOCID たとえば、 ocid1.user.oc1..aaaaaaaa3pnl7qz4c2x2mpq4v4g2mp3wktxoyahwysmjrapgzjoyd3edxltpです。詳細は、テナンシのOCIDおよびユーザーのOCIDの取得場所を参照してくださいAPI署名キー アプリケーション・ユーザーに必要です。たとえば、 03:8c:ef:51:c8:fe:6b:22:0c:5d:3c:43:a8:ff:58:d9です。API署名キーの生成およびアップロードの詳細は、次のトピックを参照してください:署名キーのパスフレーズ(オプション) パスフレーズでキー・ペアを生成した場合は必須です。 署名キーのフィンガープリント API署名キーの生成およびアップロード中に、署名キーの指紋およびパスフレーズが作成されます。詳細は、キーのフィンガープリントの取得方法を参照してください。 バケットおよびテナンシ名 たとえば、oci://myBucket@myTenancy/ バケットの詳細は、オブジェクト・ストレージへのデータの格納を参照してください。
OCIクラウド・ストレージURL ホスト名例、 https://objectstorage.us-phoenix-1.oraclecloud.com. 詳細は、クラスタの作成を参照してください。
リソースのエクスポート
| BDCのアーティファクト | エクスポートされたアーティファクト | OCIビッグ・データ・サービス(BDS)のアーティファクト |
|---|---|---|
| HDFS内のデータ |
OCIオブジェクト・ストア( たとえば: |
エクスポートしたデータをOCIオブジェクト・ストアからターゲットBDS HDFSディレクトリにコピーします。 |
|
OCI-Classicオブジェクト・ストアのデータ ノート: このアーティファクトは、Oracle Cloud Infrastructure上のOracle Big Data Cloudには適用されません。 |
OCIオブジェクト・ストア( たとえば: |
|
| Hiveメタデータ | BDCクラスタでHive DDL文を生成します。 | Hive DDL文をBDCクラスタからBDSクラスタにコピーし、実行します。 |
| Zeppelinノートブック | Zeppelinノートブック定義をHDFSの /user/zeppelin/notebookから.tar.gzファイルとしてエクスポートします。これは、Oracleが提供するスクリプトを使用して行われます。 |
現在、BDSではZeppelinノートブックのインポートはサポートされていません。 |
| HDFS、YARN、Spark構成ファイル | Oracleが提供するユーティリティ・スクリプトを使用して、構成ファイルを.tar.gzファイルとしてエクスポートします。 |
BDSではHDFS、YARNおよびSparkの構成設定が最適化されているため、BDCから構成ファイルおよびバージョンをインポートする必要はありません。 |
| 様々なオープン・ソース・コンポーネントのバージョン | Ambari REST APIを使用してサービス・バージョンの詳細をエクスポートします。お客様は、Ambari (Admin -> Stack and Versions)からバージョンの詳細を取得することもできます。 |
WANdisco LiveData Migratorを使用したリソースの移行
宛先でポート8020が開いていることを確認します。
WANdisco LiveData Migratorの詳細は、ここを選択してください。
WANdisco LiveData Migratorを使用してリソースを移行するには、次のステップに従います。
Distcpツールを使用したリソースの移行
Big Data Cloud Compute Editionからデータおよびメタデータを移行し、Distcpツールを使用してビッグ・データ・サービスにインポートすることもできます。Distcpは、クラスタ内およびクラスタ間の分散ファイル・システム間で大規模なデータ・セットをコピーするために使用できるオープン・ソース・ツールです。
エクスポート用にBDCクラスタを準備する方法を確認します。
HDFSからデータをエクスポートするには、次のステップを実行します。
Hiveメタデータをエクスポートするには、次のステップを実行します。
ソース・クラスタからサービス構成をエクスポートし、ソース・クラスタで使用されるカスタム構成変更の宛先クラスタの参照として使用できます。
zepplinノートブック、サービス構成およびバージョンをエクスポートするには、次のステップに従います。
-
Hive、ZeppelinおよびSparkサービスを停止します。
-
エクスポート・スクリプトを実行する準備をします。
-
エクスポート・スクリプトを実行します。
-
Hive、ZeppelinおよびSparkサービスを起動します。
Sparkで最新のAPIを使用するには、コードを確認および更新する必要があります。SparkおよびHiveでは、BDSで異なるカタログが使用されます。Hiveから表にアクセスするには、カタログを更新する必要があります。
<property>
<name>metastore.catalog.default</name>
<value>hive</value>
</property>ビッグ・データ・サービスでは、デフォルトでHiveによってACID表が作成されます。SparkはACID表では動作しません。HiveおよびSparkにアクセスするには、外部表を作成する必要があります。
BDCでexportBDC.pyで作成された構成ファイルを、ビッグ・データ・サービスのカスタム構成変更のスパーク構成ファイルと比較します。
次に、エクスポートされたデータとメタデータをビッグ・データ・サービスにインポートします。
- ソース・クラスタと同じBDC Hadoopバージョン(Hadoop 2.7.x)のビッグ・データ・サービスで新しいターゲット環境を設定します。ノート
:-
- ソースBDCクラスタと同じサイズのOCIでビッグ・データ・サービス・クラスタを定義します。ただし、ターゲット・クラスタのサイズを決定する前に、コンピューティングおよびストレージのニーズを確認する必要があります。
- Oracle Cloud Infrastructure VMシェイプについては、コンピュート・シェイプを参照してください。BDCはすべてのシェイプをサポートしていません。
- BDCスタック以外のソフトウェアがブートストラップ・スクリプトまたはその他の方法を使用してソース・システムにインストールされている場合は、そのソフトウェアもターゲット・システムにインストールおよび保守する必要があります。
-
- PEM秘密キー(
oci_api_key.pem)ファイルをビッグ・データ・サービス・クラスタのすべてのノードにコピーし、適切な権限を設定します。 - ソースBDCクラスタからアーティファクトをエクスポートします。詳細は、Oracle Big Data Cloudからのデータおよびメタデータのエクスポートを参照してください。
HDFSにデータをインポートするには、これらのステップに従います:
メタデータ・ファイルをインポートし、権限を実行します。
- メタデータ・ファイルをオブジェクト・ストアからHDFSの
/metadataにインポートします。hadoop distcp -libjars ${LIBJARS} \ -Dfs.client.socket-timeout=3000000 -Dfs.oci.client.auth.fingerprint=<fingerprint> \ -Dfs.oci.client.auth.pemfilepath=<oci_pem_key> \ -Dfs.oci.client.auth.passphrase=<passphrase> \ -Dfs.oci.client.auth.tenantId=<OCID for Tenancy> \ -Dfs.oci.client.auth.userId=<OCID for User> \ -Dfs.oci.client.hostname=<HostName. Example: https://objectstorage.us-phoenix-1.oraclecloud.com/> \ -Dfs.oci.client.multipart.allowed=true \ -Dfs.oci.client.proxy.uri=<http://proxy-host>:port \ -Dmapreduce.map.java.opts="$DISTCP_PROXY_OPTS" \ -Dmapreduce.reduce.java.opts="$DISTCP_PROXY_OPTS" \ -Dmapreduce.task.timeout=6000000 \ -skipcrccheck -m 40 -bandwidth 500 \ -update -strategy dynamic -i oci://<bucket>@<tenancy>/metadata/ /metadata - ファイルをローカル・ディレクトリに移動します。
hdfs dfs -get /metadata/Metadata* - バックグラウンドまたは複数の端末でファイルをパラレルに実行します。
bash Metadataaa & bash Metadataab & bash Metadataac &...
メタデータをインポートするには、次のステップを実行します。
次を実行します:
移行の検証
- hiveシェルに接続します。
hive - 次のコマンドを実行して、表をリストします:
show tables; - 次のコマンドを実行して、表を問い合せます。
SELECT * FROM airports LIMIT 10; - 次のコマンドを実行して、HDFSおよびオブジェクト・ストア・データを検証します。
hadoop fs -du -s /tmp/hivemigrate - 関連するすべてのジョブを送信し、予想される結果を取得して、クラスタのヘルスを確認します。BDCで実行したジョブを選択し、BDSクラスタで実行します。ノート
ジョブの正常な実行は、データの場所のみでなく、HADOOP_CLASS_PATHなどの構成設定、クライアントjarの場所などにも依存します。