Table of Contents | ||||||
---|---|---|---|---|---|---|
|
Pre-requisites:
1. Ensure you have the syndeia-cloud-3.5
_cassandra_zookeeper_kafka_setup.zip
(or latest service pack) downloaded to your home directory from the download/license instructions sent out by our team.
Note: the .ZIP will pre-create a separate folder for its contents when extracted so there is no need to pre-create a separate folder for it.
2. Review Apache Cassandra's recommendations, ie: (Open|Oracle)JDK/JRE, memory, FS selection, params, etc. in Deployment.
...
1. Deploy a new standard RHEL/CentOS7, headless image on a physical or virtual machine (VM) or install from a Kixstart script or install from media manually.
2. Setup forward & reverse DNS records on your DNS server (consult your IT admin/sysadmin if required) and set the hostname and primary DNS suffix on the machine itself if necessary.
3. If using a firewall, ensure the following ports are accessible(consult your local network admin if required): TCP ports 7000, 7001, 7199, 9042, 9142, 9160 (for details on what each port is used for see http://cassandra.apache.org/doc/latest/faq/index.html#what-ports & https://docs.datastax.com/en/dse/5.1/dse-admin/datastax_enterprise/security/secFirewallPorts.html#secFirewallPorts__firewall_table).
Note: If required by your IT department, perform any other standard configuration (ie: create separate admin account, set timezone, date & time or set it to synchronize with an NTP server, disable root logins, change default SSH port, installing Fail2Ban, enabling & configuring local firewall, etc.)
...
Note1, the instructions on the Apache Cassandra download page currently mention using the legacy SysV command of sudo service start cassandra
to start the Cassandra service. While this works, you will notice this redirects to systemctl, which is the standard way to manage services on RHEL/CentOS7, ie: sudo systemctl start cassandra
Note2, Apache Cassandra doesn't include a native systemd .service file by default. While systemd will dynamically create one at runtime via its SysV compatibility module, you may wish to create one yourself to exercise better control over the various service parameters. For your convenience we have created a systemd cassandra.service
& a tmpfiles.d cassandra.conf
file (included in the syndeia-cloud-3.5
_cassandra_zookeeper_kafka_setup.zip
download). To use these, copy the tmpfiles.d cassandra.conf
to /etc/tmpfiles.d/
, run it, copy cassandra.service
to /etc/systemd/system/
, reload systemd's units, enable cassandra to start on boot and start the service, ie: sudo cp <tmpfiles.d_conf_file_download_dir>/cassandra.conf /etc/tmpfiles.d/. ; sudo systemd-tmpfiles --create --boot /etc/tmpfiles.d/cassandra.conf ; sudo cp
<service_file_download_dir>
/cassandra.service /etc/systemd/system/. && sudo systemctl daemon-reload && sudo systemctl enable cassandra && sudo systemctl start cassandra
5. Verify/configure the following settings in /etc/cassandra/conf/cassandra.yaml
( 'YourClusterName'
= a cluster name of your choice, ex: 'SC 3.5 Prod Cluster')
Code Block | ||||
---|---|---|---|---|
| ||||
cluster_name: 'YourClusterName' num_tokens: 256 authenticator: PasswordAuthenticator authorizer: CassandraAuthorizer seed_provider: - class_name: org.apache.cassandra.locator.SimpleSeedProvider parameters: - seeds: "127.0.0.1" listen_address: localhost rpc_address: localhost write_request_timeout_in_ms: 20000 batch_size_warn_threshold_in_kb: 250 batch_size_fail_threshold_in_kb: 300 |
Note1: FQDN = Fully Qualified Domain Name, ex: cassandra.mycompany.com
Note2: For a quick start, the above settings will get you up and running, however for any production deployment scenarios you may wish to implement other settings to enhance security (ie: changing the default cassandra
superuser password, enabling encryption, etc.) & performance (setting the data
& commitlog
directories, swap file settings, etc.). See Appendix B2.11 for more details.
If you frequently deal with large artifact sizes, and you see errors about it in the Cassandra log, you may need to bump batch_size_warn_threshold_in_kb
and batch_size_fail_threshold_in_kb
.
6. If any changes were made in the above step, type sudo systemctl restart cassandra
to restart the service. If the service successfully starts you should get the command prompt again. To confirm, verify "Active: active (running)" shows up in the output of systemctl status cassandra
:
...
10. Validate correct operation and create an archive image to use as a new base image if the node needs to be rebuilt or if you wish to create a cluster.
Before making the image you may wish to first stop and optionally disable the service temporarily to prevent auto-start on boot, ie: sudo systemctl disable cassandra
...
Multi-Node (Cluster) Setup Instructions
...
19. Follow "Initializing a multiple node cluster (single datacenter)" https://docs.datastax.com/en/archived/cassandra/3.0x/cassandra/initialize/initSingleDS.html
Note1: in the provided example cassandra.yaml
, rpc_address
is shown set to 0.0.0.0
, however leaving this blank will let it pick up the address automatically.
...