新しいクラスタへのBDDのリストア

bdd-adminスクリプトを使用して、データのみのリストアを実行し、BDDのすべてのデータおよびメタデータをリストアできます。この方法では構成情報が除外されるため、現在のクラスタを新しいクラスタにリストアするために使用できます。

データのみのリストアでは、次のデータがターゲット・クラスタにリストアされます。
  • Dgraphデータベース
  • Studioおよびワークフロー・マネージャ・サービスによって使用されるデータベース
  • bdd.confHDFS_DP_USER_DIRによって定義されている場所のユーザー・サンドボックス・データ
  • $HDFS_DP_USER_DIR/edp/data/.collectionDataのHDFSサンプル・データ

データのみのリストアは、次に示す条件を満たすすべてのクラスタで実行できます。バックアップされた元のクラスタと異なるクラスタにリストアでき、元のクラスタと異なるトポロジであってもかまいません。たとえば、次に示す条件を満たしていれば、8ノードのクラスタのバックアップを新しい6ノードのクラスタにリストアできます。

リストアする前に、次の事項を確認してください。
  • bdd-adminスクリプトには、すべてのコンポーネント・データベースのユーザー名とパスワードを設定できます。実行時にこの情報を入力するか、次の環境変数に設定できます。HDPを所有している場合は、Ambariのユーザー名とパスワードも入力する必要があります。
    • BDD_STUDIO_JDBC_USERNAME: Studioデータベースのユーザー名
    • BDD_STUDIO_JDBC_PASSWORD: Studioデータベースのパスワード
    • BDD_WORKFLOW_MANAGER_JDBC_USERNAME: ワークフロー・マネージャ・サービス・データベースのユーザー名
    • BDD_WORKFLOW_MANAGER_JDBC_PASSWORD: ワークフロー・マネージャ・サービス・データベースのパスワード
    • BDD_HADOOP_UI_USERNAME: Ambariのユーザー名(HDPのみ)
    • BDD_HADOOP_UI_PASSWORD: Ambariのパスワード(HDPのみ)
  • ソース・クラスタとターゲット・クラスタの両方が、同じマイナー・バージョンのBDDを所有している(たとえば、1.4.0.37.xxxx)。
  • 両方のクラスタのデータベース・タイプが同じである(OracleまたはMySQL)。Hypersonicはサポートされません。
  • データベース・クライアントは、管理サーバーにインストールされています。MySQLデータベースの場合、これはMySQLクライアントになります。Oracle Databaseの場合、これはOracle Database Clientであり、管理者タイプでインストールする必要があります。インスタント・クライアントはサポートされません。
  • Oracleデータベースの場合、ORACLE_HOME環境変数は、sqlplus実行可能ファイルがある/binディレクトリより1つ上のディレクトリに設定する必要があります。たとえば、sqlplus実行可能ファイルが/u01/app/oracle/product/11/2/0/dbhome/binにある場合、ORACLE_HOME/u01/app/oracle/product/11/2/0/dbhomeに設定されます。
  • MySQLデータベースの場合、両方のクラスタでlower_case_table_namesシステム変数の値が同じである。同じではない場合は、現在のクラスタでそれに応じて値を変更します。そうしないと、リストアが失敗します。詳細は、MySQLデータベースのリストアのトラブルシューティングを参照してください。
  • リストア操作時に使用される一時ディレクトリは十分な空き容量を含みます。詳細は、記憶域の要件を参照してください。

新しいクラスタにBDDをリストアするには:

  1. ソース・クラスタの管理サーバー上で、$BDD_HOME/BDD_manager/binに移動し、BDDを停止します。
    ./bdd-admin.sh stop [-t <minutes>]
  2. ソース・クラスタをバックアップします。
    ./bdd-admin.sh backup -o -v <file>
    ここで、<file>はバックアップTARファイルの絶対パスです。このファイルは存在してはならず、その親ディレクトリは書込み可能である必要があります。
    バックアップが完了したら、オプションでソース・クラスタを再起動できます。
  3. 使用するバックアップ・ファイルをターゲット・クラスタにコピーします。
    この情報は実行時に指定するため、指定する場所は任意です。
  4. ターゲット・クラスタの管理サーバーで、$BDD_HOME/BDD_manager/binに移動します。
  5. クラスタが実行されている場合は停止します。
    ./bdd-admin.sh stop [-t <minutes>]
  6. オプションで、ターゲット・クラスタのバックアップを作成します。
  7. ソース・クラスタのバックアップをターゲット・クラスタにリストアします。
    ./bdd-admin.sh restore <file>
    ここで、<file>はソース・クラスタのバックアップTARファイルの絶対パスです。
  8. プロンプトが表示されたら、コンポーネントのユーザー名とパスワードを入力します。HDPを所有している場合は、Ambariのユーザー名とパスワードも入力する必要があります。
  9. スクリプトが完了したら、ターゲット・クラスタを再起動します。
    ./bdd-admin.sh start
  10. リストアが成功したことを確認します。
    1. 管理サーバー上で、$BDD_HOME/BDD_manager/binに移動し、ヘルスチェックを実行します。
      ./bdd-admin.sh status --health-check
    2. Studioにログインし、プロジェクト・データが元のクラスタと一致していることを確認します。
    3. 新しいデータ・セットをロードし、ファイルのアップロードが機能していることを確認します。
    4. 単純な変換を実行します。
  11. HiveメタデータおよびMetaStoreデータをターゲット・クラスタに移行します。
    手順については、Hadoopディストリビューションのドキュメントを参照してください。
  12. Hive表の移行が成功したことを確認します。
    1. ブラウザでHueを開いて、ページの上部にある「Metastore Manager」をクリックします。
    2. 右側の「Tables」リストから表を選択して、それを開きます。
    3. 右上の「Browse Data」アイコンをクリックします。
    4. データがソース・クラスタと同じであることを確認します。

リストア操作によって、Dgraphデータベース・ディレクトリのコピーがDGRAPH_INDEX_DIR/.snapshot/old_copyに作成されました。リストアされるバージョンのDgraphデータベースを保持する場合は、これを削除する必要があります。

MySQLデータベースを所有していて、データベース移行中にリストアが失敗した場合は、MySQLデータベースのリストアのトラブルシューティングを参照してください。