Брошенный крупнейшим в мире пользователем! HBase, бывший повелитель баз данных, умирает
Брошенный крупнейшим в мире пользователем! HBase, бывший повелитель баз данных, умирает
Организация|Донгмей, Ядер-Кола

Планирование|Тина

Недавно команда инженеров Pinterest объявила о плане процесса прекращения поддержки кластеров HBase, сославшись на высокую стоимость строительства и обслуживания инфраструктуры, трудности с поиском специалистов по HBase и недостаточные функции продукта. Поскольку Pinterest также обратился к технологиям баз данных, таким как Druid/StarRocks, Goku, KVStore, TiDB и т. д., технологическое сообщество начало сомневаться в том, что практика запуска нереляционных баз данных поверх Hadoop и HDFS быстро сокращается.

Крупнейшая в мире система развертывания HBase

Уже сбежал из HBase

Когда-то у Pinterest была крупнейшая в мире производственная система развертывания HBase, пиковый объем которой охватывал примерно 50 кластеров, 9000 экземпляров AWS EC2 и вмещал более 6 ПБ данных. Типичное производственное развертывание состоит из основного кластера и резервного кластера, причем оба конца реплицируют друг друга через журналы упреждающей записи (WAL) для достижения более высокой доступности. Онлайн-запросы сначала направляются в основной кластер, а автономные рабочие процессы и ресурсоемкие операции кластера (например, ежедневное резервное копирование) выполняются в резервном кластере. В случае сбоя основного кластера система выполнит аварийное переключение для переключения основного кластера и резервного кластера.

Альберто Ордонес Перейра, старший инженер-программист, и Лянхун Сюй, старший технический менеджер Pinterest, объясняют переход платформы для обмена идеями дизайна от нескольких онлайн-сервисов хранения данных на базе HBase к новой архитектуре с новым хранилищем данных и унифицированными службами хранения.

HBase, запущенный в 2013 году, стал первым решением для хранения данных NoSQL, принятым Pinterest. С ростом популярности NoSQL HBase быстро стал одним из наиболее широко используемых серверов хранения данных в Pinterest. С тех пор он также стал строительным блоком инфраструктуры в стеке технологий Pinterest, поддерживая ряд внутренних систем и систем с открытым исходным кодом, включая графический сервис компании Zen, хранилище с широкими столбцами UMS, хранилище для мониторинга OpenTSDB, отчеты о показателях Pinalytics, базу данных транзакций Omid/ Sparrow, индексное хранилище данных Ixia и т. д. Вместе эти системы поддерживают множество вариантов использования, что позволяет Pinterest значительно масштабировать свой бизнес, продолжать расширять базу пользователей и улучшать качество продуктов за последние 10 лет.

Конкретная сфера воздействия охватывает интеллектуальную обратную связь, сканеры URL-адресов, пользовательские сообщения, уведомления о пиннерах, индексы рекламы, каталоги покупок, мониторинг Statsboard, экспериментальные индикаторы и многое другое.

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

Почему HBase устарел?

Проект HBase возник в 2007 году как подпроект Apache Hadoop и выпустил свою первую независимую версию в феврале 2010 года. С тех пор он продолжал развиваться, при этом стабильность и масштабируемость улучшались с каждой новой версией.

HBase, вдохновленный проектом Google Bigtable и написанный на Java, представляет собой решение для хранения данных с использованием пары «ключ-значение», построенное на HDFS и используемое Apache Hadoop. По словам Перейры и Сюй, HBase было первым решением Pinterest для хранения данных NoSQL и одним из наиболее широко используемых серверов хранения данных для разработчиков приложений для обмена изображениями и социальных сетей.

С момента своего запуска на Pinterest HBase зарекомендовал себя как надежный, масштабируемый и достаточно хорошо работающий. Однако после тщательной оценки и обширных отзывов заинтересованных сторон компания решила отказаться от этой технологии в конце 2021 года, сославшись на причины, которые они написали:

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

Высокие затраты на техническое обслуживание

К моменту оценки обслуживание HBase уже было непомерно дорогим, главным образом, из-за многолетнего технического долга и рисков, связанных с надежностью. По разным историческим причинам версия Pinterest HBase отстает на пять лет от основной версии и не содержит исправлений ключевых ошибок и улучшений. А из-за давних устаревших конвейеров сборки/развертывания/конфигурации и проблем совместимости обновление версий HBase в Pinterest стало медленным и болезненным процессом (последнее обновление с 0.94 до версии 1.2 заняло почти два года). Кроме того, становится все сложнее найти специалистов по HBase, а порог обучения новых инженеров также крайне недружелюбен.

Отсутствует функциональность

HBase делает упор на предоставление относительно простых интерфейсов NoSQL. Хотя он может соответствовать различным вариантам использования в Pinterest, его ограниченная функциональная конфигурация действительно сложна для удовлетворения меняющихся потребностей клиентов с точки зрения строгой согласованности, распределенных транзакций, глобальных вторичных индексов и богатых функций запросов. Например, отсутствие распределенных транзакций в HBase привело к множеству ошибок и неожиданным событиям в Zen, внутреннем графическом сервисе Pinterest, поскольку сбои локальных обновлений могли вызвать противоречивые графические эффекты. Отладка таких проблем зачастую сложна и требует много времени, серьезно влияя на настроение и опыт работы/использования менеджеров по обслуживанию и клиентов.

Сложность системы слишком высока

Чтобы предоставить клиентам более продвинутые функции, Pinterest за последние несколько лет также попыталась создать несколько новых сервисов на базе HBase. Например, Pinterest построил Ixia на основе HBase и Manas Realtime для поддержки глобальных вторичных индексов в HBase. Мы также создали Sparrow на базе Apache Phoenix Omid для поддержки распределенных транзакций поверх HBase. Хотя лучших альтернатив для удовлетворения потребностей бизнеса просто не существовало, сами системы потребовали значительных затрат на разработку и стали новым источником бремени обслуживания.

Завышенные затраты на инфраструктуру

Кластеры HBase производственного уровня обычно полагаются на установку «основной-резервный» с 6 копиями данных для быстрого аварийного восстановления. Но в масштабах бизнеса Pinterest это сопряжено с чрезвычайно высокими затратами на инфраструктуру. Если HBase можно будет перевести на решение для хранения данных с меньшими затратами на копирование данных, очевидно, что это значительно снизит общие эксплуатационные накладные расходы на инфраструктуру. Например, благодаря тщательному проектированию реплик и механизмов развертывания TiDB, Rickstore и MySQL могут обеспечить аварийное восстановление трех копий, не оказывая существенного влияния на соглашение об уровне обслуживания.

Использование в промышленности и сообществе снизилось.

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

Путь к отказу от HBase

В Pinterest полное прекращение поддержки HBase когда-то считалось невыполнимой задачей, поскольку он был настолько глубоко встроен в существующий технологический стек Pinterest. Однако команды Перейры и Сюй были не единственными в Pinterest, которые знали о различных недостатках HBase, когда дело касалось обработки различных типов рабочих нагрузок. Например, команда Перейры и Сюя обнаружила, что HBase работает хуже, чем современные решения для рабочих нагрузок OLAP. Он не может справиться с растущим объемом данных временных рядов, что создает серьезные проблемы с масштабируемостью, производительностью и нагрузками на обслуживание. Он также менее производительен и принципиально менее эффективен, чем KVStore, внутреннее хранилище ключей, созданное на основе RocksDB и Rocksplicator. Поэтому за последние несколько лет команды Перейры и Сюй запустили множество инициатив по замене HBase технологиями, лучше подходящими для этих сценариев использования.

В частности, рабочие нагрузки онлайн-аналитики будут перенесены в Druid/StarRocks, данные временных рядов будут перенесены в Goku (внутреннее хранилище данных временных рядов), а варианты использования «ключ-значение» будут перенесены в KVStore. После серии попыток команда нашла способ полностью отказаться от HBase в Pinterest.

Чтобы удовлетворить оставшиеся варианты использования HBase, им также требовалась новая технология, которая могла бы обеспечить ту же масштабируемость, что и база данных NoSQL, при этом поддерживая те же мощные возможности запросов и семантику ACID, что и традиционная СУБД. Поэтому команда в итоге выбрала TiDB, полностью уйдя от HBase.

HBase умирает?

Новость о том, что Pinterest прекращает поддержку HBase, вызвала бурные дискуссии в сообществе. В статье «Почему Pinterest прекращает поддержку HBase?» В статье «Умирает ли HBase» Шиванг Сараваги подчеркнул, что объем поиска HBase в движке Google неуклонно снижается на протяжении последних пяти лет. В статье упоминалось:

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

В популярном сообщении на сайте Hacker News пользователь dehrmann прокомментировал:

Я работал на предприятии, которое активно внедряло HBase. Они перешли с AWS на GCP только для того, чтобы приблизиться к BigTable... HBase и HDFS очень требовательны к управлению и очень ненадежны, вынуждая каждого в любой момент настраивать отказоустойчивый кластер. Интересно, что во время миграции также произошла деградация ячеек/таблиц, что могло быть одной из причин проблем с надежностью.

Pinterest ранее рассказывал, как они перенесли некоторые из своих рабочих нагрузок с HBase на TiDB без каких-либо простоев. Сараваги добавил: С появлением современных баз данных внимание отрасли постепенно смещается от HBase. Однако нельзя сказать, что эта технология уже устарела.

Справочные ссылки:

https://www.infoq.com/news/2024/06/pinterest-deprecates-hbase/

https://medium.com/pinterest-engineering/online-data-migration-from-hbase-to-tidb-with-zero-downtime-43f0fb474b84

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose