Статьи

Детализация больших данных — подготовка данных

Мы уже познакомили вас с Hadoop и кластерами в нашей предыдущей статье . В этот момент вы можете задаться вопросом, зачем нам нужен многоузловой кластер . Поскольку большинство служб будут работать на главном сервере, почему бы нам просто не создать кластер с одним узлом?

Существует две основные причины использования многоузлового кластера. Во-первых, объем данных, которые должны храниться и обрабатываться, может быть слишком большим для обработки одним узлом. Во-вторых, вычислительная мощность кластера с одним узлом может быть ограничена.

Вам также могут понравиться: Исследование данных и подготовка данных для бизнес-аналитики

Подготовка данных

Как обсуждалось в предыдущих статьях, у нас есть данные, которые мы собираем по какой-то причине, но оставили без изменений. Для бизнеса нет смысла получать данные и сохранять их как есть. Подготовка данных означает подготовку или преобразование необработанных данных в уточненную информацию, которая может эффективно использоваться для различных бизнес-целей и анализа.

Наша конечная цель — превратить данные в информацию, а информацию — в понимание, которое может помочь вам в различных аспектах принятия решений и улучшениях в бизнесе. Обработка или подготовка данных — это не новый термин для рассмотрения, поскольку это было с первых дней, когда обработка выполнялась вручную. Теперь, когда данные стали большими, пришло время выполнять обработку автоматическими средствами, чтобы сэкономить время и добиться большей точности.

Если вы просматриваете пять лучших платформ обработки больших данных, вы увидите следующий список слов:

  • Hadoop.
  • Спарк.
  • Буря.
  • Flink.
  • Samza.

Первые два из пяти фреймворков хорошо известны и наиболее реализованы среди различных проектов. Они также являются в основном средами пакетной обработки. Кажется, что они похожи, но есть большая разница между этими двумя. Давайте кратко рассмотрим сравнительный анализ.

критерии искра Hadoop MapReduce
обработка В памяти Сохраняется на диске после карты и сокращает функции
Простота использования Легко благодаря поддержке Scala и Python Тяжело, так как поддерживается только Java
скорость Запускает приложения в 100 раз быстрее Помедленнее
Задержка ниже выше
Планирование задач Графики задач самостоятельно Требуются внешние планировщики

Согласно таблице, различные факторы заставили нас перейти от MapReduce к Spark. Другой простой причиной является простота использования, так как он поставляется с удобными API для Scala, Java, Python и Spark SQL . Spark SQL похож на SQL 92, поэтому он прост даже для начинающих. Вот некоторые из ключевых особенностей, которые делают Spark мощным механизмом обработки больших данных:

  • Оборудован MLlib.
  • Поддерживает несколько языков, таких как Scala, Python и Java.
  • Одна библиотека способна выполнять SQL, графическую аналитику и потоковую передачу.
  • Хранит данные в оперативной памяти серверов, что упрощает доступ и ускоряет аналитику.
  • Обработка в реальном времени.
  • Совместим с Hadoop (работает независимо и поверх Hadoop).

Spark Over Storm

Мы сравнили первые два и пришли к решению. Иногда люди могут также предпочесть третий стек — Storm . Оба являются общим стеком для обработки в реальном времени и аналитики. Storm — это чистый потоковый фреймворк, но многие функции, такие как MLlib, недоступны в Storm, так как это меньший фреймворк.

Spark предпочтительнее, чем Storm, для таких деталей, как увеличение или уменьшение сервисов. Лучше знать различия для переключения между различными инструментами в зависимости от требований. В этой статье мы сосредоточимся на Spark , широко используемом инструменте обработки.

Компоненты искры

Apache Spark Ecosystem.
Spark SQL

  • Spark Core  — это база, которая состоит из механизма общего исполнения, используемого для диспетчеризации и планирования.
  • Spark SQL  — это компонент поверх Spark Core, который представляет новый набор абстракций данных, называемый Schema RDD. Это поддерживает как структурированные, так и полуструктурированные данные.
  • Spark Streaming  — этот компонент обеспечивает отказоустойчивую обработку потоков данных в реальном времени, что обеспечивает API для управления потоками данных.
  • MLlib (Библиотека машинного обучения)  — Apache Spark оснащен MLlib, который содержит широкий спектр алгоритмов машинного обучения, фильтров совместной работы и т. Д.

Приложения

Некоторые приложения Apache Spark являются

  • Машинное обучение. Как известно, Apache Spark оснащен библиотекой машинного обучения MLlib, которая может выполнять расширенные аналитические функции, такие как кластеризация, классификация и т. Д.
  • Обнаружение событий — потоковая передача Spark позволяет организации отслеживать редкие и необычные действия для защиты системы.

Искра Совместимость

  • Форматы файлов — Spark поддерживает все форматы файлов, поддерживаемые Hadoop, от неструктурированных, как текст, до структурированных, например, Sequence Files. Но, как обсуждалось ранее, использование соответствующих форматов файлов может привести к повышению производительности.
  • Файловые системы — локальные, Amazon s3, HDFS и др.
  • Базы данных  — Поддерживает многие, такие как Cassandra, Hbase, Elastic search с помощью коннекторов Hadoop и нестандартных искровых коннекторов.

использование

Spark — это мощный инструмент, который предоставляет интерактивную оболочку для интерактивного анализа данных. Точки ниже выделят открытие, использование и закрытие искрового снаряда.

Открытие Spark Shell

Как правило, Spark построен с использованием Scala. Введите следующую команду, чтобы запустить spark-shell.

$ spark-shell

Hadoop Spark-Shell

Если оболочка Spark открылась успешно, вы увидите следующий экран. Последняя строка вывода «Spark context available as sc» означает, что spark автоматически создал объекты контекста spark с именем sc. Если этого нет, то перед началом работы создайте объект SparkContext.

hadoop SparkContext

Теперь все готово для продолжения работы с программами Scala.

Нажмите «Ctrl + z», чтобы выйти из спарк-оболочки при необходимости.

Spark Context

SparkContext может подключаться к нескольким типам диспетчеров кластеров, которые могут распределять ресурсы между приложениями. Позвольте мне показать два разных сценария с двумя разными языками.

Давайте узнаем количество музеев по штатам по принятым данным, используя Scala, и запишем результат в виде CSV-файла в Hadoop.


Scala