Підручник Sqoop: що таке Apache Sqoop? Archiтектура та приклад
Що таке SQOOP у Hadoop?
Apache SQOOP (SQL-to-Hadoop) — це інструмент, розроблений для підтримки масового експорту й імпорту даних у HDFS із структурованих сховищ даних, таких як реляційні бази даних, корпоративні сховища даних і системи NoSQL. Це інструмент міграції даних, заснований на архітектурі конектора, який підтримує плагіни для підключення до нових зовнішніх систем.
Прикладом використання Hadoop Sqoop є підприємство, яке виконує нічний імпорт Sqoop для завантаження даних за день із робочої транзакційної RDBMS у Вулик сховище даних для подальшого аналізу.
Далі в цьому посібнику з Apache Sqoop ми дізнаємося про архітектуру Apache Sqoop.
Скуп Archiтектура
Все існуюче Системи управління базами даних розроблені з SQL стандарт на увазі. Проте кожна СУБД певною мірою відрізняється щодо діалекту. Таким чином, ця різниця створює проблеми, коли мова йде про передачу даних між системами. Конектори Sqoop — це компоненти, які допомагають подолати ці проблеми.
Передача даних між Sqoop Hadoop і зовнішньою системою зберігання даних стала можливою за допомогою конекторів Sqoop.
Sqoop має конектори для роботи з низкою популярних реляційних баз даних, у тому числі MySQL, PostgreSQL, Oracle, SQL Server і DB2. Кожен із цих конекторів знає, як взаємодіяти з пов’язаною з ним СУБД. Існує також загальний конектор JDBC для підключення до будь-якої бази даних, яка підтримує Javaпротокол JDBC. Крім того, Sqoop Big data забезпечує оптимізацію MySQL та PostgreSQL конектори, які використовують специфічні для бази даних API для ефективного виконання масових передач.
На додаток до цього Sqoop у великих даних має різноманітні конектори сторонніх виробників для сховищ даних, починаючи від корпоративних сховища даних (включаючи Netezza, Teradata та Oracle) до магазинів NoSQL (таких як Couchbase). Однак ці роз’єми не постачаються з пакетом Sqoop; їх потрібно завантажити окремо, і їх можна легко додати до наявної інсталяції Sqoop.
Навіщо нам Sqoop?
Аналітична обробка за допомогою Hadoop вимагає завантаження величезних обсягів даних із різних джерел у кластери Hadoop. Цей процес масового завантаження даних у Hadoop із різнорідних джерел і подальшої їх обробки супроводжується певним набором проблем. Підтримка та забезпечення узгодженості даних і забезпечення ефективного використання ресурсів – це деякі фактори, які слід враховувати перед вибором правильного підходу до завантаження даних.
Основні проблеми:
1. Завантаження даних за допомогою скриптів
Традиційний підхід використання сценаріїв для завантаження даних не підходить для масового завантаження даних у Hadoop; такий підхід є неефективним і займає дуже багато часу.
2. Прямий доступ до зовнішніх даних через додаток Map-Reduce
Надання прямого доступу до даних, що зберігаються у зовнішніх системах (без завантаження в Hadoop) для додатків зі зменшенням карти, ускладнює ці додатки. Отже, такий підхід неможливий.
3. Окрім можливості працювати з величезними даними, Hadoop може працювати з даними в кількох різних формах. Отже, щоб завантажити такі різнорідні дані в Hadoop, були розроблені різні інструменти. Скуп та Потік є два таких інструменти завантаження даних.
Далі в цьому підручнику Sqoop із прикладами ми дізнаємося про різницю між Sqoop, Flume і HDFS.
Sqoop проти Flume проти HDFS у Hadoop
Скуп | Потік | HDFS |
---|---|---|
Sqoop використовується для імпорту даних зі структурованих джерел даних, таких як RDBMS. | Flue використовується для переміщення масових потокових даних у HDFS. | HDFS — це розподілена файлова система, яка використовується екосистемою Hadoop для зберігання даних. |
Sqoop має архітектуру на основі конектора. Конектори знають, як підключитися до відповідного джерела даних і отримати дані. | Flume має агентну архітектуру. Тут написаний код (який називається «агентом»), який піклується про отримання даних. | HDFS має розподілену архітектуру, де дані розподіляються між кількома вузлами даних. |
HDFS – це місце призначення для імпорту даних за допомогою Sqoop. | Дані надходять до HDFS через нуль або більше каналів. | HDFS є ідеальним місцем для зберігання даних. |
Завантаження даних Sqoop не керується подіями. | Завантаження даних Flume може керуватися подією. | HDFS просто зберігає дані, надані їй будь-якими засобами. |
Щоб імпортувати дані з джерел структурованих даних, потрібно використовувати лише команди Sqoop, оскільки його конектори знають, як взаємодіяти з джерелами структурованих даних і отримувати дані з них. | Для завантаження потокових даних, таких як твіти, створені в Twitter, або файли журналів веб-сервера, слід використовувати Flume. Агенти Flume створені для отримання потокових даних. | HDFS має власні вбудовані команди оболонки для зберігання даних у ньому. HDFS не може імпортувати потокові дані |