Как да настроите Cassandra Cluster на множество възли

⚡ Умно обобщение

Cassandra Cluster групира множество възли, така че данните да са разпределени и никоя отделна машина да не съхранява всичко. Тази страница обяснява компонентите на клъстера, разделителя и Token Ring, предварителните изисквания, настройките за конфигурация, които свързват възлите, и как да се провери резултатът.

  • 🧩 Cluster Структура: Възлите образуват центрове за данни, а центровете за данни образуват клъстер, който функционира като една база данни.
  • 🎯 Роля на разделителя: Хешът на ключа на дяла създава токен, а токенът решава кой възел съхранява реда.
  • ???? Възли за семена: Семената са точките на контакт, с които новият възел първо клюкарства; те не са господари.
  • Ключови настройки: cluster_name, seeds, listen_address и rpc_address трябва да бъдат зададени последователно в cassandra.yaml.
  • ???? Ред за стартиране: Първо стартирайте семенните възли, един по един, след което съединете останалите възли.
  • Проверка: nodetool status трябва да изброява всеки възел като UN с приблизително еднаква собственост.

Структура Cassandra Cluster на множество възли

Какво е Cassandra Cluster?

A Cassandra клъстерът е една от черупките в цялото Cassandra база данни. The Cassandra Клъстерът съдържа множество различни слоеве от устройства за съхранение, като всеки слой съдържа другия.

Голяма организация като напр Amazon, Facebook и др. имат огромни количества данни за управление. Така че тези организации не могат да съхраняват толкова огромно количество данни на една машина. В такива случаи те използват бази данни като Cassandra с разпределена архитектура.

Тези организации съхраняват огромното количество данни на множество възли. Тези възли комуникират помежду си. За тази цел, Cassandra е създаден клъстер.

  • Cluster е основно група от възли, така че възлите да могат лесно да комуникират помежду си.
  • Координаторният възел е възелът, който получава клиентска заявка и комуникира с репликите от името на този клиент. Всеки възел може да действа като координатор за всяка заявка.

Разделител

Устройството за разделяне определя как данните трябва да бъдат разпределени в клъстера. Partitioner използва хеш функция за разпространение на данни в клъстера. За изчисляване на хеша е необходим ключ на дяла. Този хеш се нарича жетон. Данните се разпространяват на базата на този токен.

Разделящият по подразбиране е Murmur3Partitioner, който създава токени, разпределени равномерно във фиксиран диапазон. Всеки възел притежава един или повече диапазони от този диапазон, а колекцията от диапазони формира жетон пръстенТъй като присвояването е по хеш, а не по стойност, добавянето на възел премества само диапазоните, които заема, вместо да пренарежда целия набор от данни.

Предпоставки за Cassandra Cluster

Има следните изисквания за настройка на клъстер.

  1. Трябва да имате множество машини, физически или виртуални, действащи като възли.
  2. Възлите трябва да могат да се свързват помежду си в мрежата. Между тях трябва да са отворени портове 7000 за междувъзлов трафик, 7001, ако TLS е активиран, и 9042 за клиентски връзки.
  3. Linux трябва да бъде инсталиран на всеки възел. Това е платформата Cassandra е тестван и поддържан на.
  4. Apache Cassandra трябва да бъде инсталиран на всеки възел, в една и съща версия. Смесените версии не могат да завършат споразумение за схема.
  5. Поддържано JDK трябва да бъде инсталиран на всяка машина, с настроен JAVA_HOME.
  6. Часовниците трябва да бъдат синхронизирани с NTP. Cassandra разрешава конфликтни записи по времева маркировка, така че дрейфът на часовника тихо води до грешни резултати.

Последното изискване е това, което най-често се пропуска и то причинява проблеми с данните, а не неуспехи при стартиране.

.

Как да инсталирате Cassandra Cluster на Linux

Cassandra трябва да бъде инсталиран на всяка машина, преди която и да е от тях да може да се присъедини към клъстер. Снимките на екрана по-долу са от графичния инсталатор на DataStax Enterprise, който беше обичайният маршрут, когато беше написано това ръководство. Този инсталатор вече не се разпространява за ползване от общността, така че текущият подход е даден първо, а съветникът следва за справка.

Текущ метод: инсталирате Apache Cassandra пакет или двоичен tarball на всеки възел по един и същ начин, след което проверете дали всеки от тях стартира самостоятелно, преди да се опитате да се присъедините към тях.

tar -xzf apache-cassandra-x.y.z-bin.tar.gz -C /opt/
export CASSANDRA_HOME=/opt/apache-cassandra-x.y.z
$CASSANDRA_HOME/bin/cassandra -f

След като един възел стартира чисто, спрете го, изчистете директорията му с данни и преминете към раздела за конфигурация на клъстера по-долу.

Стъпка 1) Стартирайте Cassandra Настройка на корпоративното издание. Включено Linux терминал, стартирайте настройката. Ще се покаже следната страница.

Инсталирайте Cassandra Cluster на Linux

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

Стъпка 2) Приемете лицензионното споразумение. След натискане на бутона „Следващ“ ще се покаже следващата страница.

Инсталирайте Cassandra Cluster на Linux

Тази страница предоставя информация за пакетите и подпакетите в Cassandra който ще бъде инсталиран. По-долу ще бъдете попитани за лиценза. Поставете отметка в квадратчето „Приемам споразумението“ и натиснете бутона „Напред“.

Стъпка 3) Инсталирайте Builder и щракнете върху бутона „Напред“. След като натиснете бутона „Напред“, ще видите следната страница.

Инсталирайте Cassandra Cluster на Linux

Тази страница ви пита за опциите за инсталиране.

  1. Първо, той ще поиска инсталационната директория. По подразбиране той е инсталиран в началната директория.
  2. След това пита за типа инсталация, изберете Simple Install.
  3. След това пита за система за актуализиране, проверете „не“.
  4. След това се изисква интерфейс по подразбиране. Има две опции, можете да инсталирате на localhost или да изберете IP адрес. Изберете IP адрес за инсталиране.
  5. Натиснете следващия бутон.

Стъпка 4) Настройте възела и щракнете върху „Напред“. След натискане на бутона „Напред“ ще се покаже следната страница.

Инсталирайте Cassandra Cluster на Linux

Тази страница пита за настройката на възела.

  1. Първо, изберете тип възел 'Cassandra Възел'.
  2. След това в Ring Name дайте името на вашия клъстер. Cluster името трябва да е едно и също за всички възли в един и същи клъстер.
  3. След това изберете началния възел (seed). Почти всеки възел (seed) е възелът, с който се свързват други не-начални възли, когато стартират.
  4. След като предоставите тази информация, натиснете бутона Next.

Стъпка 5) Инсталирайте агента за наблюдение. След натискане на бутона „Следващ“ ще се покаже следната страница. Тази страница изисква IP адреса, на който да бъде инсталиран агентът.

  1. Агентът е необходим за конзолата за наблюдение, където всички възли могат да се наблюдават на едно място.
  2. След като предоставите тази информация, натиснете бутона Next.

Инсталирайте Cassandra Cluster на Linux

Стъпка 6) Натиснете бутона „Напред“ за инсталиране. След натискане на бутона „Напред“ ще се покаже следващата страница.

Инсталирайте Cassandra Cluster на Linux

Сега настройката е готова за инсталиране. Натиснете следващия бутон.

Стъпка 7) Изчакайте процеса на инсталиране. След натискане на бутона „Следващ“ ще се покаже следващата страница.

Инсталирайте Cassandra Cluster на Linux

Инсталацията ще започне.

Стъпка 8) Щракнете върху бутона „Готово“. След инсталацията ще се покаже следната страница. На същата страница ще видите отметка за опцията, която се появява по подразбиране.

Инсталирайте Cassandra Cluster на Linux

Конфигуриране на cassandra.yaml за присъединяване към възли

Само инсталирането не създава клъстер. Възлите се намират един друг само след като четири настройки в cassandra.yaml се съгласуват, а именно този файл е мястото, където повечето настройки на клъстера се объркват.

cluster_name: 'Guru99 Cluster'
seed_provider:
  - class_name: org.apache.cassandra.locator.SimpleSeedProvider
    parameters:
      - seeds: "192.168.1.10,192.168.1.11"
listen_address: 192.168.1.10
rpc_address: 0.0.0.0
broadcast_rpc_address: 192.168.1.10
endpoint_snitch: GossipingPropertyFileSnitch
  • име_на_клъстер трябва да съвпада на всеки възел. Несъответствието е най-честата причина възел да откаже да се присъедини.
  • семена изброява точките за контакт, с които началният възел комуникира. Две или три семена на център за данни са достатъчни; превръщането на всеки възел в семе предотвратява автоматичното първоначално зареждане.ping.
  • адрес_на_слушане е адресът, който другите възли използват, за да достигнат до този. Трябва да е истински маршрутизируем адрес, никога localhost.
  • endpoint_snitch разказва Cassandra оформлението на стелажа и центъра за данни. GossipingPropertyFileSnitch е обичайният избор, със стойности, зададени в cassandra-rackdc.properties.

Промяната на името на снитча или клъстера, след като данните съществуват, изисква допълнителни стъпки, така че и двете трябва да бъдат решени преди стартирането на първия възел.

Стартиране Cassandra Възел

След инсталиране Cassandra На всеки възел стартирайте сървърите и следвайте стъпките по-долу. Редът е важен: стартирайте първо началните възли, един по един, като изчакате всеки да се отчете като работещ, преди да стартирате следващия. Едновременното стартиране на няколко възела може да доведе до конфликти в диапазона на токените.

Стъпка 1) Отидете в Cassandra инсталационната директория и стартирайте сървъра.

bin/cassandra -f

Стартиране Cassandra Възел

Чрез изпълнението на тази команда, Cassandra сървърът ще бъде стартиран. Ето екранната снимка, където Cassandra сървърът стартира.

Стартиране Cassandra Възел

След около минута сървърът ще заработи. Стартирайте всеки възлов сървър един по един. След като стартирате всички възлови сървъри, вашият Cassandra клъстерът е готов за използване.

Стъпка 2) Проверете дали всеки възел се е присъединил, като проверите пръстена от всеки един от тях.

nodetool status
nodetool describecluster

Всеки възел трябва да се показва със статус UN, което означава „Нагоре“ и „Нормално“, а колоната „Собственици“ трябва да показва приблизително равни проценти. Една единствена версия на схемата в изхода на describecluster потвърждава, че всички възли са съгласни със схемата.

Три симптома обхващат повечето повреди. Възел, който никога не се появява, обикновено има несъответстващо име на клъстер или блокиран порт 7000. Възел, заседнал на UJ, който се присъединява, все още предава данни и просто се нуждае от време на голям клъстер. Изключително неравномерната собственост сочи към неправилна конфигурация на доносник, при която възлите са поставени в грешен шкаф или център за данни.

При здравословен пръстен, настройките за репликация за всяко ключово пространство определят как данните се разпространяват в него, както е описано в Cassandra ключово пространство урок и Cassandra архитектура разбивка.

Въпроси и Отговори

Три, което съответства на стандартния коефициент на репликация от три. Това позволява QUORUM четенията и записите да продължат, докато един възел не работи поради поддръжка или повреда.

Не. Семената служат само като точки за контакт по време на стартиране и „клюки“. Те съхраняват данни като всеки друг възел и загубата на такъв не засяга работещ клъстер.

Инсталирайте същата версия, насочете я към съществуващите начални точки (seed) и я стартирайте. Тя се стартира автоматично чрез стрийминг на диапазоните от токени. След това изпълнете nodetool cleanup на останалите възли.

При даден обем данни, коефициент на репликация и целеви показатели за пропускателна способност, изкуственият интелект генерира разумен начален брой възли. Валидирайте го с тест за натоварване, тъй като разходите за уплътняване и поправка са специфични за работното натоварване.

Да. Предоставянето на system.log заедно с cassandra.yaml обикновено бързо разкрива причината, най-често несъответствие в името на клъстера, блокиран порт или listen_address, оставен като localhost.

Обобщете тази публикация с: