Углубленное исследование Apache Flume: артефакт сбора данных в области больших данных [Shangjin Xiaocaizhu Big Data Series]
Углубленное исследование Apache Flume: артефакт сбора данных в области больших данных [Shangjin Xiaocaizhu Big Data Series]

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

Введение: В связи с быстрым развитием технологий больших данных предприятиям и организациям необходимо собирать огромные объемы данных из различных источников. Сбор данных является важной частью процесса обработки больших данных, и Apache Flume, как надежный и масштабируемый инструмент сбора данных, играет важную роль в области больших данных. В этой статье будут глубоко изучены технические принципы и основные компоненты Apache Flume, а также продемонстрировано его использование в практических приложениях на примерах кода.

1. Обзор Apache Flume

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

2. Основные компоненты Flume

2.1 Источник (источник данных)

Источник данных Flume — это отправная точка сбора данных, которая отвечает за чтение данных из внешних источников данных и передачу их в каналы Flume. Flume предоставляет несколько типов источников данных, таких как Avro Source, Thrift Source и Spooling Directory Source. Avro Source поддерживает получение данных по протоколу Avro, Thrift Source поддерживает получение данных по протоколу Thrift, а источник буферного каталога отслеживает файлы в указанном каталоге и использует содержимое файла в качестве источника данных.

2.2 Канал

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

2.3 Приемник (пункт назначения данных)

Приемник — это пункт назначения данных Flume. Он отвечает за извлечение данных из канала и отправку их в указанную целевую систему. Flume предоставляет несколько типов приемников, таких как HDFS Sink, Hive Sink и Elasticsearch Sink. HDFS Sink записывает данные в распределенную файловую систему Hadoop, Hive Sink записывает данные в таблицы Hive, а Elasticsearch Sink записывает данные в индексы Elasticsearch.

3. Рабочий процесс Flume и поток данных

3.1 Агент и событие

Рабочая единица Flume называется агентом. Агент состоит из одного или нескольких источников, каналов и приемников. Агент получает данные из источника данных, преобразует их в событие и передает в канал, затем приемник получает событие из канала и отправляет его по назначению. Событие — это базовая единица данных в Flume, которая содержит исходные данные и связанные метаданные.

3.2 Рабочий процесс Flume

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

4. Настройка и развертывание Flume

4.1 Структура файла конфигурации Flume

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

4.2 Анализ общих параметров конфигурации

При настройке Flume пользователям необходимо понимать и настраивать некоторые общие параметры. Например, параметры конфигурации источника включают тип источника данных, адрес прослушивания и порт; параметры конфигурации канала включают тип канала, пропускную способность и транзакцию; параметры конфигурации приемника включают тип назначения, целевой адрес и порт;

Пример кода: Ниже приведен простой пример файла конфигурации Flume для отправки данных журнала из источника Avro в приемник HDFS.

Язык кода:javascript
копировать
# flume.conf
agent.sources = avroSource
agent.channels = memoryChannel
agent.sinks = hdfsSink

# Avro Source
agent.sources.avroSource.type = org.apache.flume.source.avro.AvroSource
agent.sources.avroSource.bind = 0.0.0.0
agent.sources.avroSource.port = 44444

# Memory Channel
agent.channels.memoryChannel.type = memory
agent.channels.memoryChannel.capacity = 10000

# HDFS Sink
agent.sinks.hdfsSink.type = hdfs
agent.sinks.hdfsSink.hdfs.path = hdfs://localhost:9000/flume/logs
agent.sinks.hdfsSink.hdfs.fileType = DataStream
agent.sinks.hdfsSink.hdfs.writeFormat = Text

# Binding Source and Sink with Channel
agent.sources.avroSource.channels = memoryChannel
agent.sinks.hdfsSink.channel = memoryChannel

С помощью приведенного выше файла конфигурации вы можете запустить агент Flume, прослушать порт 44444 для получения данных в формате Avro и записать данные по указанному пути HDFS.

в заключение:

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

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.