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