Технология хранения и обработки больших данных Hadoop
Шрифт:
Чтобы ответить на этот вопрос, вы можете посмотреть на данные транзакций, которые должны указать, что клиенты покупают.
Вероятно, вы можете это сделать в обычной реляционной базе данных.
Но преимущество платформы Cloudera заключается в том, что вы можете делать это в большем масштабе при меньших затратах.
Здесь сбоку есть информация о Scoop.
Это инструмент, который использует Map Reduce для эффективной передачи данных между кластером Hadoop и реляционной базой данных.
Он работает путем порождения нескольких узлов данных, чтобы загружать различные части данных параллельно.
И по окончании, каждый фрагмент данных будет реплицирован
И в платформу Cloudera включены две версии Sqoop.
Sqoop1 – это толстый клиент.
И Scoop2 состоит из центрального сервера и тонкого клиента, который вы можете использовать для подключения к серверу.
Ниже, вы можете посмотреть структуру таблицы данных.
Чтобы проанализировать данные транзакций на платформе Cloudera, нам нужно ввести их в распределенную файловую систему Hadoop (HDFS).
И нам нужен инструмент, который легко переносит структурированные данные из реляционной базы данных в HDFS, сохраняя при этом структуру.
И Apache Sqoop является этим инструментом.
С помощью Sqoop мы можем автоматически загружать данные из MySQL в HDFS, сохраняя при этом структуру.
Вверху в меню откроем терминал, и запустим это задание Sqoop.
Эта команда запускает задания MapReduce для экспорта данных из базы данных MySQL и размещения этих файлов экспорта в формате Avro в HDFS.
Эта команда также создает схему Avro, чтобы мы могли легко загрузить таблицы Hive для последующего использования в Impala.
Impala – это механизм аналитических запросов.
И Avro – это формат файлов, оптимизированный для Hadoop.
Таким образом, мы скопируем код и запустим команду в терминале.
После выполнения задания, чтобы подтвердить, что данные существуют в HDFS, мы скопируем следующие команды в терминал.
Которые покажут папку для каждой из таблиц и покажут файлы в папке категорий.
Инструмент Sqoop также должен был создать файлы схемы для этих данных.
И эта команда должна показать avsc схемы для шести таблиц базы данных.
Таким образом, схемы и данные хранятся в отдельных файлах.
И схема применяется к данным, только когда данные запрашиваются.
И это то, что мы называем схемой на чтение.
Это дает гибкость при запросе данных с помощью SQL.
И это отличие от традиционных баз данных, которые требуют, чтобы у вас была четкая схема, прежде чем вводить в базу какие-либо данные. Здесь мы вводим данные, а уже потом применяем к ним схему.
Теперь, так как мы хотим использовать Apache Hive, нам понадобятся файлы схем.
Поэтому с помощью этой команду скопируем их в HDFS, где Hive может легко получить к ним доступ.
Вы могли заметить, что мы импортировали данные в каталоги Hive.
И Hive и Impala читают данные из файла в HDFS, и они даже обмениваются метаданными о таблицах.
Отличие состоит в том, что Hive выполняет запросы, компилируя их в задания MapReduce.
В то время как Impala является механизмом системы параллельных запросов, которые считывают данные непосредственно из самой файловой системы, в более быстром и интерактивном режиме.
Таким образом, мы загрузили данные с помощью Sqoop в HTFS, преобразовав их в формат Avro, и импортировали файлы схем, для их использования при запросе этих данных.
И теперь, давайте перейдем к следующему упражнению.
Здесь мы будем использовать Hue, приложение Impala, для создания метаданных для наших таблиц.
Мы создадим эти метаданные, а затем сделаем запрос к нашей таблице используя Hue.
Hue предоставляет веб-интерфейс, который доступен на порту 8888.
Чтобы войти в Hue, введем сloudera в качестве имени пользователя и пароля.
Далее в меню Query Editors откроем Impala.
Скопируем и вставим код, который создаст таблицы.
И обновим данные в левой колонке, чтобы увидеть созданные таблицы.
Теперь, когда данные доступны для запросов, мы можем ответить на вопрос, какие продукты покупают клиенты.
Для этого скопируем и вставим SQL запросы для расчета общей выручки по продукту и отображения 10 лучших продуктов, приносящих доход.
После выполнения, в Hue, мы увидим результаты запроса.