Pig – это язык скриптов, это платформа высокого уровня для создания программ MapReduce с использованием Hadoop.
Этот язык называется Pig Latin, и он предназначен для задач анализа данных как потоков данных.
Pig самодостаточен, и вы можете выполнят все необходимые манипуляции в Hadoop, просто используя pig.
Кроме того, в pig, вы можете использовать код на разных языках, таких как JRuby, JPython и Java.
И наоборот, вы можете выполнять скрипты PIG на других языках.
Таким образом, в результате вы можете использовать PIG в качестве компонента для создания гораздо более крупных и более сложных приложений.
Программное обеспечение Apache Hive облегчает запросы и управление большими наборами данных, которые находятся в распределенном хранилище файлов.
Hive предоставляет механизм для проектирования структуры поверх этих данных и позволяет использовать SQL-подобные запросы для доступа к данным, которые хранятся в этом хранилище данных.
И этот язык запросов называется Hive QL.
Oozie – это система планирования рабочих процессов, которая управляет всеми нашими заданиями Hadoop.
Задания рабочего процесса Oozie – это то, что мы называем DAG или Directed Graphs.
Задания координатора Oozie – это периодические задания рабочего процесса Oozie, которые запускаются по частоте или доступности данных.
Oozie интегрирован с остальной частью стека Hadoop и может поддерживать сразу несколько различных заданий Hadoop.
Следующий инструмент – это Zookeeper.
У нас есть большой зоопарк сумасшедших диких животных, и мы должны держать их вместе и как-то их организовывать.
Это как раз то, что делает Zookeeper.
Он предоставляет операционные сервисы для кластера Hadoop.
Он предоставляет службу распределенной конфигурации и службу синхронизации, поэтому он может синхронизировать все эти задания и реестр имен для всей распределенной системы.
Инструмент Flume – это распределенный сервис для эффективного сбора и перемещения больших объемов данных.
Он имеет простую и очень гибкую архитектуру, основанную на потоковых данных.
И Flume использует простую расширяемую модель данных, которая позволяет применять различные виды аналитических онлайн приложений.
Еще один инструмент – это Impala, который был разработан специально для Cloudera, и это механизм запросов, работающий поверх Hadoop.
Impala привносит в Hadoop технологию масштабируемой параллельной базы данных.
И позволяет пользователям отправлять запросы с малыми задержками к данным, хранящимся в HTFS или Hbase, не сопровождая это масштабными перемещениями и манипулированием данными.
Impala интегрирована с Hadoop и работает в той же экосистеме.
Это обеспечивает масштабируемую технологию параллельных баз данных на вершине Hadoop.
И это позволяет отправлять SQL-подобные запросы с гораздо более высокими скоростями и с гораздо меньшей задержкой.
Еще один дополнительный компонент, это Spark.
Хотя Hadoop широко используется для анализа распределенных данных, в настоящее время существует ряд альтернатив, которые предоставляют некоторые интересные преимущества по сравнению с традиционной платформой Hadoop.
И Spark – это одна из таких альтернатив.
Apache Spark – это фреймворк экосистемы Hadoop с открытым исходным кодом для реализации распределённой обработки данных.
В отличие от классического обработчика Hadoop, реализующего двухуровневую концепцию MapReduce с дисковым хранилищем, Spark использует специализированные примитивы для рекуррентной обработки в оперативной памяти, благодаря чему позволяет получать значительный выигрыш в скорости работы для некоторых классов задач, в частности, возможность многократного доступа к загруженным в память пользовательским данным делает библиотеку привлекательной для алгоритмов машинного обучения.
И Spark поддерживает язык Scala, и предоставляет уникальную среду для обработки данных.
Для управления кластерами Spark поддерживает автономные нативные кластеры Spark, или вы можете запустить Spark поверх Hadoop Yarn.
Что касается распределенного хранилища, Spark может взаимодействовать с любой системой хранения, включая HDFS, Amazon S3 или с каким-либо другим пользовательским решением.
Cloudera QuickStart VM
Для начала работы нам нужно скачать виртуальную машину Cloudera, позволяющую ознакомиться со стеком Cloudera Hadoop.
После скачивания и распаковки архива, запустим виртуальную машину.
Для этого в VirtualBox импортируем скачанную конфигурацию ovf.
После запуска виртуальной машины Cloudera QuickStart вы увидите рабочий стол и открытый браузер.
И если вы посмотрите на этот браузер, вы увидите, что здесь представлено несколько разных сервисов Cloudera.
Здесь есть Hue, Hadoop, HBase, Impala, Spark, и т. д.
Это все приложения стека Cloudera Hadoop.
Здесь браузер выступает как клиент, для доступа к этим сервисам, запущенным на виртуальной машине, для доступа с помощью URL адреса.
И давайте пройдемся по ним и узнаем, что они нам могут предоставить.
Откроем вкладку Overview NameNode Hadoop.
Здесь мы видим обзор нашего стека Hadoop.
Мы можем видеть, когда произошла инициализация этого стека.
И этот обзор дает нам полную сводку по всем конфигурациям, количеству файлов и т. д.
Давайте откроем вкладку Datanodes.
Этот сервис позволяет посмотреть на все имеющиеся у нас Datanodes.
Напомним, что кластер HDFS состоит из одного NameNode, главного сервера, который управляет пространством имен файловой системы и регулирует доступ клиентов к файлам.
И существуют узлы данных Datanodes, обычно по одному на узел кластера, которые управляют хранилищем, подключенным к узлам.
Откроем вкладку RegionServer HBase/
HBase – это столбцовое хранилище данных, которое хранит неструктурированные данные в файловой системе Hadoop.
Здесь показывается количество запросов, которые делаются для чтения и записи в базу данных HBase.
И мы можем видеть все вызовы и задачи, которые были переданы в базу данных.