Установка и настройка Cassandra

Добро пожаловать в подробное руководство по установке и настройке Apache Cassandra в НАЙС ОС. В этом документе мы рассмотрим процесс установки, настройки и управления Cassandra, включая настройку кластеров и репликации, оптимизацию запросов и данных, а также мониторинг и управление. Apache Cassandra — это распределенная система управления базами данных, разработанная для обеспечения высокой доступности и масштабируемости. Понимание её установки и конфигурации является важным навыком для системных администраторов и разработчиков.

Установка и конфигурация Cassandra

Установка Cassandra

Для установки Cassandra в НАЙС ОС используйте пакетный менеджер tdnf. Сначала добавьте репозиторий Cassandra и установите ключ GPG:

sudo rpm --import https://www.apache.org/dist/cassandra/KEYS

Создайте файл репозитория /etc/yum.repos.d/cassandra.repo со следующим содержимым:


[cassandra]
name=Apache Cassandra
baseurl=https://www.apache.org/dist/cassandra/redhat/311x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.apache.org/dist/cassandra/KEYS
  

Установите Cassandra с помощью следующей команды:

sudo tdnf install -y cassandra

Запуск и остановка Cassandra

После установки вы можете запустить Cassandra с помощью systemd:

sudo systemctl start cassandra

Для автоматического запуска Cassandra при загрузке системы выполните команду:

sudo systemctl enable cassandra

Для остановки Cassandra используйте команду:

sudo systemctl stop cassandra

Основная конфигурация Cassandra

Основной файл конфигурации Cassandra находится в /etc/cassandra/default.conf/cassandra.yaml. Рассмотрим основные параметры конфигурации:


cluster_name: 'Test Cluster'
num_tokens: 256
listen_address: localhost
rpc_address: localhost
endpoint_snitch: SimpleSnitch
  

Эти параметры определяют имя кластера, количество токенов, адреса для прослушивания и использование простого сниффера.

Настройка кластеров и репликации

Настройка кластера

Для настройки кластера Cassandra необходимо настроить несколько узлов. Рассмотрим основные шаги настройки кластера.

Редактирование конфигурации на каждом узле

Отредактируйте файл /etc/cassandra/default.conf/cassandra.yaml на каждом узле, указав уникальный listen_address и общий cluster_name:


cluster_name: 'Test Cluster'
listen_address: 
seeds: ","
  

Замените на IP-адрес соответствующего узла и и на IP-адреса начальных узлов (seed nodes).

Запуск Cassandra на каждом узле

Запустите Cassandra на каждом узле с помощью команды:

sudo systemctl start cassandra

Настройка репликации

Репликация в Cassandra позволяет обеспечить отказоустойчивость и доступность данных. Рассмотрим процесс настройки репликации.

Создание ключевого пространства

Подключитесь к Cassandra с помощью командной строки cqlsh и создайте ключевое пространство с настройками репликации:

cqlsh

CREATE KEYSPACE mykeyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};
  

Этот пример создает ключевое пространство mykeyspace с простой стратегией репликации и фактором репликации 3.

Оптимизация запросов и данных

Оптимизация запросов

Для оптимизации запросов в Cassandra используйте следующие рекомендации:

  • Создание индексов для часто используемых полей.
  • Использование материализованных представлений для ускорения сложных запросов.
  • Оптимизация запросов CQL для минимизации использования ресурсов.

Создание индекса

Для создания индекса используйте следующую команду:


CREATE INDEX ON mykeyspace.mytable (mycolumn);
  

Использование материализованных представлений

Для создания материализованного представления используйте следующую команду:


CREATE MATERIALIZED VIEW myview AS
  SELECT *
  FROM mykeyspace.mytable
  WHERE mycolumn IS NOT NULL
  PRIMARY KEY (mycolumn);
  

Оптимизация данных

Для оптимизации данных в Cassandra используйте следующие рекомендации:

  • Правильное проектирование схемы данных для минимизации дублирования и максимизации производительности.
  • Использование компакции для управления использованием дискового пространства и производительностью.
  • Настройка параметров хранения данных в cassandra.yaml для оптимизации использования ресурсов.

Настройка компакции

Отредактируйте файл /etc/cassandra/default.conf/cassandra.yaml для настройки параметров компакции:


compaction_throughput_mb_per_sec: 16
  

Этот параметр определяет пропускную способность компакции в мегабайтах в секунду.

Мониторинг и управление

Мониторинг Cassandra

Для мониторинга Cassandra используйте инструменты, такие как JMX и Prometheus. Рассмотрим пример настройки мониторинга с Prometheus и Grafana.

Настройка JMX Exporter

Скачайте JMX Exporter и настройте его для работы с Cassandra:

wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.16.1/jmx_prometheus_javaagent-0.16.1.jar

Создайте файл конфигурации JMX Exporter cassandra-jmx-exporter.yaml со следующим содержимым:


rules:
  - pattern: "org.apache.cassandra.metricsw+), name=(\w+)><>Value"
    name: cassandra_$1_$2
    type: GAUGE
  

Запустите Cassandra с JMX Exporter:

export JVM_OPTS="$JVM_OPTS -javaagent:/path/to/jmx_prometheus_javaagent-0.16.1.jar=1234:/path/to/cassandra-jmx-exporter.yaml"
sudo systemctl start cassandra

Настройка Prometheus

Добавьте конфигурацию для сбора метрик Cassandra в файл prometheus.yml:


scrape_configs:
  - job_name: 'cassandra'
    static_configs:
      - targets: ['localhost:1234']
  

Запустите Prometheus с обновленной конфигурацией:

prometheus --config.file=prometheus.yml

Настройка Grafana

Добавьте Prometheus как источник данных в Grafana и создайте дашборд для визуализации метрик Cassandra.

Управление Cassandra

Для управления Cassandra используйте утилиты командной строки, такие как nodetool и cqlsh.

Использование nodetool

nodetool предоставляет команды для управления и мониторинга узлов Cassandra. Рассмотрим основные команды.

Проверка состояния кластера

Для проверки состояния кластера используйте команду nodetool status:

nodetool status

Просмотр статистики

Для просмотра статистики использования ресурсов используйте команду nodetool info:

nodetool info

Очистка данных

Для очистки ненужных данных используйте команду nodetool cleanup:

nodetool cleanup

Заключение

Мы рассмотрели основные аспекты установки, настройки и управления Apache Cassandra в НАЙС ОС. Cassandra предоставляет мощные возможности для хранения и обработки данных в распределенных системах, а понимание её настройки и оптимизации является важным навыком для системных администраторов и разработчиков. Продолжайте изучать и применять эти знания на практике для создания стабильных и эффективных систем управления данными.