Apache Ignite В Облаке Aws — Базовый Пример

Облачные вычисления так популярны по нескольким причинам: они гибки, относительно дешевы по сравнению с содержанием внутренней инфраструктуры и позволяют прекрасно автоматизировать распределение ресурсов (и здесь тоже есть экономия).

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

Данные должны быть распределены по нескольким более дешевым системам (кластерам), где их можно будет безопасно хранить, обрабатывать и при необходимости возвращать пользователю.

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

я говорю о Апач Игнит .



Подготовка окружающей среды

Я собираюсь использовать облако AWS для развертывания кластера Ignite. В целях обучения нам будет достаточно бесплатных машин базового уровня (AWS free tier).

Я выбрал образ Ubuntu 18.04, но в целом это не имеет значения.

Прежде чем развертывать первые машины, нам необходимо настроить группу безопасности.

Это должно определить сетевые правила для портов, требуемых узлами Ignite.

Apache Ignite в облаке AWS — базовый пример

Рисунок 1 – Конфигурация группы безопасности Были явно настроены два диапазона портов: диапазон портов 47500–47600 для обнаружения (механизм обнаружения, который позволяет узлам находить друг друга и формировать кластер) и диапазон 47100–47200 для подсистемы связи, которая позволяет узлам отправлять прямые сообщения.

друг другу.

Сообщения.

Теперь, когда мы настроили группу безопасности, пришло время запустить и настроить наши машины.



Apache Ignite в облаке AWS — базовый пример

Рисунок 2. Группа безопасности выбирается во время подготовки экземпляра AWS. Машины работают, но на них отсутствует базовое программное обеспечение: Java. Нет проблем, просто используйте следующую команду для установки Java:

  
  
  
   

~/sudo apt install openjdk-8-jdkс

Команда для пакетов RedHat/Centos выглядит немного иначе:

~/sudo yum install java-1.8.0-openjdk.x86_64

Большой! Мы всего в одном шаге от запуска первого экземпляра Ignite в облаке! Я загрузил с официального сайта бинарный пакет версии 2.7.6 и распаковал его:

~/ignite$ wget http://mirror.linux-ia64.org/apache//ignite/2.7.6/apache-ignite-2.7.6-bin.zip ~/ignite$ unzip apache-ignite-2.7.6-bin.zip ~/ignite/apache-ignite-2.7.6-bin$ .

/bin/ignite.sh



Apache Ignite в облаке AWS — базовый пример

Рисунок 3 – Первый узел работает Мы уже добились большого прогресса: подготовили среду, придумали, где брать бинарники и как их запускать.

Пришло время собрать кластер.

Запуска группы нод недостаточно для построения кластера, и это становится очевидным из логов: у каждой ноды в логах есть такая строка:

Apache Ignite в облаке AWS — базовый пример

Рисунок 4 – Два узла сформировали два независимых кластера Это сообщение означает, что два узла сформировали два независимых кластера вместо того, чтобы обнаружить друг друга и слиться в один.

Чтобы создать настоящую кластерную среду, вам необходимо глубже понять, как узлы объединяются в кластер.

Особую роль в этом процессе играет специальный сервис Discovery. Именно это позволяет узлам находить друг друга и формировать кластер.

Когда узел запускается, первое, что он делает, — это отправляет запрос своему экземпляру службы Discovery, чтобы найти существующий кластер, и пытается присоединиться к нему вместо создания нового.

Параметры DiscoverySPI, позволяющие службе обнаруживать кластер, должны быть предоставлены конечным пользователем, но они просты и интуитивно понятны.

Все, что нам нужно сделать, это настроить IpFinder (компонент для поиска IP-адресов существующих узлов) и передать его в Discovery. Давайте сделаем это и соберем разрозненные узлы в единую систему.

Откройте файл конфигурации в вашем любимом текстовом редакторе.



~/ignite/apache-ignite-2.7.6-bin$ vim config/default-config.xml

.

и добавьте следующий блок:

<property name="discoverySpi"> <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi"> <property name="ipFinder"> <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder"> <property name="addresses"> <list> <value>172.31.3.57</value> </list>

Теги: #с открытым исходным кодом #Распределенные системы #aws #Amazon Web Services #apache ignite #cloud Computing

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.