Дисциплина: "Инфраструктура больших данных"
Выполнил: Федоров Сергей, M4150
Вариант: HDFS (#11)
Репозиторий с исходным кодом: Репозиторий
Статус автоматической проверки:
- Добавить интеграцию с указанным источником данных
- Правильно использовать секреты
- Модификация CI/CD
В моем случае источник данных - HDFS. Отличительной особенностью по сравнению с другими вариантами - черезмерная сложность настройки, условно удобное использование.
В нашем случае источник данных должен быть контейнеризован, однако в данном случая этого достичь не смог ввиду того как работает взаимодействие Namenode и Datanode в HDFS и факт того что hostname контейнеризированных нод не будут резолвится на клиенте, в момент загрузки или отправки данных. Поэтому HDFS был настроен на удаленном VPS сервере.
Поскольку HDFS это файловая система а не база данных, мы будем использовать ее как файловую систему, а именно переиспользуем механизм загрузки данных через DVC при старте проекта, однако будем использовать HDFS вместо S3.
Адрес VPS сервера как и прочие чувствительные параметры конфигурации хранятся в Github Secrets. Пример:
- name: Prepare DVC for remote storage
run: dvc remote add --local remote_webhdfs ${{ secrets.WEBHDFS_REMOTE_URL }}
В виду дополнения лабораторной работы №1, модификации CI/CD были минимальны:
- name: Install DVC
run: pip install dvc dvc-s3 dvc-webhdfs
- name: Prepare DVC for remote storage
run: dvc remote add --local remote_webhdfs ${{ secrets.WEBHDFS_REMOTE_URL }}
- name: Pull data and model from DVC remote storage
run: dvc pull -r remote_webhdfs