Оглавление:

1. Что такое Apache Sqoop.

2. Установка Apache Sqoop.

3. Импорт данных из MySql в Hive.


Что такое Apache Sqoop.


Apache Sqoop - это программное средство от Apache, которое позволяет импортировать данные в Hadoop (например в Hive) из различных реляционных СУБД, например MySQL.

В предыдущих разделах мы импортировали путем загрузки дампа базы в CSV-формате в каталог таблицы в HDFS.

Мы же с помощью одной команды sqoop сможем сразу импортировать наши данные из базы напрямую в hive.

Sqoop позволяет работать с различными СУБД, имеет в своем арсенале огромное количество настроек, которые подробно документированы на официальной странице.

Приступим к установке.


Установка Apache Sqoop.


Сначала нужно скачать архив (именно такой sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz) с официальной страницы.

Разархивировать и перенести в каталог /usr/local/sqoop-1.4.7

Открыть в редакторе файл bashrc:


cd

sudo gedit .bashrc


Добавить в конец файла переменные:

export SQOOP_HOME=/usr/local/sqoop-1.4.7

export PATH=$PATH:$SQOOP_HOME/bin

export HIVE_CONF_DIR=/usr/local/hive/conf


Применить настройки:source .bashrc

Перейти в каталог настроек sqoop и создать файл sqoop-env.sh из шаблона:

cd $SQOOP_HOME/conf

sudo cp sqoop-env.sh.template sqoop-env.sh


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

export HADOOP_COMMON_HOME=/usr/local/hadoop/hadoop-2.9.1

export HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-2.9.1

export HIVE_HOME=/usr/local/hive


Сохранить и выйти. На этом вроде как все настройки завершены, но у меня постоянно возникали ошибки из-за того, что sqoop не видел java-классы для hive. Я так и не смог указать нужную переменную окружения и решил проблему, просто скопировав jar-файлы из hive/lib в sqoop/lib

sudo cp $HIVE_HOME/lib/ $SQOOP_HOME/lib/

Теперь все готово к импорту данных.


Импорт данных из MySql в Hive.

Параметров импорта достаточно много, здесь будут приведены проверенные для MySql. Команда для импорта следующая:

sqoop import --connect jdbc:mysql://IP_сервера/имя_базы --username имя_пользователя -P --table название_таблицы --hive-import --hive-table таблица_hive --warehouse-dir "/user/hive/warehouse/" --create-hive-table

Параметры команды:

IP_сервера - тут все понятно, может быть имя, при наличии DNS;

имя_базы - имя базы, к которой подключаемся;

имя_пользователя - пользователь базы данных;

ключ -P - тут можно указать пароль пользователя, если не указан, буден запрошен в процессе соединения;

название_таблицы - имя импортируемой таблицы;

таблица_hive - таблица hive, если она уже существует, выполнить drop table;

ключ --warehouse-dir - путь к данным таблицы hive в HDFS;

ключ --create-hive-table - создать таблицу hive в процессе импорта.


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

Комментарии

Комментировать могуть только зарегистрированные пользователи

Мы в социальных сетях
Перевести страницу (translate page)
Реклама