HDFSへのDgraphデータベースの移動

Dgraphデータベースが現在、NFSに格納されている場合は、これらをHDFSに移動できます。

注意: この手順はMapRでサポートされており、MapRはHDFSのかわりにMapR-FSを使用します。わかりやすくするために、このドキュメントではHDFSだけに言及していますが、特に指定していないかぎり、すべての情報はMapR-FSにも適用されます。
HDFSは分散ファイル・システムのため、ここにデータベースを格納するとDgraphの可用性が高くなります。また、データベースが格納できるデータ量も増えます。

データベースがHDFSに格納されている場合、DgraphはHDFS DataNodeで実行される必要があります。現在、DataNodeにインストールされていない場合は、データベースを移動するときにバイナリも移動する必要があります。

重要: DataNodeサービスはDgraphノードで実行される唯一のHadoopサービスである必要があります。特に、DgraphとSparkはどちらも多くのリソースを必要とするため、同じ場所に配置しないでください。Sparkや他のHadoopサービスを実行するDgraphをホストする必要がある場合は、十分なリソースへのアクセスを確保できるようにcgroupを使用します。詳細は、「Dgraphのcgroupの設定」を参照してください。

HDFSへDgraphデータベースを移動するには、次の手順を実行します。

  1. 管理サーバー上で、$BDD_HOME/BDD_manager/binに移動し、BDDを停止します。
    ./bdd-admin.sh stop [-t <minutes>]
  2. Dgraphデータベースを現在の場所からHDFSの新しい場所にコピーします。
    bddユーザーは新しい場所への読取り権限と書込み権限を持つ必要があります。
    MapRを保有している場合は、ボリュームとともに新しい場所にマウントし、bddユーザーがスナップショットを作成、削除できる権限を持つ必要があります。
    HDFS Data at Rest暗号化を有効にした場合は、新しい場所は暗号化ゾーンである必要があります。
  3. Dgraphが現在、HDFS DataNodeにインストールされていない場合、移動先にするHadoopクラスタ内の1つ以上のノードを選択します。
    選択したノードに他のBDDコンポーネントが現在、インストールされている場合は、それぞれのノードに次のディレクトリがあることを確認し、ないディレクトリがあれば、それをコピーします。
    • $BDD_HOME/common/edp
    • $BDD_HOME/dataprocessing
    • $BDD_HOME/dgraph
    • $BDD_HOME/logs/edp
    選択したノードにどのBDDコンポーネントもインストールされていない場合は、次の手順を実行します。
    1. 各ノードに新しい$BDD_HOMEディレクトリを作成します。権限は755とし、所有者はbddユーザーとする必要があります。
    2. 次のディレクトリを既存のDgraphノードから新しい各ノードにコピーします。
      • $BDD_HOME/BDD_manager
      • $BDD_HOME/common
      • $BDD_HOME/dataprocessing
      • $BDD_HOME/dgraph
      • $BDD_HOME/logs
      • $BDD_HOME/uninstall
      • $BDD_HOME/version.txt
    3. $BDD_HOMEを指すシンボリック・リンク$ORACLE_HOME/BDDを作成します。
    4. 任意で、不要になった/dgraphディレクトリを古いDgraphノードから削除します。
      他のBDDディレクトリはまだ使用する可能性があるので、残しておいてください。
  4. HDFSにあるデータベースにDgraphがアクセスできるようにするには、すべてのDgraphノードにHDFS NFS Gatewayサービス(MapRではMapR NFSと呼びます)をインストールします。
    手順については、Hadoopディストリビューションのドキュメントを参照してください。
  5. MapRを保有している場合は、MapR-FSをローカル・マウント・ポイント$BDD_HOME/dgraph/hdfs_rootにマウントします。
    これは、NFSマウント・ポイントを各Dgraphノード上の/etc/fstabに追加することで実行できます。これにより、システムが起動したときにMapR-FSが自動的にマウントされるようになります。これは、BDDをアンインストールする場合は手動で削除する必要がありますので、注意してください。
  6. Sparkまたはその他のHadoopプロセス(HDFS DataNodeプロセスに加えて)と同じノードでDgraphをホストする必要がある場合は、HadoopとDgraphが必要するリソースを切り分けるためにcgroupを作成します。
    手順については、「Dgraphのcgroupの設定」を参照してください。
  7. パフォーマンスを最適化するためには、HDFSでShort-Circuit Readを構成します。
    これにより、DgraphはHDFS DataNodeのネットワーク・ソケットを使用してデータを転送する必要がなくなり、ローカル・ファイルに直接、アクセスできるようになります。手順については、Hadoopディストリビューションのドキュメントを参照してください。
  8. ZooKeeperの索引をクリーン・アップします。
  9. 管理サーバーで、$BDD_HOME/BDD_manager/conf/bdd.confを新しい場所にコピーします。テキスト・エディタでコピーを開き、次のプロパティを更新します。
    プロパティ 説明
    DGRAPH_INDEX_DIR HDFSのDgraphデータベース・ディレクトリの新しい場所の絶対パス。

    MapRを保有している場合は、ボリュームとしてこの場所にマウントし、bddユーザーがスナップショットを作成、削除できる権限を持つ必要があります。

    HDFS Data at Rest暗号化を有効にした場合は、この場所は暗号化ゾーンである必要があります。

    DGRAPH_ SERVERS 新しいDgraphノードのFQDNのカンマ区切りのリスト。すべてがHDFS DataNodeである必要があります。
    DGRAPH_ THREADS Dgraphの起動に使用されるスレッドの数。この値は、Dgraphノード上のCPUコアの数から、新しいDgraphノード上で実行されているHDFSおよび他のHadoopサービスの実行に必要な数を引いたものになります。
    DGRAPH_CACHE Dgraphキャッシュのサイズ。これはマシンのRAMの50%か、または空き容量合計のいずれか大きな方になります。
    DGRAPH_USE_ MOUNT_HDFS 起動時にDgraphがHDFSをマウントするかどうかを決定します。これをTRUEに設定します。
    DGRAPH_HDFS_ MOUNT_DIR DgraphがHDFSのrootディレクトリをマウントするローカル・ディレクトリの絶対パス。この場所が存在しており、空である必要があります。また、bddユーザーには読取り、書込み、実行権限が必要です。

    デフォルトの場所である$BDD_HOME/dgraph/hdfs_rootの使用をお薦めします。これはインストーラによって作成されたディレクトリで、これらの要件を満たしています。

    KERBEROS_ TICKET_ REFRESH_ INTERVAL Kerberosを有効にしている場合にのみ、必要です。DgraphのKerberosチケットがリフレッシュされる間隔(分数)。たとえば、60に設定すると、Dgraphのチケットは60分ごと、つまり1時間ごとにリフレッシュされます。
    KERBEROS_ TICKET_ LIFETIME Kerberosを有効にしている場合にのみ、必要です。DgraphのKerberosチケットが有効な期間の長さ。これは、数字に続き、サポートされている時間単位を付けて指定する必要があります。サポートされている時間単位は、smhまたはdです。たとえば、10h (10時間)または10m (10分)などです。
    DGRAPH_ENABLE_CGROUP Dgraphにcgroupを設定する場合にのみ必要です。Dgraphのcgroupを作成した場合は、これをTRUEに設定する必要があります。
    DGRAPH_CGROUP_NAME Dgraphにcgroupを設定する場合にのみ必要です。Dgraphを制御するcgroupの名前。
    NFS_GATEWAY_ SERVERS NFS Gatewayを使用している場合にのみ必要です。NFS Gatewayサービスを実行しているノードのFQDNのカンマ区切りのリスト。これにはすべてのDgraphノードが含まれます。
    DGRAPH_USE_ NFS_MOUNT NFS Gatewayを使用している場合は、このプロパティをTRUEに設定します。
  10. 構成変更を残りのクラスタにも伝播するには、$BDD_HOME/BDD_manager/binに移動し、次を実行します。
    ./bdd-admin.sh publish-config <path>
    ここで、<path>bdd.confの更新したコピーの絶対パスです。
  11. クラスタを起動します。
    ./bdd-admin.sh start