diff --git a/storage/cassandra/image/Dockerfile b/storage/cassandra/image/Dockerfile index 91a93480..248db00d 100644 --- a/storage/cassandra/image/Dockerfile +++ b/storage/cassandra/image/Dockerfile @@ -20,8 +20,7 @@ ENV DI_VERSION="1.1.1" DI_SHA="dec8167091671df0dd3748a8938102479db5fffc" RUN mv /java.list /etc/apt/sources.list.d/java.list \ && apt-get update \ - && apt-get -qq -y install --no-install-recommends procps openjdk-8-jre-headless libjemalloc1 curl \ - localepurge \ + && apt-get -qq -y --force-yes install --no-install-recommends procps openjdk-8-jre-headless libjemalloc1 curl localepurge \ && curl -L https://github.com/Yelp/dumb-init/releases/download/v${DI_VERSION}/dumb-init_${DI_VERSION}_amd64 > /sbin/dumb-init \ && echo "$DI_SHA /sbin/dumb-init" | sha1sum -c - \ && mv /cassandra.list /etc/apt/sources.list.d/cassandra.list \ @@ -31,11 +30,13 @@ RUN mv /java.list /etc/apt/sources.list.d/java.list \ && gpg --export --armor 2B5C1B00 | apt-key add - \ && gpg --keyserver pgp.mit.edu --recv-keys 0353B12C \ && gpg --export --armor 0353B12C | apt-key add - \ + && gpg --keyserver pool.sks-keyservers.net --recv-keys A278B781FE4B2BDA \ + && gpg --export --armor A278B781FE4B2BDA | apt-key add - \ && apt-get update \ - && apt-get -qq -y install --no-install-recommends curl cassandra localepurge \ + && apt-get -qq -y --force-yes install --no-install-recommends curl cassandra localepurge \ && chmod a+rx /run.sh /sbin/dumb-init /ready-probe.sh \ && mkdir -p /cassandra_data/data \ - && mv /logback.xml /cassandra.yaml /etc/cassandra/ \ + && mv /logback.xml /cassandra.yaml /jvm.options /etc/cassandra/ \ # Not able to run as cassandra until https://github.com/kubernetes/kubernetes/issues/2630 is resolved # && chown -R cassandra: /etc/cassandra /cassandra_data /run.sh /kubernetes-cassandra.jar \ @@ -61,7 +62,6 @@ RUN mv /java.list /etc/apt/sources.list.d/java.list \ /usr/share/man/ \ /tmp/* - VOLUME ["/cassandra_data"] # 7000: intra-node communication diff --git a/storage/cassandra/image/files/cassandra.list b/storage/cassandra/image/files/cassandra.list index c663429f..c2f5cd12 100644 --- a/storage/cassandra/image/files/cassandra.list +++ b/storage/cassandra/image/files/cassandra.list @@ -1,2 +1,2 @@ -deb http://www.apache.org/dist/cassandra/debian 37x main -deb-src http://www.apache.org/dist/cassandra/debian 37x main +deb http://www.apache.org/dist/cassandra/debian 39x main +deb-src http://www.apache.org/dist/cassandra/debian 39x main diff --git a/storage/cassandra/image/files/jvm.options b/storage/cassandra/image/files/jvm.options new file mode 100644 index 00000000..6568dc0d --- /dev/null +++ b/storage/cassandra/image/files/jvm.options @@ -0,0 +1,240 @@ +########################################################################### +# jvm.options # +# # +# - all flags defined here will be used by cassandra to startup the JVM # +# - one flag should be specified per line # +# - lines that do not start with '-' will be ignored # +# - only static flags are accepted (no variables or parameters) # +# - dynamic flags will be appended to these on cassandra-env # +########################################################################### + +###################### +# STARTUP PARAMETERS # +###################### + +# Uncomment any of the following properties to enable specific startup parameters + +# In a multi-instance deployment, multiple Cassandra instances will independently assume that all +# CPU processors are available to it. This setting allows you to specify a smaller set of processors +# and perhaps have affinity. +#-Dcassandra.available_processors=number_of_processors + +# The directory location of the cassandra.yaml file. +#-Dcassandra.config=directory + +# Sets the initial partitioner token for a node the first time the node is started. +#-Dcassandra.initial_token=token + +# Set to false to start Cassandra on a node but not have the node join the cluster. +#-Dcassandra.join_ring=true|false + +# Set to false to clear all gossip state for the node on restart. Use when you have changed node +# information in cassandra.yaml (such as listen_address). +#-Dcassandra.load_ring_state=true|false + +# Enable pluggable metrics reporter. See Pluggable metrics reporting in Cassandra 2.0.2. +#-Dcassandra.metricsReporterConfigFile=file + +# Set the port on which the CQL native transport listens for clients. (Default: 9042) +#-Dcassandra.native_transport_port=port + +# Overrides the partitioner. (Default: org.apache.cassandra.dht.Murmur3Partitioner) +#-Dcassandra.partitioner=partitioner + +# To replace a node that has died, restart a new node in its place specifying the address of the +# dead node. The new node must not have any data in its data directory, that is, it must be in the +# same state as before bootstrapping. +#-Dcassandra.replace_address=listen_address or broadcast_address of dead node + +# Allow restoring specific tables from an archived commit log. +#-Dcassandra.replayList=table + +# Allows overriding of the default RING_DELAY (1000ms), which is the amount of time a node waits +# before joining the ring. +#-Dcassandra.ring_delay_ms=ms + +# Set the port for the Thrift RPC service, which is used for client connections. (Default: 9160) +#-Dcassandra.rpc_port=port + +# Set the SSL port for encrypted communication. (Default: 7001) +#-Dcassandra.ssl_storage_port=port + +# Enable or disable the native transport server. See start_native_transport in cassandra.yaml. +# cassandra.start_native_transport=true|false + +# Enable or disable the Thrift RPC server. (Default: true) +#-Dcassandra.start_rpc=true/false + +# Set the port for inter-node communication. (Default: 7000) +#-Dcassandra.storage_port=port + +# Set the default location for the trigger JARs. (Default: conf/triggers) +#-Dcassandra.triggers_dir=directory + +# For testing new compaction and compression strategies. It allows you to experiment with different +# strategies and benchmark write performance differences without affecting the production workload. +#-Dcassandra.write_survey=true + +# To disable configuration via JMX of auth caches (such as those for credentials, permissions and +# roles). This will mean those config options can only be set (persistently) in cassandra.yaml +# and will require a restart for new values to take effect. +#-Dcassandra.disable_auth_caches_remote_configuration=true + +######################## +# GENERAL JVM SETTINGS # +######################## + +# enable assertions. disabling this in production will give a modest +# performance benefit (around 5%). +-ea + +# enable thread priorities, primarily so we can give periodic tasks +# a lower priority to avoid interfering with client workload +-XX:+UseThreadPriorities + +# allows lowering thread priority without being root on linux - probably +# not necessary on Windows but doesn't harm anything. +# see http://tech.stolsvik.com/2010/01/linux-java-thread-priorities-workar +-XX:ThreadPriorityPolicy=42 + +# Enable heap-dump if there's an OOM +-XX:+HeapDumpOnOutOfMemoryError + +# Per-thread stack size. +-Xss256k + +# Larger interned string table, for gossip's benefit (CASSANDRA-6410) +-XX:StringTableSize=1000003 + +# Make sure all memory is faulted and zeroed on startup. +# This helps prevent soft faults in containers and makes +# transparent hugepage allocation more effective. +-XX:+AlwaysPreTouch + +# Disable biased locking as it does not benefit Cassandra. +-XX:-UseBiasedLocking + +# Enable thread-local allocation blocks and allow the JVM to automatically +# resize them at runtime. +-XX:+UseTLAB +-XX:+ResizeTLAB + +# http://www.evanjones.ca/jvm-mmap-pause.html +-XX:+PerfDisableSharedMem + +# Prefer binding to IPv4 network intefaces (when net.ipv6.bindv6only=1). See +# http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6342561 (short version: +# comment out this entry to enable IPv6 support). +-Djava.net.preferIPv4Stack=true + +### Debug options + +# uncomment to enable flight recorder +#-XX:+UnlockCommercialFeatures +#-XX:+FlightRecorder + +# uncomment to have Cassandra JVM listen for remote debuggers/profilers on port 1414 +#-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1414 + +# uncomment to have Cassandra JVM log internal method compilation (developers only) +#-XX:+UnlockDiagnosticVMOptions +#-XX:+LogCompilation + +################# +# HEAP SETTINGS # +################# + +# Heap size is automatically calculated by cassandra-env based on this +# formula: max(min(1/2 ram, 1024MB), min(1/4 ram, 8GB)) +# That is: +# - calculate 1/2 ram and cap to 1024MB +# - calculate 1/4 ram and cap to 8192MB +# - pick the max +# +# For production use you may wish to adjust this for your environment. +# If that's the case, uncomment the -Xmx and Xms options below to override the +# automatic calculation of JVM heap memory. +# +# It is recommended to set min (-Xms) and max (-Xmx) heap sizes to +# the same value to avoid stop-the-world GC pauses during resize, and +# so that we can lock the heap in memory on startup to prevent any +# of it from being swapped out. +#-Xms4G +#-Xmx4G + +# Young generation size is automatically calculated by cassandra-env +# based on this formula: min(100 * num_cores, 1/4 * heap size) +# +# The main trade-off for the young generation is that the larger it +# is, the longer GC pause times will be. The shorter it is, the more +# expensive GC will be (usually). +# +# It is not recommended to set the young generation size if using the +# G1 GC, since that will override the target pause-time goal. +# More info: http://www.oracle.com/technetwork/articles/java/g1gc-1984535.html +# +# The example below assumes a modern 8-core+ machine for decent +# times. If in doubt, and if you do not particularly want to tweak, go +# 100 MB per physical CPU core. +#-Xmn800M + +################# +# GC SETTINGS # +################# + +### CMS Settings + +#-XX:+UseParNewGC +#-XX:+UseConcMarkSweepGC +#-XX:+CMSParallelRemarkEnabled +#-XX:SurvivorRatio=8 +#-XX:MaxTenuringThreshold=1 +#-XX:CMSInitiatingOccupancyFraction=75 +#-XX:+UseCMSInitiatingOccupancyOnly +#-XX:CMSWaitDuration=10000 +#-XX:+CMSParallelInitialMarkEnabled +#-XX:+CMSEdenChunksRecordAlways +# some JVMs will fill up their heap when accessed via JMX, see CASSANDRA-6541 +#-XX:+CMSClassUnloadingEnabled + +### G1 Settings (experimental, comment previous section and uncomment section below to enable) + +## Use the Hotspot garbage-first collector. +-XX:+UseG1GC +# +## Have the JVM do less remembered set work during STW, instead +## preferring concurrent GC. Reduces p99.9 latency. +-XX:G1RSetUpdatingPauseTimePercent=5 +# +## Main G1GC tunable: lowering the pause target will lower throughput and vise versa. +## 200ms is the JVM default and lowest viable setting +## 1000ms increases throughput. Keep it smaller than the timeouts in cassandra.yaml. +#-XX:MaxGCPauseMillis=500 + +## Optional G1 Settings + +# Save CPU time on large (>= 16GB) heaps by delaying region scanning +# until the heap is 70% full. The default in Hotspot 8u40 is 40%. +#-XX:InitiatingHeapOccupancyPercent=70 + +# For systems with > 8 cores, the default ParallelGCThreads is 5/8 the number of logical cores. +# Otherwise equal to the number of cores when 8 or less. +# Machines with > 10 cores should try setting these to <= full cores. +#-XX:ParallelGCThreads=16 +# By default, ConcGCThreads is 1/4 of ParallelGCThreads. +# Setting both to the same value can reduce STW durations. +#-XX:ConcGCThreads=16 + +### GC logging options -- uncomment to enable + +-XX:+PrintGCDetails +-XX:+PrintGCDateStamps +-XX:+PrintHeapAtGC +-XX:+PrintTenuringDistribution +-XX:+PrintGCApplicationStoppedTime +-XX:+PrintPromotionFailure +#-XX:PrintFLSStatistics=1 +#-Xloggc:/var/log/cassandra/gc.log +-XX:+UseGCLogFileRotation +-XX:NumberOfGCLogFiles=10 +-XX:GCLogFileSize=10M diff --git a/storage/cassandra/image/files/kubernetes-cassandra.jar b/storage/cassandra/image/files/kubernetes-cassandra.jar index ecbc8525..4c941513 100644 Binary files a/storage/cassandra/image/files/kubernetes-cassandra.jar and b/storage/cassandra/image/files/kubernetes-cassandra.jar differ diff --git a/storage/cassandra/image/files/run.sh b/storage/cassandra/image/files/run.sh index 53b79f40..6d057fc0 100644 --- a/storage/cassandra/image/files/run.sh +++ b/storage/cassandra/image/files/run.sh @@ -15,15 +15,15 @@ # limitations under the License. set -e -CONF_DIR=/etc/cassandra -CFG=$CONF_DIR/cassandra.yaml +CASSANDRA_CONF_DIR=/etc/cassandra +CASSANDRA_CFG=$CASSANDRA_CONF_DIR/cassandra.yaml # we are doing StatefulSet or just setting our seeds if [ -z "$CASSANDRA_SEEDS" ]; then HOSTNAME=$(hostname -f) fi -# The following vars relate to there counter parts in $CFG +# The following vars relate to there counter parts in $CASSANDRA_CFG # for instance rpc_address CASSANDRA_RPC_ADDRESS="${CASSANDRA_RPC_ADDRESS:-0.0.0.0}" CASSANDRA_NUM_TOKENS="${CASSANDRA_NUM_TOKENS:-32}" @@ -47,79 +47,125 @@ CASSANDRA_OPEN_JMX="${CASSANDRA_OPEN_JMX:-false}" # send GC to STDOUT CASSANDRA_GC_STDOUT="${CASSANDRA_GC_STDOUT:-false}" +echo Starting Cassandra on ${CASSANDRA_LISTEN_ADDRESS} +echo CASSANDRA_CONF_DIR ${CASSANDRA_CONF_DIR} +echo CASSANDRA_CFG ${CASSANDRA_CFG} +echo CASSANDRA_AUTO_BOOTSTRAP ${CASSANDRA_AUTO_BOOTSTRAP} +echo CASSANDRA_BROADCAST_ADDRESS ${CASSANDRA_BROADCAST_ADDRESS} +echo CASSANDRA_BROADCAST_RPC_ADDRESS ${CASSANDRA_BROADCAST_RPC_ADDRESS} +echo CASSANDRA_CLUSTER_NAME ${CASSANDRA_CLUSTER_NAME} +echo CASSANDRA_COMPACTION_THROUGHPUT_MB_PER_SEC ${CASSANDRA_COMPACTION_THROUGHPUT_MB_PER_SEC} +echo CASSANDRA_CONCURRENT_COMPACTORS ${CASSANDRA_CONCURRENT_COMPACTORS} +echo CASSANDRA_CONCURRENT_READS ${CASSANDRA_CONCURRENT_READS} +echo CASSANDRA_CONCURRENT_WRITES ${CASSANDRA_CONCURRENT_WRITES} +echo CASSANDRA_COUNTER_CACHE_SIZE_IN_MB ${CASSANDRA_COUNTER_CACHE_SIZE_IN_MB} +echo CASSANDRA_DC ${CASSANDRA_DC} +echo CASSANDRA_DISK_OPTIMIZATION_STRATEGY ${CASSANDRA_DISK_OPTIMIZATION_STRATEGY} +echo CASSANDRA_ENDPOINT_SNITCH ${CASSANDRA_ENDPOINT_SNITCH} +echo CASSANDRA_GC_WARN_THRESHOLD_IN_MS ${CASSANDRA_GC_WARN_THRESHOLD_IN_MS} +echo CASSANDRA_INTERNODE_COMPRESSION ${CASSANDRA_INTERNODE_COMPRESSION} +echo CASSANDRA_KEY_CACHE_SIZE_IN_MB ${CASSANDRA_KEY_CACHE_SIZE_IN_MB} +echo CASSANDRA_LISTEN_ADDRESS ${CASSANDRA_LISTEN_ADDRESS} +echo CASSANDRA_LISTEN_INTERFACE ${CASSANDRA_LISTEN_INTERFACE} +echo CASSANDRA_MEMTABLE_ALLOCATION_TYPE ${CASSANDRA_MEMTABLE_ALLOCATION_TYPE} +echo CASSANDRA_MEMTABLE_CLEANUP_THRESHOLD ${CASSANDRA_MEMTABLE_CLEANUP_THRESHOLD} +echo CASSANDRA_MEMTABLE_FLUSH_WRITERS ${CASSANDRA_MEMTABLE_FLUSH_WRITERS} +echo CASSANDRA_MIGRATION_WAIT ${CASSANDRA_MIGRATION_WAIT} +echo CASSANDRA_NUM_TOKENS ${CASSANDRA_NUM_TOKENS} +echo CASSANDRA_RACK ${CASSANDRA_RACK} +echo CASSANDRA_RING_DELAY ${CASSANDRA_RING_DELAY} +echo CASSANDRA_RPC_ADDRESS ${CASSANDRA_RPC_ADDRESS} +echo CASSANDRA_RPC_INTERFACE ${CASSANDRA_RPC_INTERFACE} +echo CASSANDRA_SEEDS ${CASSANDRA_SEEDS} +echo CASSANDRA_SEED_PROVIDER ${CASSANDRA_SEED_PROVIDER} + + # if DC and RACK are set, use GossipingPropertyFileSnitch if [[ $CASSANDRA_DC && $CASSANDRA_RACK ]]; then - echo "dc=$CASSANDRA_DC" > $CONF_DIR/cassandra-rackdc.properties - echo "rack=$CASSANDRA_RACK" >> $CONF_DIR/cassandra-rackdc.properties + echo "dc=$CASSANDRA_DC" > $CASSANDRA_CONF_DIR/cassandra-rackdc.properties + echo "rack=$CASSANDRA_RACK" >> $CASSANDRA_CONF_DIR/cassandra-rackdc.properties CASSANDRA_ENDPOINT_SNITCH="GossipingPropertyFileSnitch" fi +if [ -n "$CASSANDRA_MAX_HEAP" ]; then + sed -ri "s/^(#)?-Xmx[0-9]+.*/-Xmx$CASSANDRA_MAX_HEAP/" "$CASSANDRA_CONF_DIR/jvm.options" + sed -ri "s/^(#)?-Xms[0-9]+.*/-Xms$CASSANDRA_MAX_HEAP/" "$CASSANDRA_CONF_DIR/jvm.options" +fi + +if [ -n "$CASSANDRA_REPLACE_NODE" ]; then + echo "-Dcassandra.replace_address=$CASSANDRA_REPLACE_NODE/" >> "$CASSANDRA_CONF_DIR/jvm.options" +fi + +for rackdc in dc rack; do + var="CASSANDRA_${rackdc^^}" + val="${!var}" + if [ "$val" ]; then + sed -ri 's/^('"$rackdc"'=).*/\1 '"$val"'/' "$CASSANDRA_CONF_DIR/cassandra-rackdc.properties" + fi +done + # TODO what else needs to be modified for yaml in \ broadcast_address \ broadcast_rpc_address \ cluster_name \ + disk_optimization_strategy \ + endpoint_snitch \ listen_address \ num_tokens \ rpc_address \ - disk_optimization_strategy \ + start_rpc \ + key_cache_size_in_mb \ + concurrent_reads \ + concurrent_writes \ + memtable_cleanup_threshold \ + memtable_allocation_type \ + memtable_flush_writers \ + concurrent_compactors \ + compaction_throughput_mb_per_sec \ + counter_cache_size_in_mb \ + internode_compression \ endpoint_snitch \ -; do + gc_warn_threshold_in_ms \ + listen_interface \ + rpc_interface \ + ; do var="CASSANDRA_${yaml^^}" val="${!var}" if [ "$val" ]; then - sed -ri 's/^(# )?('"$yaml"':).*/\2 '"$val"'/' "$CFG" + sed -ri 's/^(# )?('"$yaml"':).*/\2 '"$val"'/' "$CASSANDRA_CFG" fi done -echo "auto_bootstrap: ${CASSANDRA_AUTO_BOOTSTRAP}" >> $CFG +echo "auto_bootstrap: ${CASSANDRA_AUTO_BOOTSTRAP}" >> $CASSANDRA_CFG # set the seed to itself. This is only for the first pod, otherwise # it will be able to get seeds from the seed provider if [[ $CASSANDRA_SEEDS == 'false' ]]; then - sed -ri 's/- seeds:.*/- seeds: "'"$POD_IP"'"/' $CFG + sed -ri 's/- seeds:.*/- seeds: "'"$POD_IP"'"/' $CASSANDRA_CFG else # if we have seeds set them. Probably StatefulSet - sed -ri 's/- seeds:.*/- seeds: "'"$CASSANDRA_SEEDS"'"/' $CFG + sed -ri 's/- seeds:.*/- seeds: "'"$CASSANDRA_SEEDS"'"/' $CASSANDRA_CFG fi -sed -ri 's/- class_name: SEED_PROVIDER/- class_name: '"$CASSANDRA_SEED_PROVIDER"'/' $CFG +sed -ri 's/- class_name: SEED_PROVIDER/- class_name: '"$CASSANDRA_SEED_PROVIDER"'/' $CASSANDRA_CFG # send gc to stdout if [[ $CASSANDRA_GC_STDOUT == 'true' ]]; then - sed -ri 's/ -Xloggc:\/var\/log\/cassandra\/gc\.log//' $CONF_DIR/cassandra-env.sh + sed -ri 's/ -Xloggc:\/var\/log\/cassandra\/gc\.log//' $CASSANDRA_CONF_DIR/cassandra-env.sh fi # enable RMI and JMX to work on one port -echo "JVM_OPTS=\"\$JVM_OPTS -Djava.rmi.server.hostname=$POD_IP\"" >> $CONF_DIR/cassandra-env.sh +echo "JVM_OPTS=\"\$JVM_OPTS -Djava.rmi.server.hostname=$POD_IP\"" >> $CASSANDRA_CONF_DIR/cassandra-env.sh # getting WARNING messages with Migration Service -echo "-Dcassandra.migration_task_wait_in_seconds=${CASSANDRA_MIGRATION_WAIT}" >> $CONF_DIR/jvm.options -echo "-Dcassandra.ring_delay_ms=${CASSANDRA_RING_DELAY}" >> $CONF_DIR/jvm.options - +echo "-Dcassandra.migration_task_wait_in_seconds=${CASSANDRA_MIGRATION_WAIT}" >> $CASSANDRA_CONF_DIR/jvm.options +echo "-Dcassandra.ring_delay_ms=${CASSANDRA_RING_DELAY}" >> $CASSANDRA_CONF_DIR/jvm.options if [[ $CASSANDRA_OPEN_JMX == 'true' ]]; then export LOCAL_JMX=no - sed -ri 's/ -Dcom\.sun\.management\.jmxremote\.authenticate=true/ -Dcom\.sun\.management\.jmxremote\.authenticate=false/' $CONF_DIR/cassandra-env.sh - sed -ri 's/ -Dcom\.sun\.management\.jmxremote\.password\.file=\/etc\/cassandra\/jmxremote\.password//' $CONF_DIR/cassandra-env.sh + sed -ri 's/ -Dcom\.sun\.management\.jmxremote\.authenticate=true/ -Dcom\.sun\.management\.jmxremote\.authenticate=false/' $CASSANDRA_CONF_DIR/cassandra-env.sh + sed -ri 's/ -Dcom\.sun\.management\.jmxremote\.password\.file=\/etc\/cassandra\/jmxremote\.password//' $CASSANDRA_CONF_DIR/cassandra-env.sh fi -echo Starting Cassandra on ${CASSANDRA_LISTEN_ADDRESS} -echo CASSANDRA_RPC_ADDRESS ${CASSANDRA_RPC_ADDRESS} -echo CASSANDRA_NUM_TOKENS ${CASSANDRA_NUM_TOKENS} -echo CASSANDRA_CLUSTER_NAME ${CASSANDRA_CLUSTER_NAME} -echo CASSANDRA_LISTEN_ADDRESS ${CASSANDRA_LISTEN_ADDRESS} -echo CASSANDRA_BROADCAST_ADDRESS ${CASSANDRA_BROADCAST_ADDRESS} -echo CASSANDRA_BROADCAST_RPC_ADDRESS ${CASSANDRA_BROADCAST_RPC_ADDRESS} -echo CASSANDRA_DISK_OPTIMIZATION_STRATEGY ${CASSANDRA_DISK_OPTIMIZATION_STRATEGY} -echo CASSANDRA_MIGRATION_WAIT ${CASSANDRA_MIGRATION_WAIT} -echo CASSANDRA_ENDPOINT_SNITCH ${CASSANDRA_ENDPOINT_SNITCH} -echo CASSANDRA_DC ${CASSANDRA_DC} -echo CASSANDRA_RACK ${CASSANDRA_RACK} -echo CASSANDRA_RING_DELAY ${CASSANDRA_RING_DELAY} -echo CASSANDRA_AUTO_BOOTSTRAP ${CASSANDRA_AUTO_BOOTSTRAP} -echo CASSANDRA_SEEDS ${CASSANDRA_SEEDS} -echo CASSANDRA_SEED_PROVIDER ${CASSANDRA_SEED_PROVIDER} -echo CASSANDRA_AUTO_BOOTSTRAP ${CASSANDRA_AUTO_BOOTSTRAP} - export CLASSPATH=/kubernetes-cassandra.jar cassandra -R -f diff --git a/storage/cassandra/java/pom.xml b/storage/cassandra/java/pom.xml index db751bd5..2a2d21f2 100644 --- a/storage/cassandra/java/pom.xml +++ b/storage/cassandra/java/pom.xml @@ -33,7 +33,7 @@ 1.1.3 - 3.7 + 3.9