Installing Apache Cassandra on SUSE Linux needs a clear package source because Cassandra is not normally installed from the default openSUSE or SUSE Linux Enterprise Server repositories. The Apache project publishes RPM packages, and zypper can use that repository when the host has a supported Java runtime and Python runtime for cqlsh.

The Apache RPM repository uses a release-series path rather than a SUSE-native repository name. The package installs the Cassandra service and command-line tools in the standard RPM layout, so the same host can be checked through systemd, nodetool, and cqlsh after installation.

Use these steps for a local single-node install or a package-ready host before cluster configuration. Production nodes still need seed, listen address, rack, datacenter, security, and storage planning before client traffic is pointed at the node.

Steps to install Apache Cassandra on SUSE Linux with zypper:

  1. Open a terminal with sudo privileges.
  2. Install the Java and Python prerequisites.
    $ sudo zypper install java-17-openjdk-headless python311

    The Cassandra 5.0 RPM accepts Java 11 or Java 17. python311 keeps cqlsh inside Apache's documented Python 3.8-3.11 support range; on registered SLES hosts, use the equivalent enabled Python 3 package if the exact package name differs.

  3. Confirm the Java runtime.
    $ java -version
    openjdk version "17.0.17" 2025-10-21
    OpenJDK Runtime Environment (build 17.0.17+10-suse)
    OpenJDK 64-Bit Server VM (build 17.0.17+10-suse, mixed mode)
  4. Create the Apache Cassandra repository file.
    $ sudo tee /etc/zypp/repos.d/apache-cassandra.repo >/dev/null <<'EOF'
    [apache-cassandra]
    name=Apache Cassandra
    baseurl=https://redhat.cassandra.apache.org/50x/
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://downloads.apache.org/cassandra/KEYS
    EOF

    The 50x path tracks the Cassandra 5.0 RPM line. Use another Apache release-series path only when the host must stay on that Cassandra series.

  5. Refresh only the Cassandra repository metadata.
    $ sudo zypper --gpg-auto-import-keys refresh apache-cassandra
    Retrieving repository 'Apache Cassandra' metadata [done]
    Building repository 'Apache Cassandra' cache [done]
    Specified repositories have been refreshed.
  6. Install the Cassandra package.
    $ sudo zypper install cassandra
    Loading repository data...
    Reading installed packages...
    Resolving package dependencies...
    
    The following NEW package is going to be installed:
      cassandra
    ##### snipped #####
    Installing: cassandra-5.0.8-1.noarch [done]

    The RPM layout keeps Cassandra configuration under /etc/cassandra, logs under /var/log/cassandra, and data under /var/lib/cassandra.

  7. Verify the installed package.
    $ rpm -q cassandra
    cassandra-5.0.8-1.noarch
  8. Reload systemd unit metadata.
    $ sudo systemctl daemon-reload

    Apache's RPM notes that systemd-based distributions may need a daemon reload before the cassandra unit is visible.

  9. Enable Cassandra at boot and start it now.
    $ sudo systemctl enable --now cassandra
    Created symlink /etc/systemd/system/multi-user.target.wants/cassandra.service -> /usr/lib/systemd/system/cassandra.service.

    First startup can take time while Cassandra creates its local system keyspaces.
    Related: How to check Apache Cassandra service status

  10. Confirm that the service is active.
    $ sudo systemctl is-active cassandra
    active

    If the service does not become active, check /var/log/cassandra/system.log and the service journal before retrying.
    Related: How to check Apache Cassandra service status

  11. Check the local Cassandra ring state.
    $ nodetool status
    Datacenter: datacenter1
    =======================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address    Load        Tokens  Owns (effective)  Host ID                               Rack
    UN  127.0.0.1  126.44 KiB  16      100.0%            4d79f2db-21a5-41d5-a8fd-76d25560c8ac  rack1

    UN means the local node is up and normal from Cassandra's ring view.
    Related: How to check Apache Cassandra cluster status with nodetool

  12. Connect to the local native transport port with cqlsh.
    $ cqlsh 127.0.0.1 9042 -e "SHOW HOST"
    Connected to Test Cluster at 127.0.0.1:9042

    The default package listens for local CQL clients on 127.0.0.1:9042 until Cassandra networking is configured for the intended node or cluster.
    Related: How to connect to Apache Cassandra with cqlsh