4 プロパティ・グラフ・サポートの構成

この章では、ビッグ・データ環境でプロパティ・グラフのサポートを構成する方法について説明します。

ここでは、Big Data Appliance (「Oracle Big Data Appliance上でのOracle Big Data Spatial and Graphのインストール」を参照)、Apache Hadoopシステム、またはOracle NoSQL Databaseで、すでにインストールが実行されていると想定しています。

データベースおよびJavaの構成設定を変更することにより、プロパティ・グラフのパフォーマンスを改善できる可能性があります。提供する提案事項はガイドラインであり、ご使用のシステムを慎重かつ徹底的に評価した後にのみ従ってください。

4.1 プロパティ・グラフと併用するためのApache HBaseのチューニング

Apache HBaseおよびJava仮想マシンのデフォルト構成を変更することにより、パフォーマンスを改善できます。

Apache HBase上のBig Data Spatial and Graphに大量のデータをロードする際は、HBase構成とJVM設定の両方に関してApache HBase側でパフォーマンス・チューニング構成を行うことが推奨されます。これらの設定には、ガベージ・コレクション設定、ブロック・ファイル・サイズ、リージョン・サーバー処理カウントの変更、およびApache HBaseサーバー上の各ストレージ・ノードがノードの機能を活用できるメモリー・ヒープ・サイズの変更が含まれます。

クライアント側では、頂点およびエッジの表に使用されるリージョン(パーティション)の初期数を変更する必要があります。リージョンの初期数を適切に使用すると、HBase上のストレージ・ノード上での書込み操作が削減されます。たとえば、デフォルトではグラフ表は4つのリージョンを使用して作成されますが、10億のエッジがあるグラフでは最大32のリージョンを使用することをお薦めします。

プロパティ・グラフ・インスタンスの構築時にリージョン数を簡単に指定できます。(グラフがすでに存在する場合、リージョンの数は変更できないため、グラフを削除するか、新しいグラフを作成する必要がある場合があります。)次に例を示します。

OraclePropertyGraph opg = OraclePropertyGraph.getInstance(conf, conn, graphName, 4 /* initial number of regions */);

追加の設定として、データ・ロードで使用するDOP (並列度)もあります。ベスト・プラクティスは、使用可能なプロセッサ数に合ったDOPを使用することです。次に例を示します。

OraclePropertyGraphDataLoader opgdl = OraclePropertyGraphDataLoader.getInstance();
opgdl.loadData(opg, "test.opv", "test.ope", 32 /*dop*/);

注意:

これらの設定を変更したら、クラスタ内のすべてのノードに構成値が伝播されるようにサーバーを再起動します。

4.1.1 Apache HBase構成の変更

Apache HBaseの構成を変更するには、この項の該当するCDHリリースに対するステップに従います。(個々のステップは、CDHリリースに応じて変わる可能性があります。)

CDH 5.2.x、CDH 5.3.xおよびCDH 5.4.xの場合:

  1. adminユーザーとしてCloudera Managerにログインします。

  2. 「Home」ページで、左側のサービスのリストから「HBase」をクリックします。

  3. 「HBase」ページで、「Configuration」タブをクリックします。

  4. 左側の「Category」パネルで、「Service-Wide」を展開して「Advanced」を選択します。

  5. hbase-site.xmlのHBase Service Advanced Configuration Snippet (Safety Valve)の値を次のように編集します。

    <property>
      <name>hbase.regionserver.handler.count</name>
      <value>32</value>
    </property>
    <property>
      <name>hbase.hregion.max.filesize</name>
      <value>1610612736</value>
    </property>
    <property>
      <name>hbase.hregion.memstore.block.multiplier</name>
      <value>4</value>
    </property>
    <property>
       <name>hbase.hregion.memstore.flush.size</name>
       <value>134217728</value>
    </property>
    <property>
       <name>hbase.hstore.blockingStoreFiles</name>
       <value>200</value></property>
    <property>
      <name>hbase.hstore.flusher.count</name>
      <value>1</value>
    </property>
    

    このプロパティがすでに存在する場合は、必要に応じて値を置換してください。そうでない場合は、XMLプロパティの記述を追加してください。

  6. 「Save Changes」をクリックします。

  7. 「Actions」メニューを展開し、状況に応じて「Restart」または「Rolling Restart」オプションのうち、最適な方を選択します。

CDH 5.4.xの場合:

  1. adminユーザーとしてCloudera Managerにログインします。

  2. 「Home」ページで、左側のサービスのリストから「HBase」をクリックします。

  3. 「HBase」ページで、「Configuration」タブをクリックします。

  4. 「SCOPE」を開きます。

  5. 「HBase (Service-wide)」をクリックし、ページの下部までスクロールして「Display All Entries」を選択します(「Display 25 Entries」ではありません)。

  6. このページで、hbase-site.xmlHBase Service Advanced Configuration Snippet (Safety Valve)を見つけて、次の<property>要素の値を入力します。

    <property>
      <name>hbase.regionserver.handler.count</name>
      <value>32</value>
    </property>
    <property>
      <name>hbase.hregion.max.filesize</name>
      <value>1610612736</value>
    </property>
    <property>
      <name>hbase.hregion.memstore.block.multiplier</name>
      <value>4</value>
    </property>
    <property>
       <name>hbase.hregion.memstore.flush.size</name>
       <value>134217728</value>
    </property>
    <property>
       <name>hbase.hstore.blockingStoreFiles</name>
       <value>200</value></property>
    <property>
      <name>hbase.hstore.flusher.count</name>
      <value>1</value>
    </property>
    

    このプロパティがすでに存在する場合は、必要に応じて値を置換してください。そうでない場合は、XMLプロパティの記述を追加してください。

  7. 「Save Changes」をクリックします。

  8. 「Actions」メニューを展開し、状況に応じて「Restart」または「Rolling Restart」オプションのうち、最適な方を選択します。

4.1.2 Javaメモリー設定の変更

Javaメモリー設定を変更するには、この項の該当するCDHリリースに対するステップに従います。(個々のステップは、CDHリリースに応じて変わる可能性があります。)

CDH 5.2.xおよびCDH 5.3.xの場合:

  1. adminユーザーとしてCloudera Managerにログインします。

  2. 「Home」ページで、左側のサービスのリストから「HBase」をクリックします。

  3. 「HBase」ページで、「Configuration」タブをクリックします。

  4. 「RegionServer Group」(デフォルトおよびその他)で、「Advanced」をクリックし、HBase RegionServerの「Java Configuration Options」で次の値を使用します。

    -Xmn256m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly
    
  5. 「Resource Management」をクリックし、HBase RegionServerの「Java Heap Size」に適切な値(18Gなど)を入力します。

  6. 「Save Changes」をクリックします。

  7. 「Actions」メニューを展開し、状況に応じて「Restart」または「Rolling Restart」オプションのうち、最適な方を選択します。

CDH 5.4.xの場合:

  1. adminユーザーとしてCloudera Managerにログインします。

  2. 「Home」ページで、左側のサービスのリストから「HBase」をクリックします。

  3. 「HBase」ページで、「Configuration」タブをクリックします。

  4. 「SCOPE」を開きます。

  5. 「RegionServer」をクリックし、ページの下部までスクロールして「Display All Entries」を選択します(「Display 25 Entries」ではありません)。

  6. このページで、「Java Configuration Options for HBase RegionServer」に次の値を入力します。

    -Xmn256m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly
    
  7. 「Java Heap Size of HBase RegionServer in Bytes」に適切な値(18Gなど)を入力します。

  8. 「Save Changes」をクリックします。

  9. 「Actions」メニューを展開し、状況に応じて「Restart」または「Rolling Restart」オプションのうち、最適な方を選択します。

関連項目:

Javaガベージ・コレクションの詳細は、次を参照してください。

http://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/

すべての設定の説明は、Javaツール・リファレンスを参照してください。

https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html

4.2 プロパティ・グラフと併用するためのOracle NoSQL Databaseのチューニング

Oracle NoSQL Databaseから最高のパフォーマンスを得るには、次のようにします。

  • レプリケーション・グループ(シャード)がバランス調整されていることを確認します。

  • ユーザー・プロセス・リソース制限の設定を調整します(ulimit)。次に例を示します。

    ulimit -u 131072
    
  • レプリケーション・ノード上のJava仮想マシン(JVM)のヒープ・サイズを、Bツリー索引がメモリーに収まるように設定します。

    ヒープ・サイズを設定するには、makebookconfigコマンドの-memory_mbオプションまたはストレージ・ノードのmemory_mbパラメータを使用します。

    Oracle NoSQL Databaseでは、ストレージ・ノードで実行するプロセスのヒープ・サイズとしてmemory_mbの85%を使用します。ストレージ・ノードが複数のレプリケーション・ノードをホストしている場合、ヒープはそれらの間で均等に分割されます。各レプリケーション・ノードは、ヒープの70%であるキャッシュを使用します。

    たとえば、2つのレプリケーション・ノードをホストしているストレージ・ノードのmemory_mbを3000MBに設定した場合、各レプリケーション・ノードは次のようになります。

    • 1275MBヒープ、(3000MB * .85)/2で計算

    • 892MBキャッシュ、1275MB * .70で計算