Выход на этап больших данных означает переход на этап NoSQL, который больше ориентирован на сценарии OLAP, то есть хранилища данных, BI-приложения и т. д.
Развитие технологий больших данных не случайно. Централизованные базы данных или распределенные базы данных, основанные на архитектуре MPP, часто используют стабильные, но относительно дорогие миникомпьютеры, компьютеры «все в одном» или серверы ПК с относительно плохой масштабируемостью, в то время как структуры обработки больших данных могут быть основаны на недорогих обычных аппаратных серверах; построены и теоретически поддерживают неограниченное расширение для поддержки сервисов приложений.
Наиболее известным в области больших данных является Hadoop Экология в целом это в основном Зависит от Три части:Базовая система хранения файлов HDFS(Hadoop Distributed File System,Hadoop распределенная файловая система)、Система расчета планирования ресурсов Yarn(Yet Another Resource переговорщик, другой координатор ресурсов) и на основе HDFS и Компоненты приложений верхнего уровня Yarn, такие как HBase、Hive ждать。типичныйна основе Hadoop Приложение показано на рисунке ниже.
▲Рисунок: Типичное приложение Hadoop.
01
HDFS
HDFS Предназначен для работы на оборудовании общего назначения (Commodity Распределенная файловая система на оборудовании). Она имеет много общего с существующими распределенными файловыми системами, такими как типичная Master-Slave Архитектура(Я не собираюсь представлять это здесь.),Есть и различия,HDFS да Высоко отказоустойчивая система,Подходит для развертывания на дешевых машинах.оHDFS Здесь я хочу отметить два основных момента: настройку количества копий по умолчанию и осведомленность о стойке (Rack Awareness)。
Число копий HDFS по умолчанию — 3. Это связано с тем, что Hadoop обладает высокой отказоустойчивостью. С точки зрения избыточности и распределения данных данные необходимо хранить в разных шкафах в одном компьютерном зале и в разных центрах обработки данных, чтобы обеспечить максимальный объем данных. доступность. Следовательно, для достижения вышеуказанной цели блоки данных необходимо хранить как минимум на разных стойках в одном компьютерном зале (2 копии) и в стойке по всему дата-центру (1 копия), всего 3 копии. данных.
Целью осведомленности о стойках является попытка обеспечить возможность связи между различными вычислительными узлами внутри одной стойки, а не между стойками, тем самым уменьшая передачу данных между различными сетями в распределенных вычислениях и уменьшая потребление ресурсов пропускной способности сети. Например, когда чтение данных происходит в кластере, клиент определяет, какой узел данных отправляет данные клиенту в порядке приоритета от ближнего к дальнему, поскольку в распределенной среде сетевой ввод-вывод стал основным узким местом производительности.
Только глубоко поняв эти два момента, мы сможем понять, почему Hadoop Высокая отказоустойчивость。Высокая отказоустойчивость Hadoop Основа, которая может работать на оборудовании общего назначения.
02
Yarn
Yarn — еще один подпроект Hadoop после Common, HDFS и MapReduce. Он был предложен в MapReduceV2.
В Hadoop1.0 JobTracker состоит из двух частей: диспетчера ресурсов (реализуемого модулем TaskScheduler) и управления заданиями (реализуемого несколькими модулями в JobTracker).
существовать Hadoop1.0 ,JobTracker Не существует разделения функций, связанных с управлением ресурсами, и функций, связанных с программами, одна за другой. Постепенно становится узким местом кластера, что приводит к плохой масштабируемости, снижению использования ресурсов и невозможности поддержки нескольких платформ. Хватит и многих других вопросов.
существовать MapReduceV2 в пряже Ответственный за управление MapReduce ресурсы (память, процессор и т. д.) и поместите его упакованный в Контейнер. Это сделает MapReduce Сосредоточьтесь на задачах обработки данных, с которыми он хорошо справляется, не думая о планировании ресурсов. Эта слабосвязанная архитектура обеспечивает Hadoop Гибкость общей структуры.
03
Hive
Hive основан на Hadoop инфраструктура хранилища данных, которая использует простые SQL заявление (аббревиатура HQL) для запроса и анализа хранилищасуществовать. HDFS данные вводим и помещаем SQL Заявление преобразуется в MapReduce Программа для обработки данных. Основные различия между традиционными реляционными базами данных Hive отражены в следующих моментах.
1) Место хранения, Hive изданныехранилищесуществовать HDFS или HBase В задних общих хранилищах существует голое устройство или локальная файловая система, Зависит от В Hive основан на HDFS построено, то зависит от HDFS Характеристики отказоустойчивости Hive Таблицы данных, естественно, избыточны.
2) Обновление базы данных, Hive Он не поддерживает обновления. Обычно он пишется один раз, а читается и записывается несколько раз (эта часть начинается с). Hive После 0.14 поддерживаются транзакционные операции, но ограничений больше), но из-за Hive основан на HDFS В качестве базового хранилища и HDFS Чтение и запись не поддерживает функции транзакций, поэтому Hive Поддержка транзакций обязательно требует разделения файлов данных и файлов журналов. Только программное обеспечение может поддерживать характеристики транзакции.
3) Исполнение SQL задерживать,Hive Задержка относительно высока, поскольку каждое выполнение требует SQL Оператор анализируется в MapReduce программа.
4) По масштабу данных,Hive Обычно TB Уровень иназад относительно невелик.
5) Масштабируемость,Hive поддерживать UDF, UDAF, UDTF, последний имеет относительно плохую масштабируемость.
04
HBase
HBase (база данных Hadoop) — это высоконадежная, высокопроизводительная, столбцово-ориентированная, масштабируемая распределенная система хранения. Его базовая файловая система использует HDFS, а ZooKeeper используется для управления связью между HMaster кластера и каждым сервером региона, мониторинга состояния каждого сервера региона и хранения адреса входа каждого региона.
1. Функции
HBase — это база данных в форме «ключ-значение» (аналог Map в Java). Поскольку это база данных, в ней должны быть таблицы. Таблицы в HBase, вероятно, имеют следующие характеристики.
1) Большой: таблица может иметь сотни миллионов строк и миллионы столбцов (когда столбцов много, вставка становится медленнее).
2) Ориентация на столбцы: управление хранением и разрешениями на основе столбцов (семейств), независимый поиск по столбцам (семействам).
3) Разреженность: пустые (нулевые) столбцы не занимают места для хранения, поэтому таблицу можно сделать очень разреженной.
4) Данные в каждой ячейке могут иметь несколько версий. По умолчанию автоматически назначается номер версии, который является меткой времени при вставке ячейки.
5) Все данные в HBase представляют собой байты, и не существует конкретного объекта данных, определенного по типу (поскольку системе необходимо адаптироваться к различным типам форматов данных и источникам данных, схема не может быть строго определена заранее).
Здесь следует отметить,что HBase такжеоснован на HDFS, поэтому также имеет значение по умолчанию 3 копирование, функции избыточности данных точка. также HBase Также используйте WAL функции, обеспечивающие согласованность чтения и записи данных.
2. хранилище
HBase Хранилище столбцов используется для хранения данных. Традиционные реляционные базы данных в основном используют хранилище строк. Данные хранятся определенным образом. Характеристика чтения данных заключается в чтении записей данных с диска в соответствии с степенью детализации строк, а затем на основе. Обрабатывать по фактическим данным необходимых полей. Если количество полей в таблице большое, но полей, которые необходимо обработать (особенно). (особенно в сценариях агрегации), из-за основного принципа хранения строк данные по-прежнему необходимо проверять в строках (полных полях). Спросите. В этом процессе существует диск, созданный программой приложения. Ввод-вывод, требования к памяти и сеть I/O и т. д. вызовет определенные Потери. Метод чтения данных на основе столбцов в основном считывает данные в соответствии с детализацией столбца. Этот вид чтения по требованию. Способ уменьшения дискового пространства, генерируемого приложением программы существующие Ввод-вывод, требования к памяти и сеть I/O。
также,Зависит от Поскольку однотипные данные представляют собой унифицированное хранилище, алгоритм сжатия, используемый в существующем процессе сжатия, основан на А эффективность будет еще больше повышена, что еще больше снизит требования к ресурсам в распределенных вычислениях.
Метод столбчатого хранения больше подходит для сценариев приложений OLAP, поскольку этот тип сценария имеет характеристики большого объема данных и небольшого количества полей запроса (часто агрегатных функций). Например, недавно популярный ClickHouse также использует столбчатое хранилище для хранения данных.
05
Spark и Spark Streaming
Spark Зависит от Twitter Разработанный компанией с открытым исходным кодом, он решает проблему анализа массивных потоков данных. Искра Сначала поместите данные импортировать Spark кластера, а затем быстро сканировать данные посредством управления на основе памяти, реализованного с помощью итеративных алгоритмов общая ситуация I/O Операции сведены к минимуму для повышения общей производительности обработки. Этот Hadoop Найдите «данные» из «расчета» Идея реализации аналогична и обычно подходит для сценариев, в которых несколько запросов и анализов записываются один раз.
Spark Streaming основан на Spark Платформа потоковых вычислений, которая обрабатывает и контролирует данные в реальном времени. и может записать рассчитанные результаты в HDFS. В настоящее время это самые популярные вычисления в реальном времени. Flink Похожи, но да и существование существенно отличаются от да, поскольку Spark Streaming основан Для обработки используется метод Micro-Batch (Микро-Пакет), а не обрабатывается построчно.