Поняв компоненты и функциональные характеристики, включенные в каждую экосистему больших данных, вы можете использовать эти компоненты для создания платформы больших данных для хранения и расчета данных. На рисунке ниже показана общая архитектура платформы больших данных.
Видео объяснение следующее:
Общую архитектуру платформы больших данных можно разделить на пять уровней: уровень источника данных, уровень сбора данных, уровень платформы больших данных, уровень хранилища данных и уровень приложений.
Основная функция уровня источника данных — предоставление различных необходимых бизнес-данных, таких как данные пользовательских заказов, данные транзакций, данные системного журнала и т. д. Короче говоря, все данные, которые могут быть предоставлены, можно назвать источниками данных. Хотя существуют различные типы источников данных, их можно разделить на две основные категории в системе платформы больших данных, а именно: автономные источники данных и источники данных в реальном времени. Как следует из названия, автономные источники данных используются в автономных вычислениях больших данных, а источники данных в реальном времени используются в вычислениях больших данных в реальном времени.
Имея данные из базового источника данных, вам необходимо использовать инструменты ETL для завершения сбора, преобразования и загрузки данных. Такие компоненты предусмотрены в системе Hadoop. Например, вы можете использовать Sqoop для завершения обмена данными между платформой больших данных и реляционной базой данных, используя Flume для завершения сбора данных журнала; Помимо компонентов, предоставляемых самой системой платформы больших данных, типичным методом сбора данных также являются сканеры. Конечно, вы также можете использовать сторонние инструменты сбора данных, такие как DataX и CDC, для завершения работы по сбору данных.
Чтобы решить проблему связи между уровнем источника данных и уровнем сбора данных, между этими двумя уровнями можно добавить шину данных. Шина данных не обязательна. Она введена только для уменьшения связи между уровнями при проектировании архитектуры системы.
Это базовый уровень всей системы больших данных, который используется для хранения больших данных и вычислений с большими данными. Поскольку платформу больших данных можно рассматривать как метод реализации хранилища данных, ее можно разделить на автономное хранилище данных и хранилище данных в реальном времени. Они представлены отдельно ниже.
После того как базовый уровень сбора данных получит данные, их обычно можно сохранить в HDFS или HBase. Затем автономные вычислительные механизмы, такие как MapReduce, Spark Core и Flink DataSet, завершают анализ и обработку автономных данных. Чтобы иметь возможность единообразно управлять и планировать различные вычислительные механизмы на платформе, эти вычислительные механизмы можно запускать на Yarn, а затем использовать программы Java или Scala для выполнения анализа и обработки данных; Чтобы упростить разработку приложений, система платформы больших данных также поддерживает использование операторов SQL для обработки данных, то есть предоставляются различные механизмы анализа данных, такие как Hive в системе Hadoop, а его поведение по умолчанию — Hive на MapReduce. Таким образом, стандартный SQL можно написать в Hive, а движок Hive преобразует его в MapReduce, а затем запускает в Yarn для обработки больших данных. Помимо Hive, распространенные механизмы анализа больших данных включают Spark SQL и Flink SQL.
После того, как базовый уровень сбора данных получает данные в реальном времени, чтобы сохранить данные и обеспечить их надежность, собранные данные могут быть сохранены в системе обмена сообщениями Kafka, а затем использованы различными вычислительными механизмами реального времени, такими как; как Storm, Spark Stream и Flink DataStream для обработки. Как и автономные хранилища данных, эти вычислительные механизмы могут работать на Yarn и поддерживать операторы SQL для обработки данных в реальном времени.
В процессе реализации автономного хранилища данных и хранилища данных в реальном времени могут использоваться некоторые общие компоненты, такие как использование MySQL для хранения метаинформации, использование Redis для кэширования, включая использование ElasticSearch (сокращенно ES) для завершения поиска данных. и т. д.
При поддержке уровня платформы больших данных можно дополнительно построить уровень хранилища данных. При построении модели хранилища данных ее можно построить на основе модели звезды или модели снежинки. Витрины данных и алгоритмы машинного обучения, упомянутые ранее, также можно отнести к этому уровню.
Благодаря различным моделям данных и данным на уровне хранилища данных на основе этих моделей и данных можно реализовать различные сценарии приложений. Например: анализ популярных продуктов в электронной коммерции, анализ социальных сетей в графовых вычислениях, внедрение рекомендательных систем, контроль рисков, прогнозирование поведения и т. д.