Dlink + FlinkSQL создает интегрированную платформу потоковых и пакетных данных — развертывание
Dlink + FlinkSQL создает интегрированную платформу потоковых и пакетных данных — развертывание

краткое содержание:В этой статье представлены пользователи предприятий розничной торговли на основе Dlink + FlinkSQL Практика создания интегрированной платформы пакетного потока данных в основном предназначена для совместного использования. Содержание включает в себя:

  1. Предисловие
  2. развертывать
  3. кластерный центр
  4. Конфигурация системы

Адрес GitHub

https://github.com/DataLinkDC/dlink

Приглашаем всех обратить внимание на развитие Dlink~

1. Предисловие

В связи с потребностями компании я недавно исследовал множество проектов с открытым исходным кодом и, наконец, обнаружил, что Dlink может лучше удовлетворить потребности в создании интегрированной платформы пакетного потока данных. Удобство разработки данных очень важно для платформы данных, которая определяет затраты на строительство, эксплуатацию и обслуживание проекта. Dlink предоставляет возможности разработки и отладки FlinkSQL и другого SQL, так что работа по разработке данных может достичь эффекта. Hue, с автоматической подачей и созданием. Возможность удаленной кластеризации снижает порог использования. После общения с автором я узнал о RoadMap от Dlink. Нужна именно платформа данных, поэтому после развертывания исследования результаты хорошие, и мы готовимся к запуску производства в Интернет после праздников. В этот период мы столкнулись с некоторыми подводными камнями и составили статью, которой хотим поделиться. ограничения по времени, мы поделимся другим контентом в будущем.

2. Развертывание

1. Разархивируйте в указанную директорию.

Dlink не зависит от какой-либо внешней среды Hadoop или Flink и может быть развернут независимо за пределами кластеров Flink, Hadoop и K8S. Он полностью изолирован и поддерживает одновременное подключение нескольких различных экземпляров кластера для эксплуатации и обслуживания.

Язык кода:javascript
копировать
tar -zxvf dlink-release-0.5.0-SNAPSHOT.tar.gz
mv dlink-release-0.5.0-SNAPSHOT dlink
cd dlink
Изменить файл конфигурации

2. Конфигурационный файл

Dlink использует MySQL в качестве внутреннего репозитория, а MySQL поддерживает версии 5.6+. Предполагается, что у вас установлен MySQL.

Во-первых, вам необходимо создать внутреннюю базу данных Dlink, которая создается здесь с использованием библиотеки по умолчанию в файле конфигурации.

Язык кода:javascript
копировать
#Loginmysql
mysql -uroot -proot@123
#Авторизуемся и создаем базу данных
mysql> grant all privileges on *.* to 'dlink'@'%' identified by 'dlink' with grant option;
mysql> grant all privileges on *.* to 'dlink'@'fdw1' identified by 'dlink'  with grant option;
mysql> flush privileges;
#Войдите под пользователем dlink здесь
mysql -h fdw1  -udlink -pdlink
mysql> create database dlink;

После создания базы данных вы можете изменить файл конфигурации dlink для подключения к mysql и изменить его в соответствии с личными обстоятельствами. Конфигурационный файл относительно прост, поэтому я не буду здесь вдаваться в подробности.

Язык кода:javascript
копировать
#Переключить каталог
компакт-диск /opt/dlink/config/
Приложение vim.yml

После изменения файла конфигурации следующим шагом будет установка nginx. Вы можете игнорировать это, если nginx уже установлен. Поскольку для развертывания Dlink требуется nginx, сначала необходимо развернуть nginx. После завершения настройки он может запускаться в обычном режиме.

3. Инициализируйте базу данных

В папке sql корневого каталога dlink находятся два файла sql: dlink.sql и dlink_history.sql. Если он развертывается впервые, вы можете напрямую выполнить файл dlink.sql в базе данных dlink. (Если база данных dlink была создана ранее, то dlink_history.sql хранит SQL-файл обновления каждой версии, который можно выполнить по мере необходимости в соответствии с номером версии)

Язык кода:javascript
копировать
#Сначала войдите в MySQL
mysql -h fdw1  -udlink -pdlink
mysql> use dlink;
mysql> source /opt/dlink/sql/dlink.sql

После завершения выполнения разверните службу nginx.

4. Разверните nginx

В Linux необходимо сначала настроить соответствующую библиотеку yum, поскольку в процессе установки настройка не требуется. Здесь мы можем кратко описать следующие шаги. Вы можете выбрать подключение к сети или локальному источнику yum. Здесь выберите подключение. в сеть для настройки.

Язык кода:javascript
копировать
#Загрузить исходный код ням
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#Очистить кэш
yum makecache
#Далее устанавливаем nginx
yum -y install epel-release
yum -y install nginx
sudo systemctl enable nginx
sudo service nginx start
sudo service nginx reload
nginx -v
#Наконец проверьте процесс, чтобы убедиться, что он запускается нормально
ps -ef|grep nginx

5. Настраиваем dlink в nginx

Если nginx установлен из исходного кода yum, файл конфигурации находится в папке и т. д. Если он установлен из исходного пакета, найдите файл конфигурации самостоятельно.

Язык кода:javascript
копировать
#Переходим в каталог конфигурации nginx
компакт-диск /etc/nginx/

Откройте файл конфигурации с помощью vim /etc/nginx/nginx.conf и измените содержимое сервера. Содержимое сервера может соответствовать конфигурации на github.

Язык кода:javascript
копировать
    server {
        listen       9999;
        #listen       [::]:80;
        server_name  bigdata3;
        root         /usr/share/nginx/html;
                gzip on;
            gzip_min_length 1k;
        gzip_comp_level 9;
        gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
        gzip_vary on;
        gzip_disable "MSIE [1-6]\.";

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        
        location / {
            root   html;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
        
        location ^~ /api {
            proxy_pass http://192.168.0.0:8888;
            proxy_set_header   X-Forwarded-Proto $scheme;
            proxy_set_header   X-Real-IP         $remote_addr;
        }
    }

Содержание модификации:

  • прослушивать порт прослушивания;
  • Сохраните путь html;
  • местоположение/может быть указан как абсолютный путь. Красная часть — это место, которое необходимо изменить.

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

Язык кода:javascript
копировать
$systemctl restart nginx.service
$systemctl reload nginx.service
#Проверяем, успешно ли настроен nginx
nginx -t
$nginx -s reload

6. Загрузка зависимостей

Dlink имеет собственную среду Flink. Для реализации этой среды Flink пользователи должны создать папку плагинов в корневом каталоге Dlink и загрузить соответствующие зависимости Flink, такие как flink-dist, flink-table и т. д. Подробности читайте в файле Readme. (последующие расширенные зависимости также размещаются в этом каталоге). Конечно, можно указать FLINK_HOME в файле запуска, но это не рекомендуется.

В текущей версии режимов выполнения заданий и приложений пряжи Dlink для запуска используется Flink-shade-hadoop, поэтому необходимо добавить пакет Flink-shade-hadoop.

Язык кода:javascript
копировать
#Создать каталог
компакт-диск /opt/dlink/
Плагины mkdir

Загрузите Flink-shade-hadoop в каталог файлов плагинов. Для тех, кто использует Hadoop2 или Hadoop 3, вы можете использовать flink-shade-hadoop-3. Адрес следующий:

https://mvnrepository.com/artifact/org.apache.flink/flink-shaded-hadoop-3-uber?repo=cloudera-repos

Если CDH и HDP используют flink-shade с открытым исходным кодом, это не окажет никакого влияния на Dlink. Другие используемые зависимости зависят от совместимости CDH или HDP с версией с открытым исходным кодом. Чтобы использовать все функции, вам необходимо добавить зависимости на основе совместимости. Длинк нормально.

7. Запустите Длинк

Язык кода:javascript
копировать
#запускать
$sh auto.sh start
#останавливаться
$sh auto.sh stop
#перезапуск
$sh auto.sh restart
#Просмотреть статус
$sh auto.sh status

Когда вы увидите следующий интерфейс, это означает, что развертывание Dlink прошло успешно.

Имя пользователя/пароль по умолчанию: admin/admin

Если доступ не удался, проверьте, выключен ли брандмауэр и правильно ли настроен Nginx.

Далее речь идет о развертывании пользователей Dlink. Для некоторых компаний запрещены операции под пользователями без полномочий root или используется планирование ресурсов (yarn), а пользователям без полномочий root необходимо подать FlinkSQL. Тогда принцип, которому следует Dlink, заключается в том, что пользователь, который запускает Dlink, будет отправлять задачи через этого пользователя. Давайте поговорим о том, как работать с ним под пользователем без полномочий root;

8. Пользователи без полномочий root отправляют задачи

Создайте очередь для пользователей, отправляющих Flink, используя Flink

Язык кода:javascript
копировать
$useradd flink

Чтобы создать пользовательскую папку /user/flink в hdfs, используйте пользователя root для ее создания и предоставьте разрешения flink. Если это платформа CDH, для ее создания используйте пользователя HDFS. Здесь используется корень.

Язык кода:javascript
копировать
$hadoop fs -mkdir -p  /user/flink
#авторизация
$hadoop fs -chown -R flink:flink   /user/flink

После авторизации Dlink и принятия разрешений Flink Dlink запускается под пользователем Flink. В это время задания по разработке FlinkSQL будут отправляться через пользователя Flink.

Язык кода:javascript
копировать
$chown -R flink:root dlink

Переключитесь на Flink, и пользователи смогут запустить Dlink, чтобы использовать его в обычном режиме.

Язык кода:javascript
копировать
su  flink
sh auto.sh start

Запись проблемы:

1.standalone, Yarn-session и k8s-session подходят для тестирования и запроса исходных баз данных, таких как OLAP, а точки сохранения отключены в автономном режиме и режиме сеанса пряжи. Если вы используете операции запроса, такие как SELECT и SHOW, вам необходимо. закройте набор операторов и включите только предварительный просмотр.

2. Для производственного использования рекомендуется использовать режимы «perjob» и «application». Откройте набор операторов и установите самую последнюю точку сохранения.

3. Если вы не знакомы с local, используйте его с осторожностью и не выполняйте потоковые задачи.

3. Кластерный центр

Конфигурация кластерного центра включает в себя:

  • Экземпляр кластера
  • Конфигурация кластера, которую Экземпляр кластер, применимый сценарий — автономный и Yarn сессия и k8s сессия. зарегистрироваться Flink адрес кластера, формат host:port , разделенные запятыми. то есть добавить Flink сгруппированный JobManager из RestApi адрес. когда HA режиме разделяйте их английскими запятыми, например: 192.168.123.101:8081,192.168.123.102:8081,192.168.123.103:8081. Время ожидания новых дополнений и модификаций велико, поскольку необходимо обнаруживать последние дополнения. JobManager адрес. Обнаружение пульса запускается вручную и обновляет статус кластера и JobManager адрес.

Применимыми сценариями настройки кластера являются «пряжа на задание» и «пряжа-приложение». k8s-приложение настраивается через заданный синтаксис.

1. Экземпляр кластера

Если вы хотите настроить экземпляр кластера, на первом этапе нажмите «Центр кластера» и войдите в центр кластера. На втором этапе нажмите «Экземпляр кластера». После ввода «Экземпляр кластера» вы увидите следующий интерфейс.

Как показано на рисунке выше, он включает в себя такие кнопки, как «Создать», «Пульс», «Перезапустить» и «Обновить».

Третий шаг: нажмите кнопку «Создать», появится интерфейс «Добавить кластер Flink».

Включает имя, псевдоним, тип, адрес высокой доступности JobManager. Имя и псевдоним настраиваются в зависимости от ситуации, а типы включают сеанс пряжи, автономный режим, пряжу для каждого задания и приложение пряжи. Экземпляры кластера подходят для сеанса пряжи, сеанса k8s и автономного режима. Добавление кластера Flink включено по умолчанию. Затем создайте кластер Flink, используя автономный интерфейс.

После заполнения нажмите кнопку «Отправить». После завершения отправки нажмите кнопку «Heartbeat» на следующем шаге. Интерфейс выглядит следующим образом:

Вы увидите, что обновление статуса завершено, и номер версии Flink будет получен автоматически. На этом этапе экземпляр кластера зарегистрирован. Регистрация экземпляра кластера сеансов Yarn и k8s аналогична.

Если вам нужно изменить экземпляр кластера, вам нужно нажать «Настроить» или «Изменить». Появится интерфейс редактирования кластера, и вы сможете изменить или удалить экземпляр кластера. Как показано ниже

2. Конфигурация кластера

Конфигурация кластера больше подходит для каждого задания и применения пряжи.

Первый шаг — нажать «Конфигурация кластера». Интерфейс выглядит следующим образом:

На втором этапе нажмите «Создать», и появится «Создать конфигурацию кластера». Интерфейс выглядит следующим образом:

Конфигурация кластера включает конфигурацию Hadoop, конфигурацию Flink и базовую конфигурацию.

Обязательные элементы конфигурации Hadoop включают путь к файлу конфигурации и ha.zookeeper.quorum (необязательно).

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

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

Наконец, нажмите «Включить» в базовой конфигурации, после чего настройка информации о конфигурации кластера будет завершена.

После заполнения информации нажмите кнопку «Тест», чтобы проверить, успешно ли настроен кластер. Если настройка прошла успешно, появится сообщение об успешном завершении теста, в противном случае появится сообщение «Запрос не выполнен», и, наконец, нажмите «Готово».

Как изменить конфигурацию кластера? Нажмите соответствующую кнопку «Дополнительно», чтобы отредактировать и удалить конфигурацию кластера, такую ​​же, как и экземпляр кластера.

Выше описан процесс настройки кластерного центра. На этом настройка кластера завершена.

4. Настройки системы

1. Управление пользователями

Пароль по умолчанию для нового пользователя: 123456.

2. Настройки флинка

первый шаг,Нажмите"Системные настройки">>"Flinkнастраивать",Интерфейс выглядит следующим образом:

Отправка пути к файлу Jar FlinkSQL в основном предназначена для обслуживания приложения Yarn. Нам нужно загрузить пакет зависимостей dlink-app в Dlink по указанному пути HDFS. Нажмите «Изменить» и сохраните. Остальные установлены по умолчанию, и никаких дополнительных изменений не требуется.

Сегодня здесь представлена ​​глава о развертывании! В будущем будет статья, знакомящая с Dlink, надеюсь, вы ее с нетерпением ждете~

boy illustration
Эффективная обработка запланированных задач: углубленное изучение секретов библиотеки APScheduler на Python
boy illustration
Рекомендации по облегченному артефакту развязки внутренних компонентов Spring Event (событие Spring)
boy illustration
Go: Лесоруб-лесоруб на колесах Введение
boy illustration
Основы серверной разработки: технология кэширования, которую должен освоить каждый программист
boy illustration
Java Advanced Collections TreeSet: что это такое и зачем его использовать?
boy illustration
Оказывается, у команды go build столько знаний
boy illustration
Node.js
boy illustration
Анализ исходного кода, связанный с запланированными задачами версии ruoyi-vue (7), то есть анализ модуля ruoyi-quartz.
boy illustration
Вход в систему с помощью скан-кода WeChat (1) — объяснение процесса входа в систему со скан-кодом, получение авторизованного QR-кода для входа.
boy illustration
HikariPool-1 — обнаружено отсутствие потока или скачок тактовой частоты, а также конфигурация источника данных Hikari.
boy illustration
Сравнение высокопроизводительной библиотеки JSON Go
boy illustration
Простое руководство по извлечению аудио с помощью FFmpeg
boy illustration
Подсчитайте количество строк кода в проекте
boy illustration
Spring Boot элегантно реализует многопользовательскую архитектуру: концепции и практика
boy illustration
Как интегрировать функцию оповещения корпоративного WeChat в систему планирования xxl-job
boy illustration
SpringBoot интегрирует отправку сообщений через веб-сокет в режиме реального времени
boy illustration
Краткий анализ основных библиотек журналов в Go: узнайте, как интегрировать функции вращения и резки бревен на уровне проектирования.
boy illustration
Реализация API-шлюза с нуля-Golang
boy illustration
[Разговорный сайт] Как Springboot получает значения свойств из файлов конфигурации yml или свойств
boy illustration
Spring Boot — синхронные события приложения против асинхронных событий публикации и подписки. Практический бой
boy illustration
Spring Boot использует Swagger3 для создания документов интерфейса API.
boy illustration
[1269] Использование Gunicorn для развертывания проектов flask.
boy illustration
Краткое изложение 10 способов регистрации bean-компонентов в SpringBoot
boy illustration
Flask Learning-9. 2 способа включения режима отладки (debug mode).
boy illustration
Руководство по настройке самостоятельного сервера для Eudemons Parlu
boy illustration
40 вопросов для собеседований по SpringBoot, которые необходимо задавать на собеседованиях! При необходимости ответьте на вопросы для собеседования SpringBoot [предлагаемый сборник] [легко понять]
boy illustration
Через два года JVM может быть заменен GraalVM.
boy illustration
Разрешение циклических зависимостей Spring Bean: существует ли неразрешимая циклическая ссылка?
boy illustration
Разница между промежуточным программным обеспечением ASP.NET Core и фильтрами
boy illustration
[Серия Foolish Old Man] Ноябрь 2023 г. Специальная тема Winform Control Элемент управления DataGridView Подробное объяснение