5.4 問合せサーバーとHiveとの同期化

Cloudera Manager、Apache Ambariまたはdbms_bdsqs.sync_hive_databases PL/SQL APIを使用して、問合せサーバーと指定したHiveデータベースを同期化できます。

次のいずれかの方法を使用して、問合せサーバーとメタストア内のHiveデータベースを同期化できます。
  • Cloudera ManagerまたはApache Ambariで「Restart this Big Data SQL Query Server」コマンドを実行します。
  • Cloudera ManagerまたはApache Ambariで「Synchronize Hive Databases」コマンドを実行します。
  • エッジ・ノードでdbms_bdsqs.sync_hive_databases PL/SQL APIをローカルに呼び出します。
bds-config.json構成ファイルを使用するか、Cloudera Managerのsync_hive_db_list構成パラメータを使用して、同期化に使用するHiveデータベースを指定する必要があります。

dbms_bdsqs.sync_hive_databases PL/SQL APIは、他の2つの方法ですでに同期化されているHiveデータベースのHive表定義をリフレッシュするにすぎません。

5.4.1 Cloudera Managerを使用した問合せサーバーの手動再起動

Cloudera ManagerまたはApache Ambariで問合せサーバーを再起動することによって、問合せサーバーと指定したHiveデータベースを同期化できます。

Cloudera ManagerまたはApache Ambariを使用すると、起動、停止、再起動など問合せサーバーを管理できます。問合せサーバーを再起動または起動すると、メタデータと指定したHiveデータベースが同期化されます。表の削除や追加など、メタストアでHiveデータベースを変更すると、それが問合せサーバーに反映されます。たとえば、Cloudera Managerで問合せサーバーを次のように再起動できます。
bds-config.json構成ファイルを使用するか、Cloudera Managerのsync_hive_db_list構成パラメータを使用して、同期化に使用するHiveデータベースを指定する必要があります。
  1. ログイン資格証明を使用してCloudera Managerにログインします。
  2. 使用可能なサービスのリストで、「Big Data SQL」リンクをクリックして、「Big Data SQL」詳細ページを表示します。
  3. 「Status Summary」セクションで、「Big Data SQL Query Server」リンクをクリックして、「Big Data SQL Query Server」詳細ページを表示します。
  4. 「Actions」ドロップダウン・リストから、「Restart this Big Data SQL Query Server」を選択します。
    ダイアログ・ボックスが表示されます。「Restart this Big Data SQL Query Server」をクリックします。同期化ジョブのステータスをモニターする別のダイアログ・ボックスが表示されます。

5.4.2 Cloudera Managerを使用した問合せサーバーの手動同期化

Cloudera ManagerまたはApache Ambariを使用すると、問合せサーバーと指定したHiveデータベースを手動で同期化できます。

同期化後、表の削除や追加など、メタストアでHiveデータベースを変更すると、それが問合せサーバーに反映されます。たとえば、Cloudera Managerで問合せサーバーを次のように同期化できます。
  1. ログイン資格証明を使用してCloudera Managerにログインします。
  2. 使用可能なサービスのリストで、「Big Data SQL」リンクをクリックして、「Big Data SQL」詳細ページを表示します。
  3. 「Status Summary」セクションで、「Big Data SQL Query Server」リンクをクリックして、「Big Data SQL Query Server」詳細ページを表示します。
  4. 「Actions」ドロップダウン・リストから、「Synchronize Hive Databases」を選択します。
    ダイアログ・ボックスが表示されます。「Synchronize Hive Databases」をクリックします。同期化ジョブのステータスをモニターする別のダイアログ・ボックスが表示されます。
bds-config.json構成ファイルを使用するか、Cloudera Managerのsync_hive_db_list構成パラメータを使用して、同期化に使用するHiveデータベースを指定する必要があります。

5.4.3 PL/SQL APIを使用した問合せサーバーの同期化

PL/SQL APIを使用して、問合せサーバーと指定したHiveデータベースを同期化できます。

そのためには、問合せサーバーがインストールされているエッジ・ノードでローカルにdbms_bdsqs.sync_hive_databases PL/SQL APIを起動します。

このプロシージャには、パラメータが含まれていません。これにより、すでに問合せサーバーにあるすべてのHiveデータベースが同期化されます。APIは、sync_hive_db_list構成パラメータにリストされているHiveデータベースのみで問合せサーバーをリフレッシュします。連続する各同期化(リフレッシュとも呼ばれます)は、問合せサーバー・メタデータの最後のリフレッシュ以降に行われた変更を処理します。

同期化は、最後のリフレッシュ以降にHiveメタストアで追加または削除された表を取得します。これには、スキーマが変更された可能性がある表も含まれます。

5.4.4 問合せサーバー完全同期の有効化

問合せサーバーでデルタ同期(デフォルト)と完全同期のどちらを実行するかを指定できます。

問合せサーバーのインストール・プロセス中に、bds-config.json構成ファイルまたはsync_hive_db_list構成パラメータのいずれかで指定できるHiveデータベース・リストに基づいて、Oracleスキーマおよび適切な外部表が作成されます。この場合、問合せサーバーは完全同期を実行します。デフォルトでは、問合せサーバーは後続の再起動時または同期化時にデルタ同期を実行します。

Cloudera ManagerまたはApache Ambariの「Enable full synchronization」パラメータを使用して、問合せサーバーで完全同期とデルタ同期のどちらを実行するのかを制御できます。デフォルトでは、この構成パラメータは選択解除されています。問合せサーバーが完全同期を実行できるようにするには、Cloudera ManagerまたはApache Ambariでこのチェック・ボックスを選択します。たとえば、Cloudera Managerを使用すると、次のように、問合せサーバーは再起動中または手動同期化中に完全同期を実行できます。

  1. ログイン資格証明を使用してCloudera Managerにログインします。
  2. Cloudera Managerで、「Search」フィールドを使用して、「Enable full synchronization」構成パラメータを検索します。「Search」フィールドに「/ Enable full synchronization」と入力し(名前を入力していくと、該当する名前がリストに表示されます)、[Enter]を押します。
  3. 「Big Data SQL: Enable full synchronization」をクリックします。デフォルトでは、このチェック・ボックスは選択解除されています。これは、問合せサーバーがデルタ同期を実行することを示しています。
  4. 完全同期を有効にするには、チェック・ボックスを選択し、「Save Changes」をクリックします。

完全同期では、問合せサーバーから既存のスキーマおよび外部表がすべて削除され、sync_hive_db_list構成パラメータで指定したHiveデータベース・リストに基づいて、新しいスキーマおよび新しい外部表が再作成されます。

デフォルトでは、問合せサーバーは指定したメタストアのHiveデータベースと問合せサーバーの間でデルタ同期を実行します。表の削除や追加などHiveデータベースを変更すると、それが問合せサーバーに反映されます。ただし、問合せサーバーを初めて起動したときには、bds-config.json構成ファイルで指定したHiveデータベース、またはCloudera ManagerやApache Ambariのsync_hive_db_list構成パラメータで指定したHiveデータベースに基づいて、Oracleスキーマが作成されます。

問合せサーバーとHiveを初めて同期化した場合、そのプロセスは通常より遅くなります。これは、指定したデータベース(Cloudera ManagerまたはApache Ambariで構成したもの)のすべての表をHadoopクラスタにインポートしているためです。その後のリフレッシュでは、新規表の追加など、Hiveメタデータに対して行われた変更のみをリフレッシュするので、大幅に高速になります。デルタ・インポート中、問合せサーバーは追加/変更された表の新しい統計も収集します。