блог о bi, №1 в рунете

Установка и настройка

Apache Sqoop

Аналитики вынуждены часто группировать и объединять данные. Эти операции в реляционных базах данных являются ресурсоемкими. Оперативная аналитическая обработка (OLAP) — это технология, которая упорядочивает большие коммерческие базы данных и поддерживает сложный анализ. Ее можно использовать для выполнения сложных аналитических запросов без негативного воздействия на системы транзакций. Данные OLAP предварительно рассчитаны и агрегированы, что ускоряет анализ.

Apache Kylin — это распределенное хранилище аналитических данных с открытым исходным кодом, разработанное для обеспечения возможностей OLAP (онлайн-аналитической обработки) в эпоху Big Data. Распределенные вычисления и хранение данных обеспечивают ряд преимуществ, таких как масштабируемость, отказоустойчивость и балансировку нагрузки.
При разработке OLAP-куба Kylin, необходимо организовать заполнение Data Lake (Hadoop), данные из которого будут процессироваться в куб. Один из самых распространенных кейсов по заполнению Hadoop – это импорт данных из реляционных баз данных. Чтобы покрыть указанный кейс, компанией Apache было разработано специальное ПО – Apache Sqoop.
Apache Sqoop(TM) – это инструмент, предназначенный для эффективной передачи массовых данных между Apache Hadoop и структурированными хранилищами, такими как реляционные базы данных. Высокая производительность импорта и экспорта данных, при использовании Sqoop, достигается за счет использования инфраструктуры MapReduce, что обеспечивает параллелизм в обработке данных.
В нашей компании Sqoop использовался для реализации интеграции данных из SQL Server в распределенную файловую систему Hadoop (HDFS), которая была развернута в docker-контейнере kylin, запущенного на основе images apachekylin/apache-kylin-standalone:kylin-4.0.1-mondrian из docker hub; в этот же docker-контейнер и был установлен Sqoop, ниже описаны подробные шаги по установки и настройки конфигурации Sqoop.

  1. Загрузка архива Sqoop в docker-контейнер. Для импорта архива Sqoop в текущую директорию, необходимо воспользоваться следующей командой: wget https://archive.apache.org/dist/sqoop/1.4.4/sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz

Рисунок 1. Загрузка архива Sqoop в текущую директорию.

2. Распаковка архива Sqoop. Для распаковки архива Sqoop в текущую директорию, необходимо воспользоваться следующей командой: tar -xvf sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz

Рисунок 2. Распаковка архива Sqoop в текущую директорию.

3. Перенос каталога Sqoop в рабочую директорию. Для переноса каталога Sqoop из текущей директории в рабочую необходимо воспользоваться следующей командой:
mv $PWD/sqoop-1.4.4.bin__hadoop-2.0.4-alpha /home/admin

Рисунок 3. Перенос каталога Sqoop в рабочую директорию.

4. Конфигурирование bashrc. Для настройки среды Sqoop необходимо добавить следующую строку в файл ~/.bashrc:
export SQOOP_HOME=/home/admin/sqoop-1.4.4.bin__hadoop-2.0.4-alpha export PATH=$PATH:$SQOOP_HOME/bin

Рисунок 4. Конфигурирование bashrc.

5. Выполнить файл bashrc: source ~/.bashrc

Рисунок 5. Выполнение bashrc.

5. Привязка Sqoop к Hadoop. Для привязки Sqoop к Hadoop необходимо выполнить следующие команды:

5.1 Перейти в каталог $SQOOP_HOME/conf: cd $SQOOP_HOME/conf

5.2 На основе шаблона sqoop-env-template.sh создать рабочий файл sqoop-env.sh: mv sqoop-env-template.sh sqoop-env.sh

Рисунок 6. Создание sqoop-env.sh.

5.3Открыть sqoop-env.sh и отредактировать следующие строки:

5.3.1 export HADOOP_COMMON_HOME= *путь к корневому каталогу hadoop*

5.3.2 export HADOOP_MAPRED_HOME= *путь к корневому каталогу hadoop*

Рисунок 7. Привязка sqoop к hadoop.

6. Проверка корректности установки Sqoop. Для того, чтобы проверить, что sqoop был установлен можно запустить следующую команду:
sqoop version

Рисунок 8. Проверка установки sqoop.

7. Установка jdbc драйвера. Для реализации интеграций между реляционной базой данных и Hadoop через Sqoop, необходимо установить jdbc драйвер, соответствующей СУБД в следующую директорию:

$SQOOP_HOME/lib.

В нашем случае в указанную директорию был установлен jdbc драйвер для SQL Server - sqljdbc4-2.0.jar.

8. Пример иcпользования sqoop:

sqoop import
--connect "jdbc:sqlserver://IP:Port;database=databaseName"
--username XXXXXX
--password XXXXXX
--driver com.microsoft.sqlserver.jdbc.SQLServerDriver
--table "tableName"
--target-dir "hdfs path" -m 1

В данном примере, все данные таблицы БД SQL Server импортируются в директорию hdfs.