Skip to content

Danstnou/mini_cluster_datalake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Мини datalake-cluster

Данный spark-compose поможет создать мини datalake-cluster, в котором мы можем запустить даг airflow.
В демонстрационном даге находится SparkSubmitOperator, запускающий spark-job, который читает таблицу из бд postgres, и сохраняет её в hive-таблицу.

Запуск примера

Скачиваем проект и разархивируем его в удобную вам папку. У меня, этой папкой будет:

C:\Users\danel\Downloads\mini_cluster_datalake-master

В командной строке от имени администратора устанавливаем папку с образами как текущую: cd C:\Users\danel\Downloads\mini_cluster_datalake-master\mini_cluster_datalake

Строим и поднимаем контейнеры:

docker build -t hadoop-base docker/hadoop/hadoop-base && docker build -t hive-base docker/hive/hive-base && docker build -t spark-base docker/spark/spark-base && docker-compose up -d --build

image

Подождите около 2-3 минут, пока все контейнеры найдут друг друга, и в файле:

C:\Users\danel\Downloads\mini_cluster_datalake-master\mini_cluster_datalake\mnt\hadoop\namenode\start-namenode.sh

закомментируйте следующие строки:

image

Сохраните файл, и перезапустите контейнер namenode

image

Подготовим источник

Переходим к ui pgadmin:

И указываем логин: admin@admin.com

и пароль: root

image

Нам необходимо импортировать бд. Создаём подключение:

image image

Имя/адрес сервера: postgres

Порт: 5432

Служебная база данных: postgres

Имя пользователя: airflow

Пароль: airflow

Создаём базу данных с названием spotify:

image

Создаём таблицу charts, и производим import готовой. Переходим к запроснику:

image

И запускаем запрос создания таблицы:

(  

    id bigint,  

    country text COLLATE pg_catalog."default",  

    date timestamp without time zone,  

    "position" bigint,  

    uri text COLLATE pg_catalog."default",  

    track text COLLATE pg_catalog."default",  

    title text COLLATE pg_catalog."default",  

    artist text COLLATE pg_catalog."default"  

)
image

Нажмите правой кнопкой на пункт Таблицы, затем Обновить, чтобы наша таблица появилась. Выполняем import таблицы (файл spotify в корне проекта).

image image image

Мы только что загрузили файл в Storage Manager. Теперь выберем его для import’а. Формат выбираем binary:

image

Нажимаем OK. Дожидаемся копирования:

image

И выполним запрос в запроснике, чтобы убедиться, что данные появились: image

Источник готов.

Теперь настроим airflow.

Переходим в ui:
Указываем логин: admin@airflow.com И пароль: airflow

Нас сразу будет ожидать демонстрационный даг charts_load:

image

Но осталось сконфигурировать connection spark_default для SparkSubmitOperator’а.

Переходим к Admin -> Connections:

image

Находим spark_default и устанавливаем:

host: spark://spark-master

port: 7077

image

Сохраняем (Save) и теперь можем запустить даг charts_load

image

Работа с Hue

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

Переходим в hue, вводим логин: hue и пароль: Hue и нажимаем на Create Account

image

Выполняем запрос SELECT * FROM test_repl_spotify.charts limit 3; в hive:

image image

Посмотрим .parquet файлы таблицы, через File Browser в hue:

http://localhost:32762/hue/filebrowser/view=/user/hive/warehouse/test_repl_spotify.db#/user/hive/warehouse/test_repl_spotify.db/charts

image

После работы, можно завершить все контейнеры:

image

И таким же образом можно запустить.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published