Підручник з Sqoop: Що таке Apache Sqoop? Архітектура & Приклад

Зміст:

Anonim

Що таке SQOOP в Hadoop?

Apache SQOOP (SQL-to-Hadoop) - це інструмент, призначений для підтримки масового експорту та імпорту даних у HDFS із структурованих сховищ даних, таких як реляційні бази даних, корпоративні сховища даних та системи NoSQL. Це інструмент міграції даних, заснований на архітектурі з'єднувача, що підтримує плагіни для забезпечення зв'язку з новими зовнішніми системами.

Прикладом використання Hadoop Sqoop є підприємство, яке запускає щоночний імпорт Sqoop для завантаження даних дня із виробничої транзакційної СУБД у сховище даних Hive для подальшого аналізу.

Далі в цьому посібнику з Apache Sqoop ми дізнаємося про архітектуру Apache Sqoop.

Архітектура Sqoop

Усі існуючі Системи управління базами даних розроблені з урахуванням стандарту SQL. Однак кожна СУБД певною мірою відрізняється щодо діалекту. Отже, ця різниця створює проблеми, коли мова йде про передачу даних через системи. Sqoop Connectors - це компоненти, які допомагають подолати ці виклики.

Передача даних між Sqoop Hadoop та зовнішньою системою зберігання даних можлива за допомогою роз'ємів Sqoop.

Sqoop має роз'єми для роботи з рядом популярних реляційних баз даних, включаючи MySQL, PostgreSQL, Oracle, SQL Server та DB2. Кожен із цих з'єднувачів знає, як взаємодіяти з пов'язаними з ним СУБД. Існує також загальний роз'єм JDBC для підключення до будь-якої бази даних, що підтримує протокол JDBC Java. Крім того, дані Sqoop Big забезпечують оптимізовані з'єднувачі MySQL та PostgreSQL, які використовують специфічні для бази даних API для ефективного здійснення масових передач.

Архітектура Sqoop

На додаток до цього, Sqoop у великих даних має різні сторонні роз'єми для сховищ даних, починаючи від корпоративних сховищ даних (включаючи Netezza, Teradata та Oracle) і закінчуючи магазинами NoSQL (наприклад, Couchbase). Однак ці роз'єми не входять до комплекту Sqoop; їх потрібно завантажити окремо і їх можна легко додати до існуючої інсталяції Sqoop.

Навіщо нам потрібен Sqoop?

Аналітична обробка за допомогою Hadoop вимагає завантаження величезних обсягів даних з різних джерел у кластери Hadoop. Цей процес масового завантаження даних у Hadoop із різнорідних джерел, а потім їх обробка, має певний набір проблем. Збереження та забезпечення узгодженості даних та забезпечення ефективного використання ресурсів - це деякі фактори, які слід врахувати, перш ніж вибрати правильний підхід для завантаження даних.

Основні проблеми:

1. Завантаження даних за допомогою сценаріїв

Традиційний підхід використання скриптів для завантаження даних не підходить для масового завантаження даних у Hadoop; цей підхід неефективний і дуже трудомісткий.

2. Прямий доступ до зовнішніх даних через додаток Map-Reduce

Забезпечення прямого доступу до даних, що знаходяться у зовнішніх системах (без завантаження в Hadoop), для програм із зменшенням карти ускладнює ці програми. Отже, такий підхід неможливий.

3. Окрім можливості працювати з величезними даними, Hadoop може працювати з даними у декількох різних формах. Отже, для завантаження таких різнорідних даних у Hadoop були розроблені різні інструменти. Sqoop і Flume - два таких інструменти для завантаження даних.

Далі в цьому посібнику з Sqoop з прикладами ми дізнаємося про різницю між Sqoop, Flume та HDFS.

Sqoop проти Flume проти HDFS в Hadoop

Sqoop Флюм HDFS
Sqoop використовується для імпорту даних із структурованих джерел даних, таких як СУБД. Flume використовується для переміщення масових потокових даних у HDFS. HDFS - це розподілена файлова система, яка використовується екосистемою Hadoop для зберігання даних.
Sqoop має архітектуру на основі роз’ємів. З'єднувачі знають, як підключитися до відповідного джерела даних і отримати дані. Flume має архітектуру, засновану на агентах. Тут написано код (який називається «агентом»), який дбає про отримання даних. HDFS має розподілену архітектуру, де дані розподіляються по безлічі вузлів даних.
HDFS - це пункт імпорту даних за допомогою Sqoop. Дані надходять до HDFS через нульовий або більше каналів. HDFS - це головне місце для зберігання даних.
Завантаження даних Sqoop не визначається подіями. Навантаження даних Flume може бути обумовлена ​​подією. HDFS просто зберігає дані, надані йому будь-якими способами.
Для того, щоб імпортувати дані зі структурованих джерел даних, потрібно використовувати лише команди Sqoop, оскільки його з'єднувачі знають, як взаємодіяти зі структурованими джерелами даних та отримувати з них дані. Для завантаження потокових даних, таких як твіти, створені в Twitter, або файли журналів веб-сервера, слід використовувати Flume. Агенти Flume створені для отримання потокових даних. HDFS має власні вбудовані команди оболонки для зберігання даних у ньому. HDFS не може імпортувати потокові дані