Upgrading DataStax Enterprise (DSE) 5.1 to 6.9
The upgrade process for DataStax Enterprise (DSE) provides minimal downtime (ideally zero). During this process, upgrade and restart one node at a time while other nodes continue to operate online. With a few exceptions, the cluster continues to work as though it were on the earlier version of DSE until all of the nodes in the cluster are upgraded.
Read and understand these instructions before upgrading. Carefully reviewing the planning and upgrade instructions can prevent errors and data loss. In addition, review the DSE 6.9 release notes for all changes before upgrading. |
DSE 6.8 has a new |
DSE and Apache Cassandra® configuration files
Configuration file | Installer-Services and package installations | Installer-No Services and tarball installations |
---|---|---|
dse |
/etc/default/dse (systemd) or /etc/init.d/ (SystemV) |
N/A Node type is set via command line flags. |
dse-env.sh |
/etc/dse/dse-env.sh |
<installation_location>/bin/dse-env.sh |
byoh-env.sh |
/etc/dse/byoh-env.sh |
<installation_location>/bin/byoh-env.sh |
dse.yaml |
/etc/dse/dse.yaml |
<installation_location>/resources/dse/conf/dse.yaml |
logback.xml |
/etc/dse/cassandra/logback.xml |
<installation_location>/resources/logback.xml |
spark-env.sh |
/etc/dse/spark/spark-env.sh |
<installation_location>/resources/spark/conf/spark-env.sh |
spark-defaults.conf |
/etc/dse/spark/spark-defaults.conf |
<installation_location>/resources/spark/conf/spark-defaults.conf |
Configuration file |
Installer-Services and package installations |
Installer-No Services and tarball installations |
cassandra.yaml |
/etc/dse/cassandra/cassandra.yaml |
<installation_location>/conf/cassandra.yaml |
cassandra.in.sh |
/usr/share/cassandra/cassandra.in.sh |
<installation_location>/bin/cassandra.in.sh |
cassandra-env.sh |
/etc/dse/cassandra/cassandra-env.sh |
<installation_location>/conf/cassandra-env.sh |
cassandra-rackdc.properties |
/etc/dse/cassandra/cassandra-rackdc.properties |
<installation_location>/conf/cassandra-rackdc.properties |
cassandra-topology.properties |
/etc/dse/cassandra/cassandra-topology.properties |
<installation_location>/conf/cassandra-topology.properties |
jmxremote.password |
/etc/cassandra/jmxremote.password |
<installation_location>/conf/jmxremote.password |
Configuration file | Installer-Services and package installations | Installer-No Services and tarball installations |
---|---|---|
server.xml |
/etc/dse/resources/tomcat/conf/server.xml |
<installation_location>/resources/tomcat/conf/server.xml |
Upgrade order
Upgrade nodes in this order:
-
In multiple datacenter clusters, upgrade every node in one datacenter before upgrading another datacenter.
-
Upgrade the seed nodes within a datacenter first.
-
DSE Analytics datacenters
-
For DSE Analytics nodes using DSE Hadoop, upgrade the Job Tracker node first. Then upgrade Hadoop nodes, followed by Spark nodes.
-
-
Transactional/DSE Graph datacenters
-
DSE Search nodes or datacenters
Back up your existing installation
DataStax recommends backing up your data prior to any version upgrade. |
A backup provides the ability to revert and restore all the data used in the previous version if necessary. For manual backup instructions, see Backing up a tarball installation or Backing up a package installation.
Instead of manual processes, automate the management of enterprise-wide backup and restore cluster operations using OpsCenter. Ensure you use a compatible version of OpsCenter for your DSE version. |
Upgrade SSTables
Ensure you upgrade SSTables on your nodes both before and after upgrading the software binaries. Failure to upgrade SSTables will result in severe performance penalties and possible data loss. |
Version-specific notes
DSE Search changes: Starting with DSE version 6.7.7, the system enables by default the Solr |
DSE Search changes: Starting with DSE version 6.8.0, the system no longer allows unbounded facet searches using the |
Upgrade restrictions and limitations
Restrictions and limitations apply while a cluster is in a partially upgraded state. The cluster continues to work as though it were on the earlier version of DSE until all of the nodes in the cluster are upgraded.
General restrictions
-
Do not enable new features.
-
Ensure Mission Control or OpsCenter compatibility.
Compatibility OpsCenter version DSE version 6.8
6.8, 6.7, 6.0, 5.1
6.7
DSE 6.0
6.5
6.0, 5.1, 5.0 (EOL)
6.1
5.1, 5.0, 5.0 (EOL)
6.0
5.0 (EOL), 4.8 (EOSL), 4.7 (EOSL)
-
Do not run
nodetool repair
. -
Stop the OpsCenter Repair Service if enabled.
-
During the upgrade, do not bootstrap new nodes or decommission existing nodes.
-
Do not issue
TRUNCATE
orDDL
related queries during the upgrade process. -
Do not alter schemas for any workloads.
-
Complete the cluster-wide upgrade before the expiration of
gc_grace_seconds
(default 10 days) to ensure any repairs complete successfully. -
If you disabled the DSE Performance Service before the upgrade, do not enable it during the upgrade.
Nodes on different versions might show a schema disagreement during an upgrade. |
Restrictions for nodes using security
-
Do not change security credentials or permissions until the upgrade is complete on all nodes.
-
If you are not already using Kerberos, do not set up Kerberos authentication before upgrading. First upgrade the cluster, and then set up Kerberos.
Restrictions for DSE Analytics nodes
Spark versions change between major DSE versions. DSE release notes [5.x | 6.8.x] indicate which version of Spark is used.
When upgrading to a major version of DSE, all nodes in a DSE datacenter that run Spark must be on the same version of Spark and the Spark jobs must be compiled for that version. Each datacenter acting as a Spark cluster must be on the same upgraded DSE version before reinitiating Spark jobs.
In the case where Spark jobs run against Graph keyspaces, you must update all of the nodes in the cluster first to avoid Spark jobs failing.
Restrictions for DSE Advanced Replication nodes
The system supports upgrades for only DSE Advanced Replication v2.
Driver version impacts
Be sure to check driver compatibility. Depending on the driver version, you might need to recompile your client application code.
During upgrades, you might experience driver-specific impact when clusters have mixed versions of drivers. If your cluster has mixed versions, the protocol version is negotiated with the first host to which the driver connects, although certain drivers, such as Java 4.x/2.x automatically select a protocol version that works across nodes. To avoid driver version incompatibility during upgrades, use one of these workarounds:
-
Protocol version: Set the protocol version explicitly in your application at start up. Switch to the Java driver to the new protocol version only after the upgrade is complete on all nodes in the cluster.
-
Initial contact points: Ensure that the list of initial contact points contains only hosts with the oldest DSE version or protocol version. For example, the initial contact points contain only protocol version 2.
For details on protocol version negotiation, check the documentation for the driver you’re using. For example, Protocol version with mixed clusters in the Java driver.
Starting January 2020, you can use the same DataStax driver for Cassandra and DSE. DataStax provides unified drivers to avoid user confusion and enhance the OSS drivers with some of the features in the DSE drivers. For more information, see the Better Drivers for Cassandra blog. |
Advanced preparation for upgrading DSE Search nodes
Before continuing, complete all the advanced preparation steps on DSE Search nodes while DSE 5.1 is still running.
-
Change all use of HTTP API writes to instead use CQL commands for updates and inserts.
-
Edit the search index config and make these changes as needed. See Search index config for valid options to change query behavior for search indexes.
-
Remove the unsupported
dataDir
option. You can still set the location of search indexes. -
Remove
mergePolicy
,maxMergeDocs
, andmergeFactor
. For example:<mergeFactor>25</mergeFactor> <maxMergeDocs>... <mergePolicy>...
Use
mergePolicyFactory
instead, and addmergeScheduler
:<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>
-
Remove any instance of
ExtractingRequestHandler
. -
Remove
DSENRTCachingDirectoryFactory
. Change:<directoryFactory name="DirectoryFactory" class="com.datastax.bdp.search.solr.DSENRTCachingDirectoryFactory"/>
to:
<directoryFactory name="DirectoryFactory" class="solr.StandardDirectoryFactory"/>
-
-
Ensure the presence of the
catalina.properties
andcontext.xml
files in the Tomcatconf
directory.DSE does not start after the upgrade if those files are missing.
The default location of the
tomcat/conf
directory depends on the type of installation:-
Package installations:
/etc/dse/tomcat/conf
-
Tarball installations:
<installation_location>/resources/tomcat/conf
-
-
If earlier DSE versions use a custom configuration for the Solr UI
web.xml
, change:<filter-class>com.datastax.bdp.search.solr.auth.DseAuthenticationFilter</filter-class>
to
<filter-class>com.datastax.bdp.cassandra.auth.http.DseAuthenticationFilter</filter-class>
-
The
StallMetrics MBean
is removed.
Advanced preparation for upgrading DSE Graph nodes
Ensure that edge label names and property key names use only the supported characters.
Edge label names and property key names allow only [a-zA-Z0-9]
, underscore, hyphen, and period.
In earlier versions, edge label names and property key names allowed nearly unrestricted Unicode:
-
schema.describe()
displays the entire schema, even if it contains illegal names. -
In-place upgrades allow existing schemas with invalid edge label names and property key names.
-
Schema elements with illegal names cannot be updated or added.
Advanced preparation for upgrading DSE Analytics nodes
Before upgrading DSE Analytics nodes:
-
If you programmatically set the shuffle parameter, you must change the code for applications that use
conf.set("spark.shuffle.service.port", port)
. Instead, usedse spark-submit
which automatically sets the correct service port based on the authentication state. See Configuring Spark for more information. -
If DSEFS is enabled, copy the CFS
hivemetastore
directory to DSEFS:DSE_HOME/bin/dse hadoop fs -cp cfs://node_ip_address/user/spark/warehouse/ dsefs://node_ip_address/user/spark/warehouse/
-
Remove Cassandra File System (CFS). Remove the
cfs
andcfs_archive
keyspaces before upgrading. Review the From CFS to DSEFS blog post and the Copying data from CFS to DSEFS documentation.cqlsh> DROP KEYSPACE cfs
cqlsh> DROP KEYSPACE cfs_archive
-
Make sure any use of the
SPARK_LOCAL_DIRS
andSPARK_EXECUTOR_DIRS
environment variables match their use as described in Setting Spark environment variables. -
For applications to use the compatible Spark Jobserver API in the DataStax repository, migrate jobs that extend from
SparkHiveJob
andSparkSqlJob
toSparkSessionJob
. See theDemoSparkSessionJob
example in thedemos
directory.The default location of the
demos
directory depends on the type of installation:-
Package installations:
/usr/share/dse/demos
-
Tarball installations:
<installation_location>
/demos
-
Preparing to upgrade
Follow these steps to prepare each node for the upgrade:
The DataStax Installer is not supported for DSE 6.0 and later. To upgrade from DSE 5.x that was installed with the DataStax Installer, you must first change from a standalone installer installation to a tarball or package installation for the same DSE version. See Upgrading to DSE 6.0 or DSE 6.7 from DataStax Installer installations. |
Perform these steps in your DSE 5.1 version using the latest documentation. |
-
Upgrade to the latest patch release on your current version. The latest patch release includes fixes that can simplify the upgrade process.
Get the current DSE version:
$ bin/dse -v current_dse_version
-
Familiarize yourself with the changes and features in the new release:
-
DSE 6.9 release notes.
-
-
Before upgrading, be sure that each node has adequate free disk space.
Determine current DSE data disk space usage:
$ sudo du -sh /var/lib/cassandra/data/
Results
3.9G /var/lib/cassandra/data/
Determine available disk space:
$ sudo df -hT /
Results
Filesystem Type Size Used Avail Use% Mounted on /dev/sda1 ext4 59G 16G 41G 28% /
The required space depends on the compaction strategy. See Disk space.
-
Replace ITriggers and custom interfaces.
You must replace all custom implementations, including the following interfaces, with supported implementations when upgrading to DSE 6.9.x:
-
Custom implementation replacements modify the
org.apache.cassandra.triggers.ITrigger
interface fromaugment
toaugmentNonBlocking
for non-blocking internal architecture. You must provide updated trigger implementations on upgraded nodes. If unsure, drop all existing triggers before upgrading. To check for existing triggers:cqlsh> SELECT * FROM system_schema.triggers;
cqlsh> DROP TRIGGER trigger_name ON keyspace_name.table_name;
-
Custom implementation replacements modify the
org.apache.cassandra.index.Index
interface to comply with the core storage engine changes. You are required to update implementations. If unsure, drop all existing custom secondary indexes before upgrading, except DSE Search indexes, which do not need to be replaced. To check for existing indexes:cqlsh> SELECT * FROM system_schema.indexes;
cqlsh> DROP INDEX index_name;
-
Custom implementation replacements change the
org.apache.cassandra.cql3.QueryHandler
,org.apache.cassandra.db.commitlog.CommitLogReadHandler
, and other extension points. See QueryHandlers.Contact the DataStax Support team for help.
-
-
There is no longer support for Thrift-compatible tables (
COMPACT STORAGE
). Before upgrading, migrate all non-system tables that haveCOMPACT STORAGE
to CQL table format:$ cqlsh -e 'DESCRIBE FULL SCHEMA;' > schema_file
cat schema_file | while read -d $';\n' line ; do if echo "$line"|grep 'COMPACT STORAGE' 2>&1 > /dev/null ; then TBL="`echo $line|sed -e 's|^CREATE TABLE \([^ ]*\) .*$|\1|'`" if echo "$TBL"|egrep -v '^system' 2>&1 > /dev/null; then echo "ALTER TABLE $TBL DROP COMPACT STORAGE;" >> schema-drop-list fi fi done
$ cqlsh -f schema-drop-list
This script dumps the complete DSE schema to
schema_file
, usesgrep
to find lines containingCOMPACT STORAGE
, and then writes only those table names toschema-drop-list
along with the requiredALTER TABLE
commands. Theschema-drop-list
file is subsequently read by cqlsh, which executes theALTER TABLE
commands listed within it.DSE will not start if tables using
COMPACT STORAGE
are present. -
Upgrade the SSTables on each node to ensure that all SSTables are on the current version:
$ nodetool upgradesstables
Failure to upgrade SSTables when required results in a significant performance impact and increased disk usage.
Use the
--jobs
option to set the number of SSTables that upgrade simultaneously. The default setting is2
, which minimizes impact on the cluster. Set to0
to use all available compaction threads. DataStax recommends running theupgradesstables
command on one node at a time or, when using racks, one rack at a time.If the SSTables are already on the current version, the command returns immediately and no action is taken.
-
Ensure that keyspace replication factors are correct for your environment:
$ cqlsh --execute "DESCRIBE KEYSPACE keyspace-name;" | grep "replication" CREATE KEYSPACE keyspace-name WITH replication = {'class': 'NetworkTopologyStrategy, 'replication_factor': '3'} AND durable_writes = true;
-
Check the keyspace replication factor for Analytics keyspaces.
-
Check the keyspace replication factor for
system_auth
anddse_security
keyspaces.
-
-
Verify the Java runtime version and upgrade to the recommended version.
$ java -version
Results
java version "11.0.x" YYYY-MM-DD LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.x+xx-LTS-219) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.x+xx-LTS-219, mixed mode)
-
Recommended: OpenJDK 11 (11.0.19 minimum) and Oracle Java SE 11 (JRE or JDK) (11.0.18 minimum).
-
-
Run
nodetool repair
to ensure that data on each replica is consistent with data on other nodes:$ nodetool repair -pr
-
Install the
libaio
package for optimal performance.RHEL platforms:
$ sudo yum install libaio
Debian:
$ sudo apt-get install libaio1
-
Back up any customized configuration files since they may be overwritten with default values during installation of the new version.
If you backed up your installation using instructions in Backing up a tarball installation or Backing up a package installation, the system includes your original configuration files in the archive.
Upgrade steps
Follow these steps on each node in the recommended Upgrade order. The upgrade process requires upgrading and restarting one node at a time.
Perform these steps in your upgraded version, DSE 6.9.x. |
-
Flush the commit log of the current installation:
$ nodetool drain
-
Stop the node:
-
Package installations:
$ sudo service dse stop
-
Tarball installations:
$ installation_dir/bin/dse cassandra-stop
-
-
Use the appropriate method to install the new product version on a supported platform:
-
Install the new product version using the same installation type that is on the system, otherwise problems might result.
-
To configure the new version:
-
Compare changes in the new configuration files with the backup configuration files after the upgrade but before restarting, remove deprecated settings, and update any new settings if required.
You must use the new configuration files that are generated from the upgrade installation. Copy any parameters needed from your old configuration files into these new files.
Do not replace the newly-generated configuration files with the old files.
Use the DSE yaml_diff tool to compare backup YAML files with the upgraded YAML files:
$ cd /usr/share/dse/tools/yamls $ ./yaml_diff path/to/yaml-file-old path/to/yaml-file-new
Results
... CHANGES ========= authenticator: - AllowAllAuthenticator + com.datastax.bdp.cassandra.auth.DseAuthenticator authorizer: - AllowAllAuthorizer + com.datastax.bdp.cassandra.auth.DseAuthorizer roles_validity_in_ms: - 2000 + 120000 ...
cassandra.yaml
changesGeneral deprecated settings
Deprecated
cassandra.yaml
settings:Remove these options:
concurrent_counter_writes concurrent_materialized_view_writes concurrent_reads concurrent_writes max_client_wait_time_ms max_threads request_scheduler request_scheduler_options rpc_port rpc_server_type start_rpc thrift_framed_transport_size_in_mb
RPC settings
Deprecated
cassandra.yaml
settings:rpc_address rpc_broadcast_address
Replacement settings:
native_transport_address native_transport_broadcast_address
Memtable settings
Deprecated
cassandra.yaml
settings:memtable_heap_space_in_mb memtable_offheap_space_in_mb
Replacement setting:
memtable_space_in_mb
Changed setting:
memtable_allocation_type: offheap_objects
User-defined function(UDF) settings
Deprecated
cassandra.yaml
settings:user_defined_function_warn_timeout user_defined_function_fail_timeout
Replacement settings:
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 `
Settings are in microseconds. The new timeouts are not equivalent to the deprecated settings.
Internode encryptions settings
Deprecated
cassandra.yaml
setting:server_encryption_options: store_type: JKS
Replacement settings:
server_encryption_options: keystore_type: JKS truststore_type: JKS
Valid type options are
JKS
,JCEKS
,PKCS11
, orPKCS12
forkeystore_type
, andJKS
,JCEKS
, orPKCS12
fortruststore_type
.For security reasons, DSE 6.8+ only allows the TLS encryption option protocol.
server_encryption_options: ... protocol: TLS
See Oracle’s 8u31 Update Release Notes - New Features and Changes for details.
Client-to-node encryption settings
Deprecated
cassandra.yaml
settings:client_encryption_options: store_type: JKS Replacement settings: client_encryption_options: keystore_type: JKS truststore_type: JKS
Valid type options are
JKS
,JCEKS
,PKCS11
, orPKCS12
forkeystore_type
, andJKS
,JCEKS
, orPKCS12
fortruststore_type
.For security reasons, DSE 6.8+ only allows the TLS encryption option protocol:
client_encryption_options: ... protocol: TLS
See Oracle’s 8u31 Update Release Notes - New Features and Changes for details.
Credential cache settings
Deprecated
cassandra.yaml
settings:Remove these options: credentials_validity_in_ms credentials_update_interval_in_ms
Caches are optimized without those settings.
dse.yaml
changes Spark resource and encryption optionsDeprecated
dse.yaml
setting:spark_ui_options: server_encryption_options: store_type: JKS
Replacement settings:
spark_ui_options_options: server_encrption_options: keystore_type: JKS truststore_type: JKS
Valid type options are
JKS
,JCEKS
,PKCS11
, orPKCS12
forkeystore_type
, andJKS
,JCEKS
, orPKCS12
fortruststore_type
.DSE Search node changes:
Deprecated
dse.yaml
settings:Remove these options:
cql_solr_query_executor_threads enable_back_pressure_adaptive_nrt_commit max_solr_concurrency_per_core solr_indexing_error_log_options
DSE 6.x does not start with those options present.
-
-
When upgrading DSE to versions earlier than 5.1.16, 6.0.8, or 6.7.4 inclusive, if any tables are using DSE Tiered Storage, remove all
txn_compaction
log files from second-level tiers and lower. For example, given the followingdse.yaml
configuration, removetxn_compaction
log files from/mnt2
and/mnt3
directories:tiered_storage_options: strategy1: tiers: - paths: - /mnt1 - paths: - /mnt2 - paths: - /mnt3
The following example removes the files using the
find
command:find /mnt2 -name "*_txn_compaction_*.log" -type f -delete && find /mnt3 -name "*_txn_compaction_*.log" -type f -delete
Failure to complete this step may result in data loss.
-
Remove any previously installed JTS JAR files from the CLASSPATHS in your DSE installation. JTS (Java Topology Suite) is distributed with DSE 6.7.
-
Start the node.
-
$ sudo service dse start
-
$ installation_dir/bin/dse cassandra
-
-
Verify that the upgraded datacenter names match the datacenter names in the keyspace schema definition:
-
Get the node’s datacenter name:
$ nodetool status | grep "Datacenter"
Results
Datacenter: datacenter-name
-
Verify that the node’s datacenter name matches the datacenter name for a keyspace:
$ cqlsh --execute "DESCRIBE KEYSPACE keyspace-name;" | grep "replication" CREATE KEYSPACE keyspace-name WITH replication = {'class': 'NetworkTopologyStrategy, 'datacenter-name': '3'};
-
-
Review the logs for warnings, errors, and exceptions:
$ grep -w 'WARNING\|ERROR\|exception' /var/log/cassandra/*.log
Warnings, errors, and exceptions are frequently found in the logs when starting an upgraded node. Some of these log entries are informational to help you execute specific upgrade-related steps. If you find unexpected warnings, errors, or exceptions, contact DataStax Support.
You will configure non-standard log locations in
dse-env.sh
.Package installations
/etc/dse/dse-env.sh
Tarball installations
<installation_location>/bin/dse-env.sh
-
Repeat the upgrade process on each node in the cluster following the recommended Upgrade order.
-
After the entire cluster upgrade is complete: upgrade the SSTables on one node at a time or, when using racks, one rack at a time.
Failure to upgrade SSTables when required results in a significant performance impact and increased disk usage and possible data loss. Upgrading is not complete until the SSTables are upgraded.
$ nodetool upgradesstables
Use the
--jobs
option to set the number of SSTables that upgrade simultaneously. The default setting is2
, which minimizes impact on the cluster. Set to0
to use all available compaction threads. DataStax recommends running theupgradesstables
command on one node at a time or, when using racks, one rack at a time.You can run the
upgradesstables
command before all the nodes are upgraded as long as you run the command on only one node at a time or, when using racks, one rack at a time. Runningupgradesstables
on too many nodes at once degrades performance.
General post-upgrade steps
After all nodes are upgraded:
-
If you use the OpsCenter Repair Service, turn it on.
-
If you encounter serialization-header errors, stop the node and repair them using the
sstablescrub -e
option:$ sstablescrub -e fix-only keyspace table
For more details on serialization-header errors and repairs, see DSE 5.0 SSTables with UDTs corrupted after upgrading to DSE 5.1, 6.0, or 6.7.
-
Starting with DSE 6.7, the system automatically enables DSE Metrics Collector. This is a diagnostics information aggregator that helps facilitate DSE problem resolution. For more information on the DSE Metrics Collector, or to disable metrics collection, see DataStax Enterprise Metrics Collector.
Post-upgrade steps for DSE Search nodes
For DSE Search nodes:
-
The system no longer uses appender
SolrValidationErrorAppender
and the loggerSolrValidationErrorLogger
which you may safely remove fromlogback.xml
. -
In contrast to earlier versions, DataStax recommends accepting the new default value of
1024
forback_pressure_threshold_per_core
indse.yaml
. See Tuning Search for maximum indexing throughput. -
Do a full reindex of all encrypted search indexes on each node in your cluster:
$ dsetool reload_core keyspace_name.table_name distributed=false reindex=true deleteAll=true
Plan sufficient time after the upgrade is complete to reindex with
deleteAll=true
on all nodes.
Post-upgrade steps for DSE Analytics nodes
For DSE Analytics nodes:
-
Check the replication factor for the
dse_analytics
keyspace, a new keyspace that stores all DSE Analytics internal system data. DataStax recommends setting the replication strategy toNetworkTopologyStrategy
(NTS) with a replication factor of at least 3 in each of DSE Analytics datacenters. If a datacenter has more nodes, consider setting a larger replication factor.To check the replication strategy and factor:
$ cqlsh --execute "DESCRIBE KEYSPACE dse_analytics;" | grep "replication" CREATE KEYSPACE keyspace-name WITH replication = {'class': 'replication-strategy, 'datacenter-name': 'replication-factor'};
-
If you are using Spark SQL tables, migrate them to the new Hive metastore format:
$ dse client-tool spark metastore migrate --from 5.1.0 --to 6.9.0
-
Spark Jobserver uses DSE custom version 0.8.0.56. Ensure that applications use the compatible Spark Jobserver API from the DataStax repository.
Warning messages during and after upgrade
You can ignore some log messages that occur during and after an upgrade:
-
Some
gremlin_server
properties in earlier versions of DSE are no longer required. If properties exist in thedse.yaml
file after upgrading, logs display warnings similar to: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 {product-short} to configure these.
You can ignore these warnings or modify
dse.yaml
so that only the requiredgremlin_server
properties are present.
Locking DSE package versions
If you have upgraded a DSE package installation, then you can prevent future unintended upgrades.
RHEL yum
installations
To hold a package at the current version:
-
Install
yum-versionlock
(one-time operation):sudo yum install yum-versionlock
-
Lock the current DSE version:
sudo yum versionlock dse-*
To clear the version lock and enable upgrades:
sudo yum versionlock clear
For details, see the versionlock
command.
Debian apt-get
installations
To hold a package at the current version:
sudo apt-mark hold dse-*
To remove the version hold:
sudo apt-mark unhold dse-*
For details, see the apt-mark
command.