| = Installing Cassandra |
| :slug: Installing Cassandra |
| :tabs: |
| |
| These are the instructions for deploying the supported releases of |
| Apache Cassandra on Linux servers. |
| |
| Cassandra runs on a wide array of Linux distributions including (but not |
| limited to): |
| |
| * Ubuntu, most notably LTS releases 16.04 to 18.04 |
| * CentOS & RedHat Enterprise Linux (RHEL) including 6.6 to 7.7 |
| * Amazon Linux AMIs including 2016.09 through to Linux 2 |
| * Debian versions 8 & 9 |
| * SUSE Enterprise Linux 12 |
| |
| This is not an exhaustive list of operating system platforms, nor is it |
| prescriptive. However users will be well-advised to conduct exhaustive |
| tests of their own particularly for less-popular distributions of Linux. |
| Deploying on older versions is not recommended unless you have previous |
| experience with the older distribution in a production environment. |
| |
| == Prerequisites |
| |
| * Install the latest version of Java 8, either the |
| http://www.oracle.com/technetwork/java/javase/downloads/index.html[Oracle |
| Java Standard Edition 8] or http://openjdk.java.net/[OpenJDK 8]. To |
| verify that you have the correct version of java installed, type |
| `java -version`. |
| * For using cqlsh, the latest version of |
| https://www.python.org/downloads/[Python 2.7]. To verify |
| that you have the correct version of Python installed, type |
| `python --version`. |
| |
| == Choosing an installation method |
| |
| There are three methods of installing Cassandra that are common: |
| |
| * xref:getting_started/installing.adoc#docker[Docker image] |
| * xref:getting_started/installing.adoc#tarball[Tarball binary file] |
| * xref:getting_started/installing.adoc#package[Package installation (RPM, YUM)] |
| |
| If you are a current Docker user, installing a Docker image is simple. |
| You'll need to install Docker Desktop for Mac, Docker Desktop for Windows, |
| or have `docker` installed on Linux. |
| Pull the appropriate image and then start Cassandra with a run command. |
| |
| For most users, installing the binary tarball is also a simple choice. |
| The tarball unpacks all its contents into a single location with |
| binaries and configuration files located in their own subdirectories. |
| The most obvious attribute of the tarball installation is it does not |
| require `root` permissions and can be installed on any Linux |
| distribution. |
| |
| Packaged installations require `root` permissions, and are most appropriate for |
| production installs. |
| Install the RPM build on CentOS and RHEL-based distributions if you want to |
| install Cassandra using YUM. |
| Install the Debian build on Ubuntu and other Debian-based |
| distributions if you want to install Cassandra using APT. |
| Note that both the YUM and APT methods required `root` permissions and |
| will install the binaries and configuration files as the `cassandra` OS user. |
| |
| [#docker] |
| == Installing the docker image |
| |
| [arabic, start=1] |
| . Pull the docker image. For the latest image, use: |
| |
| [source, shell, subs="attributes+"] |
| ---- |
| include::example$BASH/docker_pull.sh[] |
| ---- |
| |
| This `docker pull` command will get the specified version of the official |
| Apache Cassandra image available from the https://hub.docker.com/_/cassandra[Dockerhub]. |
| |
| [arabic, start=2] |
| . Start Cassandra with a `docker run` command: |
| |
| [source, shell, subs="attributes+"] |
| ---- |
| include::example$BASH/docker_run.sh[] |
| ---- |
| |
| The `--name` option will be the name of the Cassandra cluster created. |
| |
| [arabic, start=3] |
| . Start the CQL shell, `cqlsh` to interact with the Cassandra node created: |
| |
| [source, shell, subs="attributes+"] |
| ---- |
| include::example$BASH/docker_cqlsh.sh[] |
| ---- |
| |
| [#tarball] |
| == Installing the binary tarball |
| |
| include::partial$java_version.adoc[] |
| |
| [arabic, start=2] |
| . Download the binary tarball from one of the mirrors on the |
| {cass_url}download/[Apache Cassandra Download] site. |
| For example, to download Cassandra {40_version}: |
| |
| [source,shell, subs="attributes+"] |
| ---- |
| include::example$BASH/curl_install.sh[] |
| ---- |
| |
| NOTE: The mirrors only host the latest versions of each major supported |
| release. To download an earlier version of Cassandra, visit the |
| http://archive.apache.org/dist/cassandra/[Apache Archives]. |
| |
| [arabic, start=3] |
| . OPTIONAL: Verify the integrity of the downloaded tarball using one of |
| the methods https://www.apache.org/dyn/closer.cgi#verify[here]. For |
| example, to verify the hash of the downloaded file using GPG: |
| |
| [{tabs}] |
| ==== |
| Command:: |
| + |
| -- |
| [source,shell, subs="attributes+"] |
| ---- |
| include::example$BASH/verify_gpg.sh[] |
| ---- |
| -- |
| |
| Result:: |
| + |
| -- |
| [source,plaintext] |
| ---- |
| include::example$RESULTS/verify_gpg.result[] |
| ---- |
| -- |
| ==== |
| |
| Compare the signature with the SHA256 file from the Downloads site: |
| |
| [{tabs}] |
| ==== |
| Command:: |
| + |
| -- |
| [source,shell, subs="attributes+"] |
| ---- |
| include::example$BASH/curl_verify_sha.sh[] |
| ---- |
| -- |
| |
| Result:: |
| + |
| -- |
| [source,plaintext] |
| ---- |
| include::example$RESULTS/curl_verify_sha.result[] |
| ---- |
| -- |
| ==== |
| |
| [arabic, start=4] |
| . Unpack the tarball: |
| |
| [source,shell, subs="attributes+"] |
| ---- |
| include::example$BASH/tarball.sh[] |
| ---- |
| |
| The files will be extracted to the `apache-cassandra-{cass-tag-3x}/` directory. |
| This is the tarball installation location. |
| |
| [arabic, start=5] |
| . Located in the tarball installation location are the directories for |
| the scripts, binaries, utilities, configuration, data and log files: |
| |
| [source,plaintext] |
| ---- |
| include::example$TEXT/tarball_install_dirs.txt[] |
| ---- |
| <1> location of the commands to run cassandra, cqlsh, nodetool, and SSTable tools |
| <2> location of cassandra.yaml and other configuration files |
| <3> location of the commit logs, hints, and SSTables |
| <4> location of system and debug logs |
| <5>location of cassandra-stress tool |
| |
| For information on how to configure your installation, see |
| {cass_url}doc/latest/getting_started/configuring.html[Configuring |
| Cassandra]. |
| |
| [arabic, start=6] |
| . Start Cassandra: |
| |
| [source,shell, subs="attributes+"] |
| ---- |
| include::example$BASH/start_tarball.sh[] |
| ---- |
| |
| NOTE: This will run Cassandra as the authenticated Linux user. |
| |
| include::partial$tail_syslog.adoc[] |
| You can monitor the progress of the startup with: |
| |
| [{tabs}] |
| ==== |
| Command:: |
| + |
| -- |
| [source,shell, subs="attributes+"] |
| ---- |
| include::example$BASH/tail_syslog.sh[] |
| ---- |
| -- |
| |
| Result:: |
| + |
| -- |
| Cassandra is ready when you see an entry like this in the `system.log`: |
| |
| [source,plaintext] |
| ---- |
| include::example$RESULTS/tail_syslog.result[] |
| ---- |
| -- |
| ==== |
| |
| include::partial$nodetool_and_cqlsh.adoc[] |
| |
| [#package] |
| == Installing the Debian packages |
| |
| include::partial$java_version.adoc[] |
| |
| [arabic, start=2] |
| . Add the Apache repository of Cassandra to the file |
| `cassandra.sources.list`. |
| include::partial$package_versions.adoc[] |
| |
| [source,shell, subs="attributes+"] |
| ---- |
| include::example$BASH/get_deb_package.sh[] |
| ---- |
| |
| [arabic, start=3] |
| . Add the Apache Cassandra repository keys to the list of trusted keys |
| on the server: |
| |
| [{tabs}] |
| ==== |
| Command:: |
| + |
| -- |
| [source,shell, subs="attributes+"] |
| ---- |
| include::example$BASH/add_repo_keys.sh[] |
| ---- |
| -- |
| |
| Result:: |
| + |
| -- |
| [source,plaintext] |
| ---- |
| include::example$RESULTS/add_repo_keys.result[] |
| ---- |
| -- |
| ==== |
| |
| [arabic, start=4] |
| . Update the package index from sources: |
| |
| [source,shell, subs="attributes+"] |
| ---- |
| include::example$BASH/apt-get_update.sh[] |
| ---- |
| |
| [arabic, start=5] |
| . Install Cassandra with APT: |
| |
| [source,shell, subs="attributes+"] |
| ---- |
| include::example$BASH/apt-get_cass.sh[] |
| ---- |
| |
| NOTE: For information on how to configure your installation, see |
| {cass_url}doc/latest/getting_started/configuring.html[Configuring |
| Cassandra]. |
| |
| include::partial$tail_syslog.adoc[] |
| |
| include::partial$nodetool_and_cqlsh_nobin.adoc[] |
| |
| == Installing the RPM packages |
| |
| include::partial$java_version.adoc[] |
| |
| [arabic, start=2] |
| . Add the Apache repository of Cassandra to the file |
| `/etc/yum.repos.d/cassandra.repo` (as the `root` user). |
| include::partial$package_versions.adoc[] |
| |
| [source,plaintext] |
| ---- |
| include::example$RESULTS/add_yum_repo.result[] |
| ---- |
| |
| [arabic, start=3] |
| . Update the package index from sources: |
| |
| [source,shell, subs="attributes+"] |
| ---- |
| include::example$BASH/yum_update.sh[] |
| ---- |
| |
| [arabic, start=4] |
| . Install Cassandra with YUM: |
| |
| [source,shell, subs="attributes+"] |
| ---- |
| include::example$BASH/yum_cass.sh[] |
| ---- |
| |
| NOTE: A new Linux user `cassandra` will get created as part of the |
| installation. The Cassandra service will also be run as this user. |
| |
| [arabic, start=5] |
| . Start the Cassandra service: |
| |
| [source,shell, subs="attributes+"] |
| ---- |
| include::example$BASH/yum_start.sh[] |
| ---- |
| |
| include::partial$tail_syslog.adoc[] |
| |
| include::partial$nodetool_and_cqlsh_nobin.adoc[] |
| |
| == Further installation info |
| |
| For help with installation issues, see the |
| {cass_url}doc/latest/troubleshooting/index.html[Troubleshooting] |
| section. |