Практика JD.com в области розничной облачной платформы больших данных
Практика JD.com в области розничной облачной платформы больших данных

Поделиться гостями:У Вэйвэй Цзиндун Инженер-архитектор

Под редакцией: Чэнь Фэйцзюнь Шэньчжэньский университет

Создано сообществом: DataFun.


Введение:С учетом потребностей корректировки бизнеса и интеграции ресурсов кластера,,большие кластер Миграция в системах обработки данных данные сложные и запутанные. Эта статья будет опубликована в «Цзиндунбольшие». Платформа данных является примером, представившим в прошлом году распределение данных Цзиндунхранилище и Многоуровневое. Исследование и практика на хранилище.

Сегодняшнее введение начнем со следующих трех пунктов:

  • Введение в архитектуру платформы данных JD
  • Междоменное хранилище
  • Многоуровневое хранилище

--

Введение в архитектуру платформы данных JD

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

Объем этой системы данных составляет несколько ЭБ (1ЭБ=1024ПБ).,Имеются десятки тысяч узлов,Три места и несколько центров,Ежедневная пропускная способность составляет сотни петабайт. Столкнувшись с таким большим объемом данных,Цзиндунбольшие Платформа данных использует визуальное управление. Проблемы кластера можно быстро и легко обнаружить с помощью системы мониторинга, обеспечивая стабильность кластера и обслуживания. доступность。

--

Междоменное хранилище

Междоменное хранилище——вопрос

В Междоменном хранилище До применения архитектуры,Синхронизация данных между компьютерными залами в основном реализуется бизнес-стороной, выполняющей Distcp между разными компьютерными залами.,Таким образом, будет некотороескрытые опасности:

  • первый вопрос:Согласованность метаданных гарантируется бизнес-стороной.,Миграция данных требует вмешательства бизнеса,Высокая стоимость и долгое время.
  • второй вопрос:Движение между машинными залами не контролируется,Влиять на задачи синхронизации,Необходимо использовать внешнюю систему планирования и хранилище.
  • Третий вопрос:Создание нескольких копий избыточных данных,Затраты на обмен данными и синхронизацию высоки,Например, несколько копий одних и тех же данных загружаются между разными узлами данных в разных компьютерных залах.,что приводит к избыточности.
  • Четвертый вопрос:Система аварийного восстановления без кластера многокомпьютерного зала,Преимущества нескольких компьютерных залов не используются в полной мере.

Междоменное хранилище——Архитектура

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

Цзиньдун Междоменное Основная идея архитектуры хранилища состоит в том, чтобы обеспечить домены сбоя между машинными помещениями за счет «полная топология хранилища + полная сеть» и в конечном итоге добиться больших Аварийное восстановление данных за пределами площадки и возможности хранения ключевых данных в нескольких машинных залах.

этого проектаОсновные проблемыиметь:

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

программыОсновные преимуществаиметь:

  • сильная консистенция:Глобальная согласованность файлов,Автоматическая синхронизация данных позволяет избежать несогласованности и избыточности данных.
  • Принцип повторного использования:Автономная установка исправлений в компьютерных залах,Междоменное исправление данных выполняется автоматически в фоновом режиме.
  • Легко мигрировать:Низкая стоимость изменения данных,Отделите данные от бизнеса,Сокращение затрат,Повышайте эффективность.
  • Высокая доступность:Поддержка переключения между машинными залами,Повышение скорости аварийного восстановления компьютерного зала,Повысьте безопасность данных.

Междоменное хранилище — Междоменный поток данных.

В реализации Междоменного процесс восстановления,УсыновленныйДва метода потока данных

  • Асинхронный поток данных

Данные сначала записываются в локальный компьютерный зал, а затем автоматически выполняется междоменная синхронизация через namenode (NN). Производительность записи этого метода передачи данных соответствует существующему немеждоменному сценарию, а задержка синхронизации лучше, чем у решения distcp.

  • Синхронный поток данных

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

Междоменное хранилище——Топология и Восприятие компьютерного зала

Топология и Восприятие компьютерного зала — решение проблемы «узлового позиционирования» Междоменное хранилищеосновнойвопросключевые модули。На основе этого модуля можно контролировать распределение блоков данных и клиентский трафик.。Этот модуль в основномРешите проблему с двух сторон

  • Управление топологией

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

  • Восприятие компьютерного зала

Для междоменных версий клиентов,Информация о компьютерном зале может передаваться в заголовке RPC.,для идентификации и поиска для клиентов, которые не поддерживают междоменные версии;,Услуга сопоставления IP-адресов компьютерного зала, предоставляемая командой сетевого обслуживания Цзиндун., Реализуйте поиск и запрос соответствующего компьютерного зала на стороне клиента.

Междоменное хранилище — междоменная идентификация.

Модуль междоменной идентификации является ключевым решением для решения проблемы «хранения данных в компьютерных залах». Мы используем тег атрибута, который поддерживает копии и EC для описания междоменных атрибутов данных. Например, A:3,B:2,C:2,A,status,[период],[начало,конец] означает, что в компьютерном зале A имеется 3 копии; компьютерный зал C. ; Компьютерный зал A — компьютерный зал для междоменной передачи; [статус] указывает на состояние внутреннего потока существующих данных, включая «i». «nit, обработка, выполнено, недействительно» — четыре состояния; [период] — это временная метка, используемая для междоменной конфигурации компьютерного зала, описывающая стратегию жизненного цикла междоменных данных [начало, конец] — еще одна конфигурация жизненного цикла совместного использования данных; Метод Время начала и окончания обмена данными может быть указано в виде абсолютного времени.

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

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

  • Закрепить метаданные на XATTR
  • Inode Proto построен на памяти
  • Для каждого блока данных создайте идентификатор атрибута блока.

Междоменное хранилище — Междоменное исправление и управление потоком данных.

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

  • Принцип, которого придерживаются при обработке междоменных исправлений, заключается в изоляции междоменной обработки от исходного процесса, чтобы гарантировать, что новый процесс междоменной обработки не влияет на исходную обработку исправлений в том же компьютерном зале в экстремальных ситуациях, таких как компьютерный зал. прерывание сети, может быть гарантирована работа одной машины. Доступны домашние службы метаданных.
  • Добавлен асинхронный междоменный модуль обновления.,Объединение атрибутов междоменных тегов,Внедрение HA-переключения и исправлений,Решите проблему с данными о запасах.
  • Использование программы CR-Checker для замены исходной задачи DistCopy позволяет плавно обновить исходную задачу межкластерной синхронизации до задачи междоменной синхронизации, сводя к минимуму влияние обновлений междоменной архитектуры на исходные существующие задачи.

Логика междоменного исправления показана на рисунке справа. Для дополнительных данных они разделены на два модуля. Дополнительные данные в одном и том же блоке компьютерного зала исправляются через исходные междоменные блоки RedundancyMonitor. Модуль CrossRegionRedundancyMonitor выполняет исправление блоков. Новое средство обновления в основном обрабатывает сценарии междоменного изменения меток, такие как междоменная конфигурация и изменения каталога. После оценки междоменных требований оно добавляется в модуль CrossRegionRedundancyMonitor для обработки исправлений.

Управление междоменным потоком разделено на четыре части.

  • Управление потоком междоменных патчей, строгий контроль междоменной пропускной способности путем настройки пропускной способности.
  • Клиент с приоритетом чтения и записи такой же, как DN компьютерного зала.,На основе представленной ранее функции «Восприятие компьютерного зала».,Чтобы соответствовать компьютерному залу, к которому принадлежат клиент и DN,Обязательно читайте данные DN только одного компьютерного зала.,Избегайте междоменного трафика.
  • Управление потоками междоменного чтения и записи: когда междоменный клиент обращается к данным, которые не содержат междоменный идентификатор, существует два метода обработки для новой версии клиента и старой версии клиента. Для клиентов новой версии статистика трафика и обработка противодавления будут выполняться на NN, чтобы гарантировать, что чтение и запись не будут влиять на пропускную способность основной выделенной линии. Для клиентов старой версии статистика трафика и отчеты будут выполняться на DN. Если предел превышен. Наконец, будет выполнена обработка противодавления.
  • Компьютерный зал Balancer внутренне сбалансирован и выполняет балансировку данных на узлах в одном компьютерном зале.

--

Многоуровневое хранилище

Многоуровневое хранилище——вопрос

Многоуровневое хранилище данных призвано решить проблемы, существующие в исходной структуре.

  • Горячие и холодные данные не обрабатываются по-разному.。Например, основные данные в реальном времени не отличаются от старых данных.,В результате ускоренная обработка основных данных не может быть выполнена.
  • Различные типы оборудования не рассматриваются по-разному.。хранилище Долгосрочная эволюция системы,В кластере существует множество различных типов моделей хранилища.,В предыдущей версии не делалось различий между различными моделями хранилищ.,Невозможно в полной мере использовать возможности оборудования.
  • Управление данными требует совместной обработки данных пользователями.,Есть большая загруженность,Трудности в продвижении

Многоуровневое хранилище

В ответ на вышеуказанные проблемы,Нам необходимо выполнить следующие функциональные требования к Многоуровневому хранилищу: реализовать автоматическую сортировку данных.,Горячие и холодные данные классифицируются и обрабатываются путем маркировки – делятся на горячие, теплые и холодные. Различные модели оборудования также классифицируются по категориям — на SSD, HDD и хранилища высокой плотности. Сопоставление тепловых данных в реальном времени с более эффективной DN,хранилище на оборудовании SSD,Холодные данные хранятся на оборудовании высокой плотности.,Достичь разумного распределения ресурсов.

Многоуровневое хранилище——Сценарии использования

Для реализации вышеперечисленных данных Многоуровневое хранилище существует в основном три сценария применения:

  • ускорение хранения данных

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

  • Архив холодного хранения

Холодные данные Zombie хранятся на устройствах хранения высокой плотности, что позволяет оптимизировать затраты на хранение единицы продукции. Бизнес-сторона выполняет автоматическое распределение «горячих» и «холодных» данных путем настройки динамических правил в измерении кластера и сохраняет «холодные» данные в данных высокой плотности. Чрезмерно «холодные» данные будут напрямую преобразованы в EC (Erasure Coding), что еще больше снижает затраты на хранение.

  • логический подкластер

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

Многоуровневое хранилище——Архитектура

Многоуровневое представлено выше Логика и сценарии применения хранилища будут представлены ниже. В архитектуре хранилища весь фреймворк в основном реализован внутри NN:

  • Иерархическая конфигурация политики:Обеспечить внешнийAPIДоставка и внутренняя конфигурация。
  • API иерархической конфигурации:Обеспечивает иерархический интерфейс доставки политик.,Внешне иерархическая логика может быть реализована посредством автономного анализа данных и бизнес-стороны.
  • Встроенная стратегия наслоения:Настраиваемые и динамически обновляемые стратегии многоуровневого распределения,По умолчанию LRU выполняется путем доступа к статистике монитора.
  • менеджер тегов:Реализация управления метками каталогов и метками узлов.,Управляйте модулем выбора блоков, средством проверки распределения и другими модулями для выполнения миграции данных.
  • Проверка распределения данных:Внедрить распределенную проверку вновь добавленных данных.,Направляет данные для распределения по меткам.
  • Уточнение данных инвентаризации:верно Данные о запасах проводит проверку сканирования и направляет данные о блок запасах мигрировать реализует функции управления жизненным циклом данных;

Многоуровневое хранилище——основной дизайн

Базовый проект Многоуровневого хранилища,Можно разделить на два модуля,Один из них — управление тегами на основе деревьев каталогов в метаданных.,Выделите горячие и холодные данные для данных. Другая часть — это дерево топологии узла;,Используйте виртуальные мультитопологические деревья, чтобы логически различать узлы с разными метками.,Различные типы тегов будут иметь свои собственные независимые деревья топологии.,Достигните более эффективной производительности выбора узла. Существует два способа обновления дерева виртуальной топологии.,Это асинхронные обновления, основанные на весах узлов, и синхронные обновления онлайн- и офлайн-данных.

дополнительные данныеи Данные о запасахв потоке обработкииметьнижеразница

  • дополнительные данные:вернодля запросов на запись,Сначала оцените лейбл,Затем сопоставьте соответствующий узел,Запишите данные.
  • Данные о запасах:Фоновая проверка распределения данных сканирует метки данных,Сопоставьте соответствующие узлы на основе дерева виртуальной топологии.,затем завершите Миграция данные или конверсия.

--

Сессия вопросов и ответов

Вопрос 1. Какой метод используется для миграции данных в кластеры высокой плотности и какая стратегия на нем основана?

A1: Мы реализуем миграцию данных на основе многоуровневых функций. Общая логика обработки основана на настройке динамических правил, которые делят данные на три типа: холодные, теплые и горячие. Для «теплых» данных мы используем реализацию, подобную Balancer, для перемещения данных в хранилище с высокой плотностью; для «холодных» данных мы реализуем простую систему планирования внутри HDFS для отправки «холодных» данных, обнаруженных при сканировании, в DN, а DN реализует миграцию данных. . и передача на месте в ЕС.

Вопрос 2. Учитывает ли JD.com биллинг HDFS. Каковы размеры?

О2: Функция выставления счетов — это также то направление, на котором мы сосредоточимся на следующем этапе. Общая идея состоит в том, чтобы использовать функцию выставления счетов, чтобы помочь бизнес-сторонам использовать кластеры хранения более разумно и эффективно. В настоящее время мы классифицируем операции записи и операции чтения. Поскольку операции записи оказывают большее давление на NN, биллинговый вес операций записи будет превышать биллинговый вес операций чтения, и это соотношение составляет примерно 10 раз. На стороне NN информация о выставлении счетов будет суммироваться на маршрутизаторе HDFS для создания единой сводной статистики выставления счетов на уровне кластера. Маршрутизатор HDFS будет регулярно отправлять статистическую информацию в NN. NN будет классифицировать доступ пользователей на основе статистической информации. Доступ бизнес-сторон, превышающий заданную квоту, будет понижен.

Вопрос 3: Будет ли давление на NN большим? Как мы можем оптимизировать NN?

A3: Когда внутри NameNode добавляется новый модуль, время, в течение которого каждый модуль занимает внутреннюю блокировку ядра NameNode, будет подсчитываться в режиме реального времени. Когда время занятия блокировки вновь добавленного модуля превышает установленный порог, программа динамически уменьшит. время занятости блокировки модуля, чтобы гарантировать отсутствие влияния на внешнюю пропускную способность NameNode.

На этом на сегодня все, спасибо всем.


Поделиться гостями

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 позволяет экспортировать с сохранением двух десятичных знаков.