Компьютеры

Что такое анализ больших данных с помощью Hadoop?

Автор: Peter Berry
Дата создания: 19 Июль 2021
Дата обновления: 10 Май 2024
Anonim
Эффективное использование Jupyter и PySpark на Hadoop для анализа больших данных| Технострим
Видео: Эффективное использование Jupyter и PySpark на Hadoop для анализа больших данных| Технострим

Содержание

Я разработчик программного обеспечения с большим интересом к анализу данных и статистике.

Что такое анализ больших данных?

Сам термин «большие данные» объясняет, что данные огромны по размеру, например, в ГБ, ТБ и PT данных. Благодаря новейшим технологиям, устройствам и достижениям в социальных сетях повседневная активность этих систем генерирует огромные объемы данных. Эти данные нельзя обрабатывать или обрабатывать с помощью традиционных реляционных баз данных. Под большими данными понимаются наборы данных, которые нельзя хранить, управлять и анализировать с помощью традиционных программных инструментов баз данных или одного традиционного компьютера.

Источники больших данных

  • Энергосистема
  • Сайты социальных сетей
  • Фондовые биржи
  • Телекоммуникационные отрасли
  • IoT (датчики и т. Д.)

Характеристики больших данных

Для работы с большими данными очень важно понимать их характеристики. Свойства больших данных представлены четырьмя V:


Объем

Объем связан с размером данных. Насколько велики данные? Исходя из объема данных, мы можем рассматривать это как большие данные или нет.

Скорость

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

Разнообразие

Доступны разные типы данных, они могут быть структурированными, полуструктурированными или неструктурированными.По формату данных он делится на три категории.

  • Структурированные данные: Все реляционные базы данных являются примерами структурированных данных, поскольку они определили структуру с определенными типами данных полей в таблицах.
  • Полуструктурированные данные: XML и форматы JSON относятся к полуструктурированным данным, поскольку они могут определять иерархию элементов, но не всегда могут определять типы данных.
  • Неструктурированные данные: Любые документы Word или PDF, текстовые файлы или журналы мультимедиа / сервера являются неструктурированными данными.

Достоверность

Правдивость - это надежность данных. Очевидно, что у нас будут некоторые расхождения в полученных данных.


Жизненный цикл больших данных

Как правило, при анализе больших данных используются следующие процессы.

  • Манипуляция данными
  • Очистка данных
  • Интеграция данных, например, аннотирование с разными источниками данных.
  • Вычисление и анализ с применением различных методов анализа данных.
  • Визуализация результатов в виде информационных панелей или графиков.

Преимущества анализа больших данных

Дело не только в том, насколько велики данные. Но как использовать / анализировать его для предсказания будущего и принятия разумных бизнес-решений. Это может помочь вести бизнес, анализируя данные о продуктах, и может помочь в запуске нового продукта или улучшении услуг компании путем анализа данных обратной связи с клиентами. Это помогает принимать любые управленческие решения в любом бизнесе для разработки и планирования лучших бизнес-стратегий.


  • Экономия затрат: Технологии больших данных, такие как кластерные / облачные вычисления в Apache Hadoop или Apache Spark, избавляют нас от покупки высокопроизводительных машин для обработки больших данных.
  • Сокращение времени: Высокая скорость вычислений в памяти сокращает время обработки данных и позволяет нам быстро принимать решения.
  • Разработка нового продукта: Это помогает узнать потребности клиентов и уровень удовлетворенности для следующего продукта, который будет разработан.
  • Понимание рыночных тенденций: Например, знание моделей покупок клиентов или наиболее покупаемых товаров может помочь понять потребности рынка.
  • Анализ настроений: Изучение мнений клиентов из различных социальных сетей может помочь любой индустрии продуктов или услуг улучшить их предложения.

Технологии и инструменты больших данных

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

Apache Hadoop и экосистема

Это платформа с открытым исходным кодом для параллельной обработки / вычисления данных. Это стандартная платформа для обработки больших данных. Он был основан на документах Google MapReduce и Google File System.

Это проект экосистемы, который содержит множество других проектов, таких как Pig, Hive, Kafka и т. Д. Другие инструменты аналитики - это Apache Spark и Apache Storm.

Apache Spark

Он более продвинутый, чем Apache Hadoop, и также является многоцелевым механизмом. Это универсальный механизм доступа к данным для быстрой крупномасштабной обработки данных. Он предназначен для итеративных вычислений в памяти: вычислений и интерактивного интеллектуального анализа данных. Он обеспечивает многоязычную поддержку: Java, Scala, Python и R. Он имеет различные встроенные библиотеки, которые позволяют работникам обработки данных быстро перебирать данные для ETL, машинного обучения, SQL и потоковой обработки.

Есть много других способов обработки больших данных. Выше представлены 2 основных фреймворка.

Например. Apache Hive для хранилищ данных, Apache Pig для запросов к большим данным, Apache Drill, Apache Impala, Apache Spark SQL и Presto и многие другие.

Apache SystemML, Apache Mahout и MLlib Apache Spark очень полезны для применения различных алгоритмов машинного обучения к данным.

Улей

Он работает поверх Hadoop и поддерживает HiveQL для запросов к большим данным.

Свинья

Предназначен для людей, которые не умеют программировать на таких языках, как Java и Scala. Они могут использовать Pig для легкого анализа данных, он обеспечивает доступ к данным по запросу.

Совок

Это помогает переносить структурированный набор данных из реляционных баз данных в Hadoop.

Престо

Facebook разработал механизм запросов с открытым исходным кодом под названием Presto, который может обрабатывать петабайты данных и, в отличие от Hive, не зависит от парадигмы MapReduce и может получать данные в кратчайшие сроки.

Apache Flink

Это платформа с открытым исходным кодом для пакетной распределенной потоковой обработки данных.

Апач Кафка

Это очень быстрая, надежная, отказоустойчивая система обмена сообщениями с возможностью публикации-подписки.

Apache Ambari

Apache ™ Ambari - это платформа для подготовки, управления и мониторинга кластеров Hadoop. Ambari предоставляет основные услуги для операций, разработки и расширения для обоих.

Apache Zeppelin

Это сетевой блокнот для инженеров по обработке данных, аналитиков данных и специалистов по обработке данных. Он предоставляет функции интерактивного приема данных, исследования данных, визуализации, совместного использования и совместной работы в Hadoop и Spark.

Базы данных больших данных

Если мы хотим хранить большие данные в базе данных, у нас должна быть параллельная база данных или базы данных с архитектурой без совместного использования, например Vertica, Netezza, Aster, Greenplum и т. Д.

Базы данных NoSQL

Google bigtable, Amazon Dynamo, Apache Hbase, Apache Cassandra и т. Д. Являются примерами баз данных NoSQL.

Более быстрые поиски

Чтобы иметь возможность быстрее выполнять поиск в этих больших данных, доступно множество решений / механизмов, таких как Apache Solr или Elastic Search. Apache Solr - мощная поисковая система.

Архитектура Hadoop

Hadoop - это платформа с открытым исходным кодом для распределенной обработки больших наборов данных на кластерах машин. Он обеспечивает распределенное хранилище (файловую систему), а также распределенные вычисления в кластере.

Архитектура

На следующей диаграмме описаны четыре основных компонента Hadoop.

Уменьшение карты

Это парадигма программирования для параллельной обработки больших данных на кластерах серийного оборудования с надежностью и отказоустойчивостью.

Шаблон состоит в том, чтобы разбить проблему на небольшие части работы. Map, Reduce и Shuffle - это три основные операции MapReduce.

  • карта: Принимает входные данные и преобразуется в набор данных, где каждая строка ввода разбивается на пару ключ-значение (кортеж).
  • Уменьшать: Эта задача принимает входные данные из выходных данных фазы Map и объединяет (агрегирует) кортежи данных в меньшие наборы на основе ключей.
  • Перемешать: Это процесс передачи данных от картографов редукторам.

Каждый узел кластера состоит из одного главного JobTracker и одного подчиненного TaskTracker.

  • JobTracker отвечает за управление ресурсами и отслеживание доступности ресурсов. Он планирует рабочие задачи на ведомых устройствах. Это единственная точка отказа, то есть, если она выходит из строя, все выполняемые задания останавливаются.
  • TaskTrackers выполняет задачи, назначенные мастером, и периодически предоставляет статус задачи мастеру.

HDFS (Распределенная файловая система Hadoop)

Это файловая система, предоставляемая Hadoop. Он основан на файловой системе Google (GFS) и работает на кластере машин надежным и отказоустойчивым образом. Он имеет архитектуру ведущий / ведомый.

  • Имя Узел: Он управляет метаданными файловой системы и хранит расположение данных.
  • DataNode: Фактические данные хранятся в DataNode.
  • Дополнительное имя Узел: NameNode также копирует метаданные во вторичный NameNode, чтобы иметь резервную копию, поэтому, когда NameNode выходит из строя, Secondary NameNode занимает место NameNode.

Файл в HDFS разбивается на блоки данных, которые называются блоками, и эти блоки затем сохраняются в DataNode. NameNode сохраняет отображение блоков в DataNodes. HDFS предоставляет интерфейс оболочки со списком команд для взаимодействия с файловой системой.

ПРЯЖА (еще один переговорщик ресурсов)

Это особенность Hadoop 2, это менеджер ресурсов.

Функции

  • Мультиарендность: позволяет нескольким механизмам использовать Hadoop, которые могут одновременно обращаться к одному и тому же набору данных.
  • Использование кластера: планирование YARN оптимизирует использование ресурсов кластера.
  • Масштабируемость: YARN фокусируется на планировании расширения кластеров.
  • Совместимость: существующие приложения MapReduce, разработанные с помощью Hadoop 1, могут работать в YARN без каких-либо сбоев.

Как работает архитектура MapReduce

Пользователь может отправить задание, указав следующие параметры.

  • Расположение входных и выходных файлов.
  • Файл jar, содержащий классы карты и сокращенную реализацию
  • Конфигурация задания путем установки различных параметров для конкретного задания.

Затем клиент заданий Hadoop отправляет задание и конфигурацию в JobTracker, который снова передает код / ​​конфигурацию ведомым устройствам, планирует задачи и отслеживает их.

TaskTrackers на разных узлах выполняет задачу в соответствии с реализацией MapReduce и выводит данные в HDFS.

Hadoop - Настройка среды

Ява

Должна быть обязательна Java, проверьте, установлена ​​ли в системе Java, с помощью следующей команды:

Ява -версия

Он предоставит вам подробную информацию о версии, если она уже установлена, если вы не выполните следующие шаги, чтобы установить java на свой компьютер.

  • Скачайте java по ссылке и распакуйте.
  • Переместите его в / usr / local / или в предпочитаемое вами место, чтобы сделать его доступным для всех пользователей.
  • Установите переменную окружения PATH и JAVA_HOME:

экспорт JAVA_HOME=/ usr /местный/jdk1.7.0_71 экспорт ДОРОЖКА=$ ПУТЬ:$ JAVA_HOME/мусорное ведро

  • Проверьте установку Java:

Ява -версия

Установка Hadoop

Загрузите и извлеките последнюю версию Hadoop из фонда программного обеспечения Apache.

Ниже приведены режимы, в которых мы можем работать с Hadoop.

  • Автономный режим: В этом режиме Hadoop можно запускать как отдельный Java-процесс локально.
  • Псевдо-распределенный режим: В этом режиме каждый демон Hadoop, такой как HDFS, YARN, MapReduce, может быть запущен как отдельный процесс Java с помощью распределенного моделирования на одной машине. В разработке этот режим является наиболее предпочтительным.
  • Полностью распределенный режим: В этом режиме Hadoop работает в кластере как минимум из более чем одной машины.

Автономная установка Hadoop

  • Мы уже загрузили и извлекли Hadoop, мы можем переместить его в предпочтительное место или в / usr / local /, и нам нужно настроить переменную среды следующим образом:

экспорт Hadoop_HOME = / usr / local / Hadoop

  • Проверьте версию Hadoop, установленную с помощью следующей команды.

версия хадупа

  • Если вы получили подробную информацию о версии, это означает, что автономный режим работает нормально.
  • Теперь вы можете запустить jar с примерами, мы увидим это позже.

Псевдо-распределенная установка Hadoop

  • Заменить путь java в Hadoop-env.sh файл, заменив значение JAVA_HOME на расположение каталога установки Java на вашем компьютере.
  • core-site.xml содержит конфигурации для номера порта экземпляра Hadoop, ограничения памяти, места хранения данных, размера буферов для чтения / записи. Отредактируйте файл и добавьте следующую конфигурацию.

конфигурация> свойство> имя> fs.default.name/name> значение> hdfs: // localhost: 9000 / значение> / свойство> / конфигурация>

  • hdfs-site.xml Файл содержит конфигурации для коэффициента репликации, пути к узлам имен и пути к узлам данных на ваших локальных машинах. Откройте файл и добавьте в него следующие конфигурации в соответствии с требованиями.

конфигурация> свойство> имя> dfs.replication / имя> значение> 1 / значение> / свойство> свойство> имя> dfs.name.dir / имя> значение> расположение каталога namenode из вашей локальной файловой системы / значение> / свойство > свойство> имя> dfs.data.dir / имя> значение> расположение каталога datanode в вашей локальной файловой системе / значение> / свойство> / конфигурация>

  • пряжа-site.xml используется для настройки YARN в Hadoop.
  • mapred-site.xml используется для указания конфигураций, связанных с фреймворком MapReduce, который нам необходимо использовать.

Проверка установки Hadoop

  • Настройте namenode, используя следующие команды.

Узел имен HDFS -формат

  • Проверьте Hadoop dfs с помощью следующих команд.

start-dfs.sh

  • Проверьте сценарий пряжи.

start-yarn.sh

  • Доступ к Hadoop в браузере на http: // локальный: 50070 /
  • Проверьте все приложения, запущенные в кластере на http: // локальный: 8088 /

Что такое HDFS?

HDFS - это распределенная файловая система, основанная на файловой системе Google (GFS). Он работает на стандартном оборудовании. Он обеспечивает хранилище для приложений, работающих поверх Hadoop.

Архитектура HDFS

HDFS следует архитектуре Master / Slave и состоит из следующих элементов в своей архитектуре.

Как это работает?

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

Блокировать

Файл в HDFS разделен на сегменты, называемые блоками. Размер блока по умолчанию составляет 64 МБ, минимальный объем данных может храниться в сегменте. Его можно изменить в конфигурации HDFS.

Namenode

Это стандартное оборудование, которое действует как ведущее устройство, и ниже приводится список его задач.

  • Он управляет пространством имен файловой системы. Он хранит метаданные файлов, хранящихся на ведомых устройствах. Он хранит данные в оперативной памяти, а не на диске.
  • Он регулирует доступ к данным для клиентов.
  • Он также выполняет файловые операции, такие как переименование файла, открытие файла и т. Д.

Дополнительное имя Узел

FileSystem Image хранится в основной памяти Name Node (он содержит информацию метаданных).

Приходят новые записи, это фиксируется в журнале редактирования. вторичный узел имени периодически берет копию журнала редактирования и образ файловой системы из NameNode, затем объединяет их, создает новую копию и загружает ее в NameNode.

DataNode

Все узлы данных работают на стандартном оборудовании, которое действует как ведомые устройства. Обязанности DataNode:

  • Выполняет операции чтения / записи.
  • Они также выполняют такие операции, как создание, удаление и репликация блоков в соответствии с запросом от Namenode.

Особенности HDFS

Отказоустойчивость

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

Высокая доступность

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

Надежность данных

HDFS может хранить данные в диапазоне 100 ПБ. Это распределенное надежное хранилище данных. Это делает данные надежными, создавая копии блоков. Таким образом, в критических условиях потери данных не происходит.

Репликация

Это самая важная особенность HDFS.

Минимальное движение данных

Hadoop перемещает код в данные в HDFS, что сокращает количество операций ввода-вывода в сети и сохраняет полосу пропускания.

Масштабируемость

HDFS хранит данные на различных машинах, поэтому при увеличении требований мы можем масштабировать кластер.

  1. Вертикальная масштабируемость: Речь идет о добавлении дополнительных ресурсов, таких как ЦП, память и диск, на существующие узлы кластера.
  2. Горизонтальная масштабируемость: Речь идет о добавлении дополнительных машин в кластеры "на лету" без простоев.

Операции HDFS

Когда вы только что установили Hadoop и настроили HDFS, откройте namenode и выполните следующую команду. Он форматирует HDFS.

хадуп namenode -формат

Следующая команда запустит распределенную файловую систему.

Начало-dfs.ш

Операции

Листинг файлов в HDFS

Hadoop FS -ls аргументы>

Это будет список файлов по заданному пути.

Вставка данных в HDFS

  • Следующая команда для создания входного каталога.

Hadoop FS -mkdir путь к каталогу ввода>

  • Чтобы вставить данные из локальной файловой системы в HDFS.

Hadoop FS -ставить локальный путь к входному файлу, который будет помещен в HDFS>путь к каталогу ввода>

  • Проверьте файл с помощью команды ls.

Hadoop FS -mkdir путь к каталогу ввода>

Получение данных в HDFS

  • Просматривайте данные с помощью команд cat.

hadoop fs -cat путь к просматриваемому файлу>

  • Загрузите файл из HDFS в локальную файловую систему.

Hadoop FS -получатьПуть к файлу HDFS> путь в локальной файловой системе, в которой должен быть сохранен файл>

Завершение работы HDFS

Эта команда остановит HDFS.

останавливаться-dfs.ш

Прочие команды

  • ls путь>: Выводит список содержимого данного каталога.
  • lsr путь>: Рекурсивно также отображает содержимое подкаталогов.
  • du path>: Отображает использование диска.
  • путь dus>: Печатает сводку использования диска
  • mv src> dest>: Перемещает файл или каталог в место назначения.
  • cp src> dest>: Копирует файл каталога в место назначения.
  • rm путь>: Удаляет указанный файл или пустой каталог
  • rmr путь>: Рекурсивно удаляет указанный файл или пустой каталог.
  • поместите локальный src> dest>: копирует файл или каталог с локального компьютера в HDFS.
  • copyFromLocal локальный src> dest>: то же, что и -put
  • moveFromLocal локальный src> dest>: Перемещает файл или каталог из локального в HDFS.
  • получить src> local dest>: Копирует файл или каталог из HDFS в локальный.
  • getmerge src> местное назначение>: Он извлекает файлы, а затем объединяет их в один файл.
  • cat имя_файла>: Для просмотра содержимого файла.
  • copyToLocal src> местный адрес> : то же, что и -get
  • moveToLocal src> местное назначение>: Работает как -get, но затем удаляется из HDFS.
  • mkdir путь>: Он создает каталог в HDFS.
  • touchz путь>: Чтобы создать пустой файл по заданному пути HDFS.
  • тест - [ezd] путь>: Чтобы проверить, существует ли данный путь HDFS или нет, вернет 0, если не существует еще 1.
  • stat [формат] путь>: Печатает информацию о пути.
  • хвост [-f] имя_файла>: Отображает последнее содержимое файла.
  • chmod: Чтобы изменить права доступа к файлу или каталогам.
  • chown: Чтобы установить владельца файла или каталогов.
  • chgrp: Установить группу владельцев.
  • справка имя-команды>: Для отображения сведений об использовании любой из команд.

Набирающие популярность

Набирающие популярность

Оставайтесь креативными: как выбрать правильный конструктор сайтов для вашего замечательного блога
Интернет

Оставайтесь креативными: как выбрать правильный конструктор сайтов для вашего замечательного блога

Ловелли наставляет копирайтеров и практиков рекламных агентств. Попутно изучает стартап-предпринимательство и социальную психологию.При планировании веб-сайта многие люди слишком сосредоточены на техн...
25 забавных вещей на Google Картах
Интернет

25 забавных вещей на Google Картах

Я бывший знаток классики и мифологии. Мне нравится писать о древнем мире, популярной науке и своих увлечениях.Исследовать мир глазами Google Map - это весело. Удивительно, какие странные и сумасшедшие...