DataStax Enterprise 5.0から6.7へのアップグレード

DSE 5.0から6.7へのアップグレード手順

OpsCenterバージョン DSEバージョン
6.7 6.7、6.0、5.1
6.5 6.0、5.1、5.0
6.1 5.1、5.0
6.0 5.0

cassandra.yaml

cassandra.yamlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/cassandra/cassandra.yaml
tarボール・インストール installation_location/resources/cassandra/conf/cassandra.yaml

dse.yaml

dse.yamlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/dse.yaml
tarボール・インストール installation_location/resources/dse/conf/dse.yaml

server.xml

Tomcat server.xmlファイルのデフォルトの場所は、インストール・タイプによって異なります。
パッケージ・インストール /etc/dse/tomcat/conf/server.xml
tarボール・インストール installation_location/resources/tomcat/conf/server.xml

logback.xml

logback.xmlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/cassandra/logback.xml
tarボール・インストール installation_location/resources/cassandra/conf/logback.xml

DataStax EnterpriseおよびApache Cassandraの構成ファイル

構成ファイル Installer-Servicesおよびパッケージ・インストール Installer-No Servicesおよびtarボール・インストール
DataStax Enterpriseの構成ファイル
byoh-env.sh /etc/dse/byoh-env.sh install_location/bin/byoh-env.sh
dse.yaml /etc/dse/dse.yaml install_location/resources/dse/conf/dse.yaml
logback.xml /etc/dse/cassandra/logback.xml install_location/resources/logback.xml
spark-env.sh /etc/dse/spark/spark-env.sh install_location/resources/spark/conf/spark-env.sh
spark-defaults.conf /etc/dse/spark/spark-defaults.conf install_location/resources/spark/conf/spark-defaults.conf
Cassandraの構成ファイル
cassandra.yaml /etc/cassandra/cassandra.yaml install_location/conf/cassandra.yaml
cassandra.in.sh /usr/share/cassandra/cassandra.in.sh install_location/bin/cassandra.in.sh
cassandra-env.sh /etc/cassandra/cassandra-env.sh install_location/conf/cassandra-env.sh
cassandra-rackdc.properties /etc/cassandra/cassandra-rackdc.properties install_location/conf/cassandra-rackdc.properties
cassandra-topology.properties /etc/cassandra/cassandra-topology.properties install_location/conf/cassandra-topology.properties
jmxremote.password /etc/cassandra/jmxremote.password install_location/conf/jmxremote.password
Tomcatサーバーの構成ファイル
server.xml /etc/dse/resources/tomcat/conf/server.xml install_location/resources/tomcat/conf/server.xml

DataStaxドライバーの変更点

DataStaxドライバーには2つのタイプがあります。

  • DataStax Enterprise用DataStaxドライバー:DSE 4.8以降用
  • Apache Cassandra用DataStaxドライバー:Apache CassandraおよびDSE 4.7以前のバージョン用
注: Apache Cassandraドライバー用のDataStaxドライバーは、DSE 5.0以降のクラスターに接続できますが、DSEドライバーにアップグレードすることを強くお勧めします。DSEドライバーでは、DataStax Enterpriseのすべての機能を使用できます。
1. アップグレードの情報は、各ドライバーのガイドに含まれています。
DataStax Enterprise用DataStaxドライバー Apache Cassandra用DataStaxドライバー
C/C++ C/C++
C# C#
Java Java
Node.js Node.js
Python Python
メンテナンス・モード・ドライバー
DataStaxでサポートされますが、新しいバージョンには重大なバグの修正のみが含まれます。
PHP PHP
Ruby Ruby
追加のドライバーのドキュメント
すべてのドライバー バージョンの互換性

アップグレードの順序

ノードは以下の順序でアップグレードします。
  • 複数データ・センター・クラスターでは、1つのデータ・センター内のすべてのノードをアップグレードしてから、別のデータ・センターをアップグレードします。
  • データ・センター内のシード・ノードを最初にアップグレードします。
  • ノードは以下の順序でアップグレードします。
    1. DSE Analyticsデータ・センター
    2. トランザクション/DSE Graphデータ・センター
    3. DSE Searchデータ・センター

Cassandraのメジャー・バージョンのアップグレード

Apache Cassandraのメジャー・リリースを含むアップグレードには、SSTableのアップグレードが必要です。
  • DataStax Enterprise 6.7はCassandra 3.11と互換性があります。
  • DataStax Enterprise 6.0はCassandra 3.11と互換性があります。
  • DataStax Enterprise 5.1はCassandra 3.11を使用します。
  • DataStax Enterprise 5.0はCassandra 3.0を使用します。
  • DataStax Enterprise 4.7~4.8はCassandra 2.1を使用します。
  • DataStax Enterprise 4.0~4.6はCassandra 2.0を使用します。

DataStax Enterpriseのアップグレード・プロセスは、ダウンタイムの最小化(ゼロ・ダウンタイムが理想)を実現します。プロセス中、他のノードがオンラインで稼働し続けている状態でノードを1つずつアップグレードして再起動します。若干の例外はありますが、クラスター内のすべてのノードがアップグレードされるまで、クラスターはDataStax Enterpriseの以前のバージョンであるかのように機能し続けます。

DSE 5.0から6.7にアップグレードするには、以下の手順に従います。以前のバージョンのDSEを使用している場合は、5.0の最新バージョンにアップグレードしてから続行してください。

すべての変更箇所については、DSE 5.1DSE 6.0、およびDSE 6.7のリリース・ノートを参照してください。

注: DataStaxインストーラーは、DSE 6.0以降ではサポートされていません。DataStaxインストーラーを使用してインストールされたDSE 5.0からアップグレードするにはまず、スタンドアロン・インストーラーでのインストールから同じバージョンのtarボールまたはパッケージ・インストールに変更する必要があります。「DataStaxインストーラー・インストールからDSE 6.0またはDSE 6.7へのアップグレード」を参照してください。

必ず現行バージョンの最新のパッチ・リリースにアップグレードしてから、新しいバージョンにアップグレードしてください。最新のパッチ・リリースに含まれている修正によって、アップグレード・プロセスが向上するか、スムーズになる場合があります。

DSE 5.0の最新バージョンは5.0.14です。

重要: アップグレードの前にこれらの手順を読み、理解しておいてください。計画およびアップグレード手順を細かく確認しておくと、スムーズなアップグレードが保証され、不備や不満が生じるのを避けることができます。
重要: Thrift互換テーブル(コンパクト・ストレージ)のサポートが廃止されました。DSE 6.7にアップグレードする前に、コンパクト・ストレージを持つすべてのテーブルをCQLテーブル形式に移行する必要があります。Thrift互換テーブルをCQLテーブル形式に移行するには、ALTER TABLE DROP COMPACT STORAGEコマンドを使用します。このコマンドは、DSE 5.0.12以降で使用できます。

Apache Cassandraのバージョン変更

DataStax Enterprise 5.0から6.7へのアップグレードには、Cassandraのメジャー・バージョン変更が含まれます。
  • DataStax Enterprise 6.7はCassandra 3.11と互換性があります。
  • DataStax Enterprise 6.0はCassandra 3.11と互換性があります。
  • DataStax Enterprise 5.1はCassandra 3.11を使用します。
  • DataStax Enterprise 5.0はCassandra 3.0を使用します。
  • DataStax Enterprise 4.7~4.8はCassandra 2.1を使用します。
  • DataStax Enterprise 4.0~4.6はCassandra 2.0を使用します。
SSTableをアップグレードするための推奨事項に必ず従ってください。

一般的な推奨事項

DataStaxでは、バージョン・アップグレードの前に、ログ、カスタム構成などのデータをバックアップすることを推奨しています。バックアップすることによって、必要に応じて前のバージョンで使用したすべてのデータに戻したり、そのデータを復元したりすることができます。

OpsCenterでは、Backup Service(バックアップ・サービス)が提供されます。このサービスは、DataStax Enterpriseクラスターの企業全体のバックアップ操作と復元操作を管理します。OpsCenter 6.5以降が推奨されます。

アップグレードの制限事項

制限事項は、クラスターの一部が部分的にアップグレードされている状態で適用されます。

これらの例外により、クラスター内のすべてのノードがアップグレードされるまで、クラスターはDataStax Enterpriseの以前のバージョンであるかのように機能し続けます。

アップグレード・プロセス中の一般的な制限事項
  • 新しい機能を有効にしないでください
  • nodetool repairを実行しないでください。OpsCenter Repair Serviceが構成されている場合は、Repair Serviceをオフにします
  • OpsCenterの互換性を確認してください。DSE 6.7クラスターを管理するには、OpsCenter 6.7が必要です。 互換性テーブルを参照してください。
  • アップグレード中は、ノードをブートストラップしたり、使用廃止にしたりしないでください。
  • ローリング再起動中に、DDLTRUNCATEのような種類のCQLクエリーを実行しないでください。
  • NodeSyncは、すべてのノードがアップグレードされるまで起動を待機します。
  • DSE 5.0では、パフォーマンス・オブジェクトによって使用されるデフォルトのスレッドの数は1つです。DSE 6.7では、パフォーマンス・オブジェクトのによって使用されるデフォルトのスレッドの数は4つです。アップグレード中、互換性のあるパフォーマンス・オブジェクトはアップグレード・プロセス中も機能し続けます。スキーマの変更を必要とする互換性のないパフォーマンス・オブジェクトは、レガシー・モードで動作するか、アップグレードが完了してから動作を開始します。アップグレード中に、パフォーマンス・オブジェクトの構成を変更しないでください。パフォーマンス・オブジェクトがアップグレード前に無効になっていた場合は、アップグレード中に有効にしないでください。DSE Performance Service(パフォーマンス・サービス)6.7 | 5.0 | OpsCenterを参照してください。
  • 必要なときにSSTableをアップグレードしなかった場合、パフォーマンスが大幅に低下し、ディスク使用量が増加します。アップグレードは、SSTableがアップグレードされるまで完了しません。
注: アップグレード中、異なるバージョン上のノードでスキーマの不一致が発生する場合があります。
DSE拡張レプリケーション・ノードの制限事項
アップグレードは、DSE拡張レプリケーションV2でのみサポートされています。
DSE Searchアップグレードの制限事項
  • スキーマを更新しないでください。
  • アップグレード中にDSE Searchノードにインデックスを付け直さないでください。
  • DSE 6.7は、DSE 5.0とは異なるLuceneコーデックを使用しています。この新しいコーデックで書かれたセグメントは、以前のバージョンのDSEでは読み取れません。以前のバージョンにダウングレードするには、問題となる可能性のある検索インデックスのデータ・ディレクトリー全体を消去する必要があります。
  • DataStax Enterprise 6.7のDSE SearchはApache Solr 6.0を使用します。この大幅な変更により、アップグレードの前後で、事前の計画と特定の措置が求められます。
重要: DSE SearchまたはSearchAnalyticsワークロードをアップグレードする前に、「DSE SearchおよびSearchAnalyticsノードをアップグレードするための高度な準備」セクションの特定のタスクに従う必要があります。
任意の種類のセキュリティを使用するノードの制限事項
  • すべてのノードでアップグレードが完了するまで、セキュリティ認証情報またはパーミッションを変更しないでください。
  • Kerberosをまだ使用していない場合は、アップグレードの前にKerberos認証を設定しないでください。最初にクラスターをアップグレードしてからKerberosをセットアップしてください。
ドライバー・バージョンに互換性がない場合のドライバーのアップグレードと被る可能性のある影響
ドライバーの互換性を必ず確認してください。ドライバー・バージョンによっては、クライアント・アプリケーション・コードの再コンパイルが必要になる場合があります。参照先: DataStaxドライバーの変更点
クラスターでドライバーのバージョンが混在している場合、アップグレード中にドライバー固有の影響がある場合があります。クラスターにバージョンの混在がある場合、プロトコル・バージョンはドライバーが接続する最初のホストとネゴシエートされます。アップグレード中にドライバーのバージョン互換性の喪失を回避するには、以下の回避策のいずれかを使用してください。
  • プロトコル・バージョン:一部のドライバーでは異なるプロトコル・バージョンを使用できるため、起動時にプロトコル・バージョンを強制します。たとえば、ドライバー・アップグレード中はJavaドライバーを現在のプロトコル・バージョンのままにしておきます。クラスター内のすべてのノードでアップグレードが完了してから、はじめてJavaドライバーを新しいプロトコル・バージョンに切り替えてください。
  • 初期のコンタクト・ポイント:初期のコンタクト・ポイントのリストに、最も古いドライバー・バージョンのあるホストのみが含まれることを確認します。たとえば、初期のコンタクト・ポイントにはJavaドライバーv2のみが含まれます。
プロトコル・バージョンのネゴシエーションの詳細については、ご使用のJavaドライバー・バージョン(たとえばJavaドライバー)の「混在クラスターのあるプロトコル・バージョン」を参照してください。

DSE SearchおよびSearchAnalyticsノードをアップグレードするための高度な準備

アップグレードの準備」の手順を開始する前に、DSE 5.0をまだ実行している間に、DSE SearchおよびSearchAnalyticsノードに対して行う高度な準備手順をすべて完了します。

アップグレード前に、必要な変更を実装し、テストするための十分な時間を確保してください。
  • スキーマを変更するには、インデックスを完全に作成し直す必要があります。
  • 構成の変更にはコアの再読み込みが必要です。
  1. HTTPクエリーをCQLに変更します。
    • Delete-by-idが削除されました。代わりに、プライマリ・キーによるCQL DELETEを使用してください。
    • Delete-by-queryはワイルドカードをサポートしなくなりました。代わりに、CQL TRUNCATEを使用してください。
  2. SolrコアがDSE 4.6以前のバージョンで作成されており、DSE 4.7以降にアップグレードした後にインデックスが再作成されていない場合は、DSE 5.0でインデックスを再作成してからDSE 6.7にアップグレードする必要があります。
  3. shard_transport_optionsdse.yaml 内でnetty_client_request_timeoutに対してのみ設定されていることを確認してください。
    shard_transport_options: 
        netty_client_request_timeout: 60000
    DSE 6.7のシャード・トランスポート・オプションは、netty_client_request_timeoutのみをサポートしています。他のshard_transport_optionsは削除してください。
  4. Apache Solr SolrJを使用している場合、必要な最小バージョンは6.0.0です。
  5. 検索スキーマ内のSpatialRecursivePrefixTreeFieldType(RPT)に対しては、次の変更に合わせてクエリーを調整する必要があります。
    • IsDisjointToはSpatialRecursivePrefixTreeFieldTypeのクエリーに対してはサポートされなくなりました。IsDisjointToはIntersects以外のクエリーに置き換えてください。例を次に示します。
      foo:0,0 TO 1000,1000 AND -"Intersects(POLYGON((338 211, 338 305, 404 305, 404 211, 338 211)))")
    • SpatialRecursivePrefixTreeFieldTypeフィールドに対するWKTスタイルのクエリーには、ENVELOPE構文が必要になりました。ENVELOPE(10, 15, 15, 10)と指定する必要があります。以前のリリースのクエリーでは10 10 15 15のように指定できました。
    空間クエリーでdistanceUnitsを使用した場合の詳細については、「空間検索」を参照してください。
  6. solrconfig.xmlファイルを編集し、必要に応じて以下の変更を行います。
    • 次のサポートされていないSolr requestHandlersを削除します。
      • XmlUpdateRequestHandler
      • BinaryUpdateRequestHandler
      • CSVRequestHandler
      • JsonUpdateRequestHandler
      • DataImportHandler

      例を次に示します。

      <requestHandler name="/dataimport" class="solr.DataImportHandler"/>

      または

      <requestHandler name="/update" class="solr.XmlUpdateRequestHandler"/>
    • directoryFactoryの以下の部分を変更します。
      <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
      以下のように変更します。
      <directoryFactory name="DirectoryFactory" class="solr.StandardDirectoryFactory"/>
    • <unlockOnStartup>LUCENE-6508SOLR-7942の結果、サポートされなくなりました。
    • updateLogの以下の部分を変更します。
      <updateLog class="solr.FSUpdateLog" force="false">
      以下のように変更します。
      <updateLog force="false">
  7. DSE searchノードをアップグレードするには、サポートされていないSolr型をサポートされている型に置換する必要があります。
    注: BCDStrFieldに対しても特別な取り扱いが必要です。これについては9で説明されています。
    ソート制限は、バージョンが混在しているクラスターに適用されます。削除された一部のSolr型は、分散クエリー中に値をマーシャルソートする方法が原因で(推奨される新しい型によって値がアンマーシャルソートされる方法との兼ね合いで)、一部のノードがサポートされていない型を使用し、他のノードが推奨される新しい型を使用する場合には、ローリング・アップグレード中にソートできません。次の型の移行では問題が生じる場合があります。
    削除されたSolrフィールド型 サポートされているSolrフィールド型
    ByteField TrieIntField
    DateField TrieDateField
    BCDIntField TrieIntField
    BCDLongField TrieLongField
    以下の2つのオプションを使用できます。
    1. クエリー対象のデータ・センター内のノードがすべてアップグレードされるまで、削除されたSolrフィールド型をソートしないようにします。
      ヒント: 2つの検索データ・センターを使用している場合は、1つのデータ・センターに対するクエリーを分離してからスキーマを変更し、もう一方のデータ・センターのインデックスを再作成します。次に、スキーマを変更し、最初のデータ・センターをアップグレードする間に、新たにインデックスを再作成したデータ・センターに対するクエリーを分離します。
    2. BCDIntFieldまたはBCDLongFieldを使用している場合は、スキーマを更新し、サポートされているSolr型であるTrieIntFieldおよびTrieLongFieldとソート互換性がある型にBCDIntFieldとBCDLongFieldを置き換えます。
      削除されたSolrフィールド型 ソート互換性がある、サポートされている中間Solrフィールド型
      BCDIntField SortableIntField
      BCDLongField SortableLongField
      スキーマを分散的に変更し、インデックスは再作成しません。すべてのノードでスキーマが更新されたら、9に進みます。
  8. Solr 5.5以降から削除されているSolrフィールド型に対してスキーマと構成を更新します。
    • スキーマを更新し、サポートされていないSolrフィールド型をサポートされているSolrフィールド型に置換します。
      削除されたSolrフィールド型 サポートされているSolrフィールド型
      ByteField TrieIntField
      DateField TrieDateField
      DoubleField TrieDoubleField
      FloatField TrieFloatField
      IntField TrieIntField
      LongField TrieLongField
      ShortField TrieIntField
      SortableDoubleField TrieDoubleField
      SortableFloatField TrieFloatField
      SortableIntField TrieIntField
      SortableLongField TrieLongField
      BCDIntField TrieIntField
      BCDLongField TrieLongField
      BCDStrField(使用されている場合は10を参照) TrieIntField
    • 型マッピング・バージョン0を使用しているか、型マッパーを指定しない場合は、solrconfig.xmlを検証するか、dseTypeMappingVersion 1を使用するように更新します。
      <dseTypeMappingVersion>1</dseTypeMappingVersion>
      SolrコアがCQLテーブルによってサポートされており、型マッピングが指定されていない場合は、型マッピング・バージョン2を使用します。
    • コアを再度読み込みます。
      dsetool reload_core keyspace_name.table_name schema=filepath solrconfig=filepath
      サポートされていないデータ型を使用していた場合は、ノードごとにインデックスを完全に再作成します。
      dsetool reload_core keyspace_name.table_name schema=filepath solrconfig=filepath reindex=true deleteAll=true distributed=false
    注: DSE 5.1以降では、自動生成されたスキーマはデータ型マッパー2を使用します。
  9. BCDStrFieldを使用している場合:DSE 5.0以前では、DSEはCassandraテキスト・カラムをBCDStrFieldにマッピングしていました。廃止予定のBCDStrFieldは削除されました。
    推奨される戦略は、データ型をTrieIntFieldにアップグレードすることです。ただし、DSEではテキストをTrieIntFieldに直接マッピングできません。BCDStrFieldを使用している場合は、以下のいずれかのオプションを完了してからアップグレードする必要があります。
    • BCDStrFieldが使用されなくなった場合は、BCDStrFieldフィールドをSolrスキーマから削除します。インデックスの再作成は不要です。
    • フィールドのインデックスをTrieIntFieldとして作成する必要があり、インデックスの完全な再作成が可能な場合は、基になるデータベース・カラムを変更してint型を使用します。
    • データベース・カラムをテキストのまま保持しながらインデックス付きのフィールドで単純な一致クエリーを実行する場合は、スキーマ内のBCDStrFieldをStrFieldに切り替えます。インデックスの作成は必須ではありませんが、このフィールドは数値範囲クエリーまたはソートに適さなくなります。StrFieldは数値順序ではなく辞書式順序を使用するためです。
    • この方法は推奨されません:データベース・カラムをテキストのまま保持しながら、以前のBCDStrFieldに対して数値範囲クエリーやソートを実行する必要があるが、完全にインデックスを再作成するのではなくアプリケーションを変更したい場合:
      • indexed=falseを指定して、Solrスキーマ内のフィールドをStrFieldに変更します。
      • 元のBCDStrFieldから提供された値を持つTrieIntField型を指定した新しいコピー・フィールドを追加します。
      コピー・フィールドのターゲットにデータを追加する必要があるため、このソリューションには、依然としてインデックスの再作成が必要です。この非推奨オプションは、次善のデータ・モデルをサポートするためにのみ提供されています。たとえば、intのみに収まる値があるテキスト・カラムなどです。
    これらのスキーマの変更を行った後は、reindex=true、distributed=false、およびdeleteAll=trueを指定して、ノードごとにローリングreload_coreを実行します。
    注: データ・センターが2つあり、これらを1つずつアップグレードする場合は、distributed=trueおよびdeleteAll=trueを指定してコアを再度読み込みます。
  10. アップグレードの前にスキーマを調整してください。アップグレード後、フィールドのインデックスが作成されていない場合、フィールドにdocValuesが適用されている場合、またはフィールドがコピーフィールド・ソースに使用されている場合でも、スキーマ内のすべてのフィールド定義が検証され、DSE Searchと互換性があります。自動リソース生成のデフォルトの動作には、すべてのカラムが含まれます。パフォーマンスを改善するには、フィールドがデータベースから読み込まれないように対策を講じます。スキーマ内の使用されていないフィールドを削除するかコメント・アウトして、スキーマ内の必要なフィールドのみを含めます。

検索インデックス付きDSE Graphノードをアップグレードするための高度な準備

以下の手順は検索インデックスを含むグラフ・ノードに適用されます。

アップグレードの準備」の手順を開始する前に、DSE 5.0をまだ実行している間に、高度な準備手順をすべて完了します。

注: 検索インデックスを含むDSE Graphノードをアップグレードするには、solrconfigファイルを以下のように編集する必要があります。構成の変更にはコアの再読み込みが必要です。アップグレード前に、必要な変更を実装し、テストするための十分な時間を確保してください。
solrconfig.xmlファイルを編集し、必要に応じて以下の変更を行います。
  • requestHandlers(XmlUpdateRequestHandler、BinaryUpdateRequestHandler、CSVRequestHandler、JsonUpdateRequestHandler、およびDataImportHandler)を削除します。Solrでは、これらのrequestHandlersは廃止され削除されました。

    例を次に示します。

    <requestHandler name="/dataimport" class="solr.DataImportHandler"/>

    または

    <requestHandler name="/update" class="solr.XmlUpdateRequestHandler">/>
  • <unlockOnStartup>はLUCENE-6508SOLR-7942の結果、サポートされなくなりました。
  • コアを再度読み込んで、この構成の変更を適用します。
    dsetool reload_core keyspace_name.table_name reindex=false

DSE Analyticsノードをアップグレードするための高度な準備

DSE 5.0からDSE 6.7へのアップグレードには、Spark 2.2へのメジャー・アップグレードに加えて、DSEおよびSpark間の緊密な統合が含まれています。Spark 2.2の詳細については、Sparkのドキュメントを参照してください。Spark 2.2はScala 2.11を使用しています。

新しいSparkリソース・マネージャーは、DataStax Java Driverと、DSE Sparkノード間の通信を管理するためのネイティブのCQLプロトコルを使用します。DSE 5.0ではSpark RPCを使用していました。このリソースの管理変更は、DSE 5.0で実行されていたSparkアプリケーションに影響を及ぼします。
  1. Spark 2.2はScala 2.11を使用しています。すべてのDSE 5.0 Scala SparkアプリケーションをScala 2.11に対して再コンパイルし、Scala 2.11のサードパーティ・ライブラリのみを使用する必要があります。

    コンパイル・ターゲットを変更するには、ビルド・ファイル内のdse-spark-dependenciesを変更するだけでは十分ではありません。ビルド・ファイルの設定方法については、プロジェクト例を参照してください。

  2. Sparkアプリケーションは、dse://URLを使用する必要があります。これは、「Spark URLの指定」で説明しているように、spark://spark_master_IP:Spark_RPC_port_number URLの代わりです。

    SparkマスターのIPアドレスまたはホスト名を、dse://URLの使用時に指定する必要はなくなりました。Sparkノードに接続すると、要求がマスター・ノードにリダイレクトされます。

  3. 接続の目的でspark://Spark master IP:Spark RPC portを使用する既存のSparkアプリケーション・コードが存在する場合、これは機能しなくなります。

    たとえば、DSE 5.0で機能していた以下のコードはDSE 5.1以降では機能しません。

    val conf = new SparkConf(true) 
    .setMaster("spark://192.168.123.10:7077") 
    .setAppName("cassandra-demo") 
    .set("cassandra.connection.host" , "192.168.123.10") // initial contact 
    .set("cassandra.username", "cassandra") 
    .set("cassandra.password", "cassandra") 
    val sc = new SparkContext(conf)

    DSE 6.7に接続するために、setMasterを呼び出す必要はなくなりました。

    val conf = new SparkConf(true)
    .setAppName("cassandra-demo") 
    .set("cassandra.connection.host" , "192.168.123.10") // initial contact 
    .set("cassandra.username", "cassandra") 
    .set("cassandra.password", "cassandra") 
    val sc = new SparkContext(conf)

    setMasterを使用してマスターを指定するには、dse:// URL形式を使用してください。

  4. Sparkジョブを特定のデータベースのロールに制限できます。「Sparkアプリケーションのパーミッションの管理」を参照してください。
  5. 個別のユーザーとしてのSparkプロセスの実行」で説明されているように、Sparkエグゼキューター・プロセス所有者を設定できます。
  6. Sparkアプリケーションを送信するユーザーを同じデータベース・ロールにする必要はなくなりました。マスター接続送信を変更して、データベース接続とは異なるユーザーまたはクラスターを使用するには、「Spark URLの指定」を参照してください。
DSEFSデータのバックアップ

以下の手順はDSEFSを使用するノードのみに適用されます。アップグレードの準備の手順を開始する前に、以下の高度な準備手順を完了してください。

データベースで使用されるDSEFSスキーマは向上していますが、以前のスキーマも引き続きサポートされており、アップグレード中に変更されることはありません。新しいDSEFSスキーマを既存のDSEFSデータDSEFSと使用するには、dse hadoop fs -cpコマンドを使用して現在のDSEFSデータをローカル・ストレージにバックアップします。

dse hadoop fs -cp /* /local_backup_location

アップグレードの準備

以下の手順に従い、DSE 5.0からDSE 6.7にアップグレードするために各ノードを準備します。
注: これらの手順は、現在のバージョンで実行され、DSE 5.0のマニュアルを使用します。
  1. 現行バージョンの最新のパッチ・リリースにアップグレードします。最新のパッチ・リリースに含まれている修正によって、アップグレード・プロセスが簡略化される場合があります。
  2. アップグレードの前に、各ノードに十分な量の空きディスク領域があることを確認してください。

    必要なディスク領域は、コンパクション戦略によって異なります。「ディスク領域」を参照してください。

  3. このリリースの変更点と機能について十分理解してください。
  4. ITriggerおよびカスタム・インターフェイスを置き換えます。

    コア・ストレージ・エンジンのリファクタリングを必要とするために、いくつかの内部およびベータ拡張ポイントが変更されています。DSE 6.7にアップグレードする際は、以下のインターフェイスを含むすべてのカスタム実装を、サポート対象の実装に置き換える必要があります。DSE 6.7では、以下のインターフェイスのリライトが必要です。(ご不明な点がある場合は、DataStaxサービス・チームにお問い合わせください。)

    • org.apache.cassandra.triggers.ITriggerインターフェイスは、ノンブロッキング内部アーキテクチャーのためにaugmentからaugmentNonBlockingに変更されました。アップグレードされたノードでは、更新されたトリガーの実装が必要です。わからない場合は、アップグレードの前に既存のトリガーをすべて削除してください。既存のトリガーをチェックするには、次のようにします。
      SELECT * FROM system_schema.triggers
    • org.apache.cassandra.index.Indexインターフェイスは、コア・ストレージ・エンジンの変更に合わせて変更されました。更新された実装が必要です。わからない場合は、アップグレードの前に既存のカスタム・セカンダリ・インデックスをすべて削除してください。ただし、DSE Searchインデックスについては、置き換える必要はないため、削除する必要はありません。既存のインデックスをチェックするには、次のようにします。
      SELECT * FROM system_schema.indexes
    • org.apache.cassandra.cql3.QueryHandlerorg.apache.cassandra.db.commitlog.CommitLogReadHandler、およびその他の拡張ポイントが変更されています。「QueryHandlers」を参照してください。
  5. Thrift互換テーブル(コンパクト・ストレージ)のサポートが廃止されました。アップグレードする前に、DSE 5.0の実行中に手順に従って、コンパクト・ストレージを持つすべてのテーブルをCQLテーブル形式に移行してください。
    注: system.*テーブルは移行しないでください。コンパクト・ストレージはDSEによって内部で削除されています。
    DSE Analyticsについては、HiveMetaStoreおよびPortfolioDemoキースペース内のすべてのテーブルからコンパクト・ストレージを削除してください。
    コンパクト・ストレージが削除された後、「コンパクト・ストレージからの移行」で説明されているように、CQL互換テーブル形式への移行をサポートするためのカラムが追加されます。
    重要: コンパクト・ストレージ・テーブルが存在すると、DSE 6.7は起動しません。バージョンが混在しているクラスターでのコンパクト・ストレージ・テーブルの作成はサポートされていません。
  6. 監査ロギングがCassandraAuditWriterを使用するよう構成されている場合は、DSE 5.0ノードでスーパーユーザーとしてこれらのコマンドを実行してから、クラスター全体がスキーマ合意を持っていることを確認します。
    ALTER TABLE dse_audit.audit_log ADD authenticated text;
    ALTER TABLE dse_audit.audit_log ADD consistency text;
  7. すべてのSSTableが最新バージョンとなるように、各ノード上のSSTableをアップグレードしてください。
    nodetool upgradesstables
    この手順は、 Cassandraのメジャー・バージョン の変更を含むDataStax Enterpriseのアップグレードに必要です。
    警告: 必要なときにSSTableをアップグレードしなかった場合、パフォーマンスが大幅に低下し、ディスク使用量が増加します。

    SSTableが既に現在のバージョンになっている場合、このコマンドは即座に終了し、アクションは発生しません。

  8. Java Runtimeバージョンを確認し、推奨バージョンにアップグレードしてください。
    java -version
    重要: Oracle JRE/JDK 8はサポートされていますが、DataStaxでは、OpenJDK 8でさらに広範なテストを実施しています。
  9. nodetool repairを実行して、各レプリカ上のデータと他のノード上のデータの整合性を確保します。
  10. 最適なパフォーマンスを得るためにlibaioパッケージをインストールしてください。
    RHELプラットフォーム:
    sudo yum install libaio
    Debian:
    sudo apt-get install libaio1
  11. DSE Analyticsノード:
    • shuffleパラメーターをプログラムで設定する場合は、conf.set("spark.shuffle.service.port", port)を使用するアプリケーション用コードを変更する必要があります。代わりに、dse spark-submitを使用します。これによって、認証状態に基づいて正しいサービス・ポートが自動的に設定されます。詳細については、「Sparkの構成」を参照してください。
    • DSEFSが有効であれば、CFS hivemetastoreディレクトリーをdseにコピーします。
      DSE_HOME/bin/dse hadoop fs -cp cfs://127.0.0.1/user/spark/warehouse/ dsefs://127.0.0.1/user/spark/warehouse/
      アップグレードの完了後、Spark SQLテーブル(使用している場合)を新しいHiveメタストア形式に移行します。
      dse client-tool spark metastore migrate --from 5.0.0 --to 6.0.0
    • Cassandra File System(CFS)は削除されます。アップグレードの前に、cfsおよびcfs_archiveキースペースを削除します。詳細については、ブログの投稿「From CFS to DSEFS」および「CFSからDSEFSへのデータのコピー」ドキュメントを参照してください。
  12. DSE Searchノード:
    • DSE 6.7のDSE SearchはApache Solr 6.0を使用します。「DSE SearchおよびSearchAnalyticsノードをアップグレードするための高度な準備」のすべての手順を完了します。
    • HTTPの書き込みのすべての使用が、更新および挿入のためのCQLコマンドを使用するように変更されていることを確認します。
    • 検索インデックス構成を編集し、必要に応じて以下の変更を行います。検索インデックスのクエリーの動作を変更するための有効なオプションについては、「検索インデックス構成」を参照してください。
      • サポートされていないdataDirオプションを削除します。検索インデックスの場所の設定は、引き続き行うことができます。
      • mergePolicy、maxMergeDocs、およびmergeFactorを削除します。例を次に示します。
        <mergeFactor>25</mergeFactor>
        <maxMergeDocs>...
        <mergePolicy>...
        代わりにmergePolicyFactoryを使用し、さらにmergeSchedulerを追加します。
        <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler">
            <int name="maxThreadCount">16</int>
            <int name="maxMergeCount">32</int>
        </mergeScheduler>
        ...
        <mergePolicyFactory class="org.apache.solr.index.TieredMergePolicyFactory">
          <int name="maxMergeAtOnce">10</int>
          <int name="segmentsPerTier">10</int>
        </mergePolicyFactory>
      • ExtractingRequestHandlerのインスタンスがある場合は、それを削除します。
      • DSENRTCachingDirectoryFactoryを削除します。次の部分
        <directoryFactory name="DirectoryFactory" class="com.datastax.bdp.search.solr.DSENRTCachingDirectoryFactory"/>
        を以下のように変更します。
        <directoryFactory name="DirectoryFactory" class="solr.StandardDirectoryFactory"/>
    • catalina.propertiesおよびcontext.xmlファイルがTomcat confディレクトリーにあることを確認します。これらのファイルが見つからない場合、DSEは起動しません。
      Tomcat confディレクトリーのデフォルトの場所は、インストールのタイプによって異なります。
      • パッケージ・インストール:/etc/dse/tomcat/conf
      • tarボール・インストール:installation_location/resources/tomcat/conf
    • 以前のDSEバージョンがSolr UI web.xmlのカスタム構成を使用している場合は、次の部分、
      <filter-class>com.datastax.bdp.search.solr.auth.DseAuthenticationFilter</filter-class>
      を、以下のように変更します。
      <filter-class>com.datastax.bdp.cassandra.auth.http.DseAuthenticationFilter</filter-class>
    • StallMetrics MBeanは削除されます。MBeanを使用する演算子を変更します。
  13. DSE Graphノード:
    • gremlinを使用して追加した検索インデックスがグラフ・ノードに含まれている場合は、「検索インデックス付きDSE Graphノードをアップグレードするための高度な準備」の手順を完了します。
    • エッジ・ラベル名およびプロパティ・キー名が、サポートされている文字のみを使用していることを確認します。エッジ・ラベル名およびプロパティ・キー名に使用できるのは、[a-zA-Z0-9]、アンダースコア、ハイフン、およびピリオドのみです。以前のバージョンでは、エッジ・ラベル名およびプロパティ・キー名で、使用できるUnicodeに制限はほとんどありません。
      • schema.describe()は、不適切な名前がスキーマに含まれている場合でも、スキーマ全体を表示します。
      • インプレースのアップグレードでは、無効なエッジ・ラベル名およびプロパティ・キー名が含まれている既存のスキーマを許可します。
      • 不適切な名前が含まれるスキーマ要素は、更新または追加ができません。
  14. 使用する 構成 ファイルを、コマンドを通常実行するディレクトリーにないフォルダーにバックアップします。

    構成ファイルは、新しいバージョンのインストール中にデフォルト値で上書きされます。

アップグレード手順

DSE 5.0からDSE 6.7へアップグレードするには、推奨される順序に従って、各ノードで次の手順を実行します。 アップグレード・プロセス中、ノードは1つずつアップグレードして再起動してください。
注: これらの手順は、アップグレードされたバージョンで実行され、DSE 6.7のマニュアルを使用します。
  1. DSE Analyticsノード:すべてのSparkワーカー・プロセスを強制終了します。
  2. 古いインストールのコミット・ログをフラッシュするには、次のようにします。
    nodetool -h hostname drain
    この手順により、アップグレード後のノードの起動時に時間が節約されるほか、DSE Searchノードでデータに再度インデックス付けする手間を省くことができます。
    重要: SSTable形式を変更し、前のバージョンのコミット・ログのレンダリングが新しいバージョンと互換性がないCassandraのメジャー・バージョン間でアップグレードを行う場合、この手順は必須です。
  3. ノードを停止します
  4. 適切な方法を使用して、サポートされるプラットフォームに新しい製品バージョンをインストールします。
    注: システム上にある同じインストール・タイプを使用して新しい製品バージョンをインストールします。そうでない場合、問題が発生する可能性があります。
  5. 新しい製品バージョンを構成するには:
    1. バックアップ 構成 ファイルを新しい構成ファイルと比較します。
      • cassandra.yaml およびdse.yamlの変更を確認します。

        アップグレード後、6.7.0で再起動する前に、廃止予定の設定を削除して、新しい設定を使用します。

        cassandra.yaml changes

        memtableの設定
        廃止予定のcassandra.yaml設定
        memtable_heap_space_in_mb
        memtable_offheap_space_in_mb
        これらは、次の設定に置き換わります。
        memtable_space_in_mb

        自動memtableフラッシュのしきい値を設定するために、ヒープおよびオフヒープのスペース割り当てを制御します。計算されたデフォルトは、ヒープ・サイズの1/4です。

        変更された設定
        memtable_allocation_type: offheap_objects

        データベースがmemtableメモリーの割り当てと管理に使用するデフォルトの方法は、offheap_objectsです。

        ユーザー定義関数(UDF)の設定
        廃止予定のcassandra.yaml設定
        user_defined_function_warn_timeout
        user_defined_function_fail_timeout
        これらは次の設定に置き換わります。
        user_defined_function_warn_micros: 500
        user_defined_function_fail_micros: 10000
        user_defined_function_warn_heap_mb: 200
        user_defined_function_fail_heap_mb: 500
        user_function_timeout_policy: die

        Java UDFの実行が高速であるため、設定はマイクロ秒単位で行います。新しいタイムアウトは廃止された設定と同等ではありません。

        ノード間の暗号化の設定
        廃止されるcassandra.yamlの設定
        server_encryption_options: 
            store_type:JKS
        これらは次の設定に置き換わります。
        server_encryption_options: 
            keystore_type: JKS
            truststore_type: JKS

        有効なタイプのオプションはJKS、JCEKS、PKCS12、またはPKCS11です。

        クライアントとノード間の暗号化の設定
        廃止されるcassandra.yamlの設定
        client_encryption_options: 
            store_type:JKS
        これらは次の設定に置き換わります。
        client_encryption_options: 
            keystore_type: JKS
            truststore_type: JKS

        有効なタイプのオプションはJKS、JCEKS、PKCS12、またはPKCS11です。

        dse.yaml changes

      • 廃止予定、削除済み、または変更済みの設定を探します。
        シャード・トランスポート
        廃止予定のdse.yaml設定
        shard_transport_options: 
            type: netty
            netty_server_port: 8984
            netty_server_acceptor_threads: 
            netty_server_worker_threads: 
            netty_client_worker_threads: 
            netty_client_max_connections: 
            netty_client_request_timeout:
        httpトランスポート・タイプが削除されました。
        shard_transport_options: 
            type: http
            http_shard_client_conn_timeout: 0
            http_shard_client_socket_timeout: 0
        新しいdse.yaml設定
        shard_transport_options: 
            netty_client_request_timeout: 60000
        shard_transport_optionsは、netty_client_request_timeoutのみをサポートします。Remove any other options under shard_transport_optionsの下にある他のオプションをすべて削除します。
        DSE Analyticsノード:DSEFSの設定
        変更されたdse.yaml設定
        DSEFSはデフォルトで有効になっていますが、dsefs.enabled設定はコメント・アウトされています。DSEFSを有効にするには、すべてのdsefs_options設定のコメントを解除します。
      • キースペース・レプリケーション係数が環境に適していることを確認してください。
      • アップグレードによって、新しい server.xml がTomcat 8用にインストールされます。既存のserver.xmlにカスタム・コネクターが含まれている場合は、これらのコネクターを新しいserver.xmlに移行してから、アップグレードされたノードを起動してください。
      • 新しいリリースのApache CassandraおよびDataStax Enterpriseの変更点や機能について、よく理解しておいてください。
  6. DSE Analyticsノード:DSE 5.0クラスターに、Analytics Hadoopモードで実行されているデータ・センターが存在し、DseSimpleSnitchが使用されていた場合は、以下のいずれかのオプションを実行してクラスターでノードを開始する必要があります。環境に最適なオプションを選択してください。
    • Analytics Hadoopモードで実行されているデータ・センター内のノードに対し、これらのノードをSparkモードで起動します。
    • 特殊な起動時のパラメーターである-Dcassandra.ignore_dc=trueを各ノードに対して追加してから、cassandraモードで起動します。このフラグはアップグレードした後に一度だけ必要です。それ以降の再起動ではこのフラグは使用されません。各ノードを初めて再起動した後は、フラグを構成ファイル内に残しておくことも、削除することもできます。
  7. ノードを起動します。
  8. アップグレード後のデータ・センター名がキースペース・スキーマ定義内のデータ・センター名と一致することを確認します。
    nodetool status
  9. 警告、エラー、および例外がないか、ログを確認します。

    多くの場合、警告、エラー、および例外は、アップグレードしたノードの起動時にログに表示されます。これらのログ・エントリーの一部は、固有のアップグレード関連の手順を実行するときに役立ちます。予想しなかった警告、エラー、または例外が表示された場合は、DataStaxサポートまでお問い合わせください。

  10. 推奨される 順序に従って、クラスター内の各ノードでアップグレードを繰り返します。

    各ノードでのアップグレードおよび再起動は、ローリング再起動と呼ばれます。

  11. アップグレードに Cassandraのメジャー・バージョンが含まれている場合は、SSTableのアップグレードが必要です。DataStaxでは、一度に1つのノード(ラックを使用している場合は一度に1つのラック)のSSTableをアップグレードすることを推奨します。
    警告: 必要なときにSSTableをアップグレードしなかった場合、パフォーマンスが大幅に低下し、ディスク使用量が増加します。アップグレードは、SSTableがアップグレードされるまで完了しません。
    nodetool upgradesstables

    SSTableが既に現在のバージョンになっている場合、このコマンドは即座に終了し、アクションは発生しません。「SSTableの互換性とアップグレード・バージョン」を参照してください。

    同時にアップグレードするSSTableの数を設定するには、--jobsオプションを使用します。デフォルト設定は2です。この設定にすると、クラスターへの影響を最小限に抑えられます。利用可能なすべてのコンパクション・スレッドを使用するには、0に設定します。DataStaxでは、一度に1つのノード(ラックを使用している場合は一度に1つのラック)で、upgradesstablesコマンドを実行することを推奨します。

    注: すべてのノードがアップグレードされる前にupgradesstablesコマンドを実行できます。ただし、このコマンドを一度に1つのノード(ラックを使用する場合は一度に1つのラック)のみで実行する場合に限ります。upgradesstablesを実行するノードが多すぎると、パフォーマンスが低下します。

コンパクト・ストレージを削除しないでDSE 6.7にアップグレードした後の復元

Thrift互換テーブル(コンパクト・ストレージ)のサポートが廃止されました。DSE 6.7にアップグレードする前に、コンパクト・ストレージを使用しているテーブルをすべて削除するか、CQLテーブル形式に移行する必要があります。クラスターがDSE 6.7にアップグレードされており、コンパクト・ストレージ・テーブルがまだ存在する場合は、この手順に従って復元してアップグレードを進めてください。
  1. 既にDSE 6.7にアップグレードしたノードがあれば、それらを、DSE 5.0または5.1シリーズの最新バージョンにダウングレードします。
    • DSE 5.0.xの場合は、5.0.14以降にダウングレード
    • DSE 5.1.xの場合は、5.1.12以降にダウングレード
  2. DSE 6.7の起動を試みた各ノードで、次のオプションを指定してDSEを起動します。
    -Dcassandra.commitlog.ignorereplayerrors=true
  3. クラスター内の1つのノード(任意のノード)で、コンパクト・ストレージを使用しているテーブルからコンパクト・ストレージを削除します。
  4. DSEを再起動し、DSE 6.7へのアップグレードを続行します。

アップグレード後

すべてのノードをアップグレードしてDSE 6.7で実行したら、以下の手順を完了します。

  1. OpsCenter Repair Serviceを使用する場合は、Repair Serviceをオンにします
  2. DSEインストールのクラスパスから、以前にインストールしたJTS JARファイルをすべて削除します。JTS(Java Topology Suite)は、DSE 6.7とともに配布されます。
  3. すべてのノードがDSE 6.7上にあり、必要なスキーマ変更が行われたら、新しい監査ロギング機能(CassandraAuditWriter)により新しい列の使用が可能になります。
  4. レガシー・テーブルとしてsystem_auth.users、system_auth.credentials、およびsystem_auth.permissionsが存在する場合は削除します。

    アップグレードに関する一般的なアドバイス」で説明しているように、認証および権限管理サブシステムはロールベースのアクセス制御(RBAC)をサポートするようになりました。

  5. セキュリティ構成を確認します。セキュリティを使用するには、DSE Unified Authenticationを有効にして構成します。

    cassandra.yamlでは、デフォルトのオーセンティケーターはDseAuthenticatorで、デフォルトのオーソライザーはDseAuthorizerです。他のオーセンティケーターやオーソライザーはサポートされなくなりました。dse.yaml内ではセキュリティはデフォルトで無効になっています。

  6. TimeWindowCompactionStrategy(TWCS)は新しいdse_perfテーブルのみで設定されます。前のリリースで作成されたdse_perfテーブルを手動で変更して、TWCSを使用します。例を次に示します。
    ALTER TABLE dse_perf.read_latency_histograms WITH COMPACTION={'class':'TimeWindowCompactionStrategy'};
  7. DSE Searchのみ:
    • アペンダーSolrValidationErrorAppenderおよびロガー SolrValidationErrorLoggerは使用されなくなり、 logback.xmlから安全に削除できます。
    • 以前のバージョンと異なり、DataStaxでは、back_pressure_threshold_per_coredse.yaml)に、新しいデフォルト値1024を使用することをお勧めします。「インデックス作成のパフォーマンスの構成と調整」を参照してください。
    • SpatialRecursivePrefixTreeFieldType(RPT)を検索スキーマで使用する場合は、単位のフィールド型を適切な(度、キロメートル、またはマイル)distanceUnitsに置換してから、空間クエリーが期待どおりに動作することを確認します。
    • アペンダーSolrValidationErrorAppenderおよびロガー SolrValidationErrorLoggerは使用されなくなり、 logback.xmlから安全に削除できます。
    • JSONドキュメントでのHTTP書き込み(廃止予定)を使用している場合にのみ適用されます。5.1.0へのアップグレード後、既知の問題により、自動生成されたsolrconfig.xmlのrequestHandlerがJSONコアの作成に対して無効になります。自動生成されたsolrconfig.xmlの以下の部分を変更します。
      <requestHandler name="/update/json" class="solr.UpdateUpdateRequestHandler" startup="lazy"/>
      以下のように変更します。
      <requestHandler name="/update/json" class="solr.UpdateRequestHandler" startup="lazy"/>
    • 大きな暗号化インデックスがある場合にノードでの起動が遅くなる問題は解決されています。ただし、パフォーマンスの向上を実現するためにはアクションが必要です。お使いのクラスターの各ノードで、すべての暗号化検索インデックスを完全に再作成する必要があります。アップグレードが完了したら、ローリング方式でdeleteAll=trueを使用してインデックスを再作成するための時間を十分に取ってください。例を次に示します。
      dsetool reload_core keyspace_name.table_name distributed=false reindex=true deleteAll=true 
  8. DSEFSのみ:
    新しいスキーマがDSEFSに対して用意されています。
    警告: キースペースを削除すると、バックアップがない限り復元できません。一時データ以外のデータがある場合は、dsefsキースペースを削除しないでください。アクションは不要です。DSEFSは引き続きDSE 5.0スキーマを使用して機能します。
    DSEFSにデータがないか、一時データに対してのみDSEFSを使用している場合は、以下の手順に従って新しいスキーマを使用します。
    1. すべてのノードでDSEFSを停止します。dse.yamldsefs_optionsセクションで、enabled: falseを設定します。
    2. DSEノードを再起動します。
    3. dsefsキースペースを削除します。
      DROP KEYSPACE dsefs
    4. 各ノードでdsefsデータ・ディレクトリーを消去します。
      たとえば、dse.yamlのdsefs_optionsセクションに次のように構成されているdata_directoriesがあるとします。
      dsefs_options: 
           ...
           data_directories: 
               - dir: /var/lib/dsefs/data
      このコマンドは以下のディレクトリーを削除します。
      rm -r /var/lib/dsefs/data/*
    5. DSE 6.7でDSEFSを起動して、新しいスキーマを使用します。
    6. アップグレード前に既存のDSEFSデータをバックアップした場合は、ローカル・ストレージからデータをDSEFSにコピーして戻します。
  9. DSE Analyticsのみ:
    • Spark Jobserverは、DSEカスタム・バージョン0.8.0.44を使用します。アプリケーションでは、DataStaxリポジトリから互換性のあるSpark Jobserver APIを使用する必要があります。
    • Spark SQLテーブルを使用している場合は、新しいHiveメタストア形式にこのテーブルを移行します。
      dse client-tool spark metastore migrate --from 5.0.0 --to 6.0.0
  10. キースペース・レプリケーション係数が環境に適していることを確認してください。

アップグレード中とアップグレード後の警告メッセージ

アップグレード中およびアップグレード後に表示される一部のログ・メッセージは無視できます。

  • DSE Advanced Replicationを含むノードをアップグレードする際に、ノードのバージョンが混在している場合、ローリング・アップグレード中にWriteTimeoutExceptionが発生することがあります。ノードのバージョンが混在している間は、書き込みの整合性の制限がいくつか適用されます。WriteTimeoutの問題は、すべてのノードがアップグレードされると解決されます。
  • 以前のバージョンのDSEの一部のgremlin_serverプロパティは不要になりました。アップグレード後、プロパティが dse.yaml ファイルに存在する場合、ログに以下のような警告が表示されます。
    WARN  [main] 2017-08-31 12:25:30,523 GREMLIN DseWebSocketChannelizer.java:149 - Configuration for the org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0 serializer in dse.yaml overrides the DSE default - typically it is best to allow DSE to configure these.
    これらの警告を無視するか、dse.yamlを変更して必要なgremlinサーバーのプロパティのみが存在するようにすることができます。
エラー・メッセージには、問題の特定に役立つ情報が記載されます。
  • 次のようなエラー・メッセージが表示された場合:
    ERROR [main] 2016-07-21 13:52:46,941  CassandraDaemon.java:737 - Cannot start node if snitch's data center (Cassandra) differs from previous data center (Analytics).Please fix the snitch configuration, decommission and rebootstrap this node or use the flag -Dcassandra.ignore_dc=true.
    6のアップグレード手順に従います。Sparkモードで起動するか、特殊な起動時のパラメーターである-Dcassandra.ignore_dc=trueを各ノードに追加する必要があります。