Работа со встроенной базой данных Cassandra
Встроенный сервис Cassandra, используемый сервером AggreGate, достаточен для широкого круга случаев, но для исключительно больших или специализированных систем могут потребоваться уникальные конфигурации базы данных.
Полное сравнение с внешней Cassandra см. в разделе Работа с внешней базой данных Cassandra.
Если вы обновляете Cassandra с версии 3.x до 5.x, см. Руководство по миграции данных.
Модель конфигурации Cassandra во встроенном режиме
Встроенная Cassandra использует модель конфигурации, отличную от окружения внешней Cassandra.
В встроенном режиме AggreGate предоставляет поддержку двум вариантам конфигурации:
(1) встроенная Cassandra с внутренними/стандартными настройками,
(2) встроенная Cassandra с внешней тонкой настройкой YAML.
Оба варианта выбираются на каждом узле AggreGate на вкладке Конфигурация сервера / Хранилище / NoSQL хранилище с помощью свойств Использовать встроенную службу и Использовать внешний файл конфигурации YAML (включает настройку через cassandra.yaml, применимо только когда встроенная служба включена). Подробности см. раздел ниже.
Полный список полей NoSQL хранилища и рекомендуемых значений (включая Адрес сервера базы данных и Порт против «Сеeds/Contact Points», «Коэффициент репликации» и другие параметры настройки) см. в описании NoSQL хранилища.
По умолчанию сервер AggreGate настраивает встроенную службу Cassandra, применяя databaseCassandra* параметров из собственного файла конфигурации (server.xml по умолчанию), а также определённые внутренние значения по умолчанию.
Файл cassandra.yaml поставляется вместе с сервером AggreGate (расположен в директории для установки AggreGate) и предназначен исключительно для использования со встроенным сервером Cassandra. Его цель — предоставить администраторам дополнительную гибкость, выходящую за рамки встроенной модели конфигурации.
Включение cassandra.yaml не превращает встроенную СУБД в внешнее или высокопроизводительное окружение Cassandra.
Использование cassandra.yaml в встроенном режиме по-прежнему ограничено работой с одним узлом, управляемым AggreGate. Для масштабируемости в производственной среде, кластеризации, отказоустойчивости и управления выделенными ресурсами необходимо использовать отдельно установленный внешний кластер Cassandra.
Как вычисляются параметры
Когда включен встроенный режим:
По умолчанию AggreGate Server считывает настройки, связанные с Cassandra, из
databaseCassandra*параметров вserver.xml.Настройки сети, хранилища, имени кластера, портов и памяти берутся из конфигурации сервера.
Если
cassandra.yamlиспользуется для настройки встроенной версии, настройки сервера Cassandra берутся из этого файла.
Рекомендации по редактированию cassandra.yaml
Встроенный движок Cassandra интегрирован с системой управления жизненным циклом AggreGate Server.
Изменение параметров конфигурации Cassandra может стать причиной:
несоответствие идентификатора узла
неправильную привязку к сети
сбой запуска
проблем с членством в Кластере
несоответствий схем файлов данных
Если cassandra.yaml используется для настройки встроенной Cassandra, изменения конфигурации следует вносить осторожно и проверять после перезапуска.
Сводка
Режим развертывания | Активная конфигурация | Игнорируемая конфигурация |
|---|---|---|
Встроенная Cassandra | По умолчанию (внешний YAML отключен): | По умолчанию (внешний YAML отключен): |
Это обеспечивает согласованное поведение узла и надежную работу службы встроенной СУБД.
Включение вывода журнала во внешний файл
Чтобы вывести журналы встроенной Cassandra во внешний файл:
Откройте файл настроек журналирования, который обычно представляет собой
logging.xmlв корневом каталоге вашей установки AggreGate.В секции
<Loggers>...</Loggers>удалите следующие строки:<Logger name="org.apache.cassandra.cql3.QueryProcessor" level="off"/>
<Logger name="org.apache.cassandra.db.Memtable" level="off"/>
<Logger name="org.apache.cassandra.io.sstable.SSTableDeletingTask" level="off"/>В секции
<Loggers>...</Loggers>добавьте следующие строки:<Logger name="org.apache.cassandra" level="info" additivity="false">
<AppenderRef ref="cassandra"/>
</Logger>В секции
<Appenders>...</Appenders>добавьте следующие строки:<File name="cassandra" fileName="logs/cassandra.log" append="false">
<ThresholdFilter level="debug"/>
<PatternLayout pattern="%d{dd.MM.yyyy HH:mm:ss,SSS} %-5p %-25c %m - [%t] %C.%M (%F:%L)%n%throwable{full}"/>
</File>Опционально настройте ротацию файлов журнала, добавив Log4J Rolling File Appender в файл
logging.xml.
Использование cassandra.yaml для настройки Embedded Cassandra
Файл cassandra.yaml Файл в AggreGate представляет собой модифицированную копию файла конфигурации автономной Cassandra по умолчанию.
Все изменения сопровождаются заголовком комментария, например:
########################################################################################################################
NOTE
########################################################################################################################
This parameter was changed from default 'true' to 'false' according to internal config
########################################################################################################################Файл расположен в директории для установки сервера AggreGate.
Дистрибутив AggreGate также содержит файл резервной копии с именем cassandra.default.yaml , в котором сохранены все исходные значения. Этот файл не используется AggreGate и может служить точкой отката в случае сбоя конфигурации.
Не следует изменять имя кластера. Однако, если это неизбежно, можно добавить следующие опции JVM в файл ag_server.vmoptions (или в другой соответствующий файл):
-Dcassandra.ignore_rack=true
-Dcassandra.ignore_dc=trueЭто предотвращает сбой запуска сервера когда метаданные кластера не совпадают.
Рекомендации по подключению и настройке отдельно развернутого экземпляра или кластера Cassandra см. в разделе Работа с внешней базой данных Cassandra.
Как включить конфигурацию из cassandra.yaml
Чтобы настроить встроенную Cassandra с помощью файла cassandra.yaml Файл:
Установите флаг «Использовать внешний YAML-файл конфигурации» на вкладке «Конфигурация сервера» / вкладке «Хранение» / подвкладке «NoSQL хранилище» и перезапустите сервер AggreGate.
Когда эта опция включена:
Встроенная служба Cassandra осуществляет чтение конфигурации из файла
cassandra.yaml, расположенного в директории для установки сервера AggreGate.Параметры
databaseCassandra*параметры вserver.xmlигнорируются.
Обратите внимание, что переключение источников конфигурации может вызвать проблемы с существующей базой данных. Например, если cassandra.yaml содержит другое значение для параметра cluster_name , сервер может не запуститься.
Этот механизм позволяет точно настроить конфигурацию встроенной Cassandra.
Он не преобразует встроенное окружение во внешний или многоузловой экземпляр Cassandra.
Устранение неполадок встроенной Cassandra с помощью Nodetool
nodetool — это встроенный инструмент Cassandra, предназначенный для получения различной аналитической информации с узлов Cassandra. Он может быть чрезвычайно полезен при поиске проблем с производительностью.
Чтобы использовать nodetool со встроенной службой Cassandra AggreGate:
Загрузите пакет установки Cassandra, совместимый с версией Cassandra, входящей в состав вашей установки AggreGate (Cassandra 3.x для AG 6.3, Cassandra 5.x для AG 6.4 и более поздних версий), и распакуйте его в любую папку.
Убедитесь, что сервер AggreGate работает с включенной встроенной службой Cassandra.
Убедитесь, что в вашей переменной среде установлен подходящий Java Runtime
JAVA_HOMEпеременной среды или соответствующийjavaисполняемый файл вPATH. Вы можете проверить наличие последней переменной, выполнивjava -versionКомандаПерейдите в разархивированный
bin/Директория и выполните следующую команду:
$ ./nodetool --port 11111 statusПараметр --port относится к встроенному порту JMX Cassandra. Если вы запускаете nodetool с другого компьютера, вам также необходимо указать --host опцию с IP-адресом или именем хоста AggreGate.
Результат выполнения команды должен выглядеть следующим образом:
Datacenter: datacenter1
========================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 127.0.0.1 1.35 MiB 256 100,0% 38512adb-b868-4ea1-9593-bf3b9950e687 rack1Основные информационные команды nodetool - status, version и info. Существует множество других полезных команд, описанных в документации и в самом инструменте (просто запустите его без опций или с командой help Команда).
Непосредственный запрос к встроенной Cassandra с помощью CQLSH
Вы можете использовать утилиту cqlsh утилиту из дистрибутива Cassandra, совместимого с версией Cassandra, входящей в состав вашей установки AggreGate.
Убедитесь, что сервер AggreGate работает с включенной встроенной Cassandra.
Получите
cqlshинструмент из дистрибутива Cassandra, соответствующего вашей версии встроенной Cassandra (3.x для AggreGate 6.3, 5.x для AggreGate 6.4 и более поздних версий).Выполните:
$ ./cqlsh localhost 9042Если включена аутентификация:
$ ./cqlsh -u <username> -p <password>После подключения вы должны увидеть вывод, похожий на:
Connected to <cluster_name> at 127.0.0.1:9042.
cqlsh>Чтобы протестировать простой запрос:
cqlsh> SELECT count(*) FROM aggregate.ag_events;![]() |
|
Для получения более подробных подробностей cqlsh см. эту страницу документации. Синтаксис CQL описан здесь.
Was this page helpful?
