Почему мир Big Data запомнит 20.03.2023

Заскринил момент, когда на <a href="https://github.com/ytsaurus/ytsaurus" rel="nofollow noreferrer noopener" target="_blank">GitHub проекта</a> было еще меньше 100 звездочек
Заскринил момент, когда на GitHub проекта было еще меньше 100 звездочек

В этот понедельник Яндекс выложил в open source свой движок обработки больших массивов информации YTsaurus (ранее известный внутри компании как YT или "ыть"). Ниже - повесть (зачеркнуто) пояснение в двух частях:

  1. Что я знаю про Big Data и почему об этом пишу
  2. Почему это событие впишут в историю Big Data

Часть 1. Пояснить за Big Data (если лень читать, тезисы в последнем абзаце)

Я занимаюсь анализом параллельных, распределенных и грид- вычислений (если говорить на "научном") или работаю с Big Data (если говорить на "пафосном") с 2007-го года. Ровно тогда начал писать алгоритмы на MPI под научным руководством Богачева К.В. на мехмате МГУ. А в 2010-м подсел на Hadoop благодаря Сухорослову О.В.

Был одним из лучших выпускников своего года в ШАД Яндекса, пару раз работал в самом Яндексе, один раз в Рамблере и провел 2 замечательных года на чужбине в Ирландии, где работал в Amazon AWS.

Типичная success-story IT'шника, попавшего в FAANG: командировки в USA, путешествия по Европе, красоты Ирландии (фото с телефона). Дернул же меня черт вернуться в РФ ... но об этом дальше, от предложения "творить историю" сложно отказаться
Типичная success-story IT'шника, попавшего в FAANG: командировки в USA, путешествия по Европе, красоты Ирландии (фото с телефона). Дернул же меня черт вернуться в РФ ... но об этом дальше, от предложения "творить историю" сложно отказаться

Опустив пяток других компаний и лет, я открыл компанию (BigData Team) по обучению и консалтингу в сфере Big Data, Machine Learning и промышленной разработке (на Python). Из крупных и приятных проектов, в 2017-м году мы запустили курсы по Big Data на английском языке на Coursera при партнерстве с Яндекс. Наша цель была амбициозна и проста - доказать всему миру, что русские "шарят" в Big Data и могут делать крутые (образовательные) продукты. Отдельная история длиною в год, как мы это делали компанией на 30+ человек. Ровно эта задача (при поддержке ABBYY, Yandex, 1C, друзей и какой-то матери) заставила меня вернуться в РФ с горящими глазами.

На основе аналитики Coursera (до момента закрытия в РФ в 2022) на курс записалось более 100,000 человек. География учеников выглядела как-то так:

География учеников Cousera (только 10% аудитории - РФ)
География учеников Cousera (только 10% аудитории - РФ)

А на основе независимого анализа русскоязычного сообщества DS/DE (2,000 респондентов), 50% людей, начинают свой пусть в этой сфере с наших курсов:

Пользуясь случаем, передаю привет и спасибо Артему С. за этот труд
Пользуясь случаем, передаю привет и спасибо Артему С. за этот труд
В 2022-м году нам даже вручили премию за лучший образовательный проект за рамками высшей системы образования (<a href="https://www.cnews.ru/news/top/2022-04-18_data_fusion_awards2022_itogi_premii" rel="nofollow noreferrer noopener" target="_blank">proof</a>).
В 2022-м году нам даже вручили премию за лучший образовательный проект за рамками высшей системы образования (proof).

Все это время, наш акцент на обучение был - open source технологии, чтобы каждый слушатель имел максимальную свободу выбора в будущем. Для понимания насколько я принципиален по этому вопросу:

  1. Когда я возвращался второй раз на работу в Яндекс, моим условием была "работа на open source движках (Hadoop экосистема)". Меня поставили руководить командой по разработке рекомендательных систем для Яндекс.Маркета (и других "денежных" сервисов), где сидели адепты Hadoop (на тот момент в Яндексе было 3 MapReduce движка и обилие дискуссий чей слон круче, поэтому такое было возможно);
  2. В наших курсах на Coursera не было рекламы ни одного инструмента/продукта Яндекс. Всё рассказывали и показывали исключительно на open source (Hadoop экосистема в максимально широком смысле этого слова, т.е. включая Spark, NoSQL интеграции, data ingestion, workflow engines, ...)
В вольном переводе на русский "мой слон больше твоего" ("слон" - в честь желтого слона на лого Hadoop)
В вольном переводе на русский "мой слон больше твоего" ("слон" - в честь желтого слона на лого Hadoop)

Тезисы:

  1. Если вы занимаетесь Big Data (Data Engineering), то мы с большой вероятностью знакомы ;)
  2. Меня сложно назвать адептом технологий (в какой-то мере "внутренних велосипедов") Яндекса и я всегда отдавал предпочтение open source. Но даже я считаю релиз YT историческим событием в мире Big Data (см. часть 2 - почему).

Часть 2. Важная историческая веха

Жизнь Яндекса и его бизнес-модели круто меняются в последнее время. Чего только стоит опыт ClickHouse, где они подняли $250M инвестиций с оценкой проекта в 2 млрд $ (proof). Это как минимум одно из возможных направлений коммерциализации технологического инструмента. Бизнес пока оставим в стороне, цель данного топика - сделать оценку события с точки зрения технологии.

Одним из первых комментариев, которые я получил в соц. сетях, когда в восторге опубликовал эту новость:

разве это новость? еще один MapReduce, это была бы новость лет 10 назад

друг из сферы Big Data (который тоже шарит)

Давайте я объясню в чем нюанс.

Бурное развитие open source технологии Big Data получили после публикации статей про распределенные файловые системы (2003) и MapReduce (2004). Последнюю написали Jeffrey Dean и Sanjay Ghemawat, два выдающихся инженера Google с самым большим грейдом в компании. Jeffrey (или Jeff) в свое время даже получил прозвище Чак Норриса в мире Big Data (один из примеров). Указанные фреймворки не вышли в публичный доступ, но благодаря коллегам из Yahoo! в свете open source появились первые версии Hadoop (версия 0.1.0, 2006-й год), которые реализовывали парадигмы хранения и обработки данных, описанные в статье. Имя Hadoop ему дал главный инженер разработки Doug Cutting (сообщество должно знать своих героев)

В 2009-м уже Amazon AWS предоставил сервис Hadoop в облаках, дав ему свое имя Elastic MapReduce (EMR). И понеслось-поехало:

  • в 2010-м году появился Hive, который позволил транслировать SQL-запросы в цепочку вычислений MapReduce (здесь нужно сказать спасибо компании, запрещенной на территории РФ, поэтому уточнять не будем);
  • в 2012-м году появился YARN, который предоставил возможность более гибкой настройки и запуска контейнеров для обработки данных, а значит и реализации других парадигм обработки данных. Например благодаря этому стало возможно обрабатывать данные в распределенной оперативной памяти с помощью Spark в рамках Hadoop экосистемы;
  • В 2012-м году как раз вышла статья про Spark (Matei Zaharia и компания). Я как сейчас помню, когда читал эту статью в 2012-м году, сидя в Строганове в Яндексе, восхищался и причитал "wow, это что-то новенькое" (статью было легко найти по выборке "лучшая работа конференции NSDI, 2012-й год"). Работа по Spark была начата в 2009-м (Berkley) и релизнута в open source уже в 2010-м;
  • в период 2010-2015-м году начинается внутренняя разработка YT (мне это история запомнилась в 2013-м году, как определенный эксперимент, но Макс в статье на Habr пишет, что они начали эксперименты с YT уже в 2010-м; 2015-й год - когда они полетели в Калифорнию собирать опыт и говорить за Hadoop, источник);
  • базы данных стали поддерживать парадигму MapReduce у себя внутри (MongoDB, Riak, ...).

С точки зрения полученного опыта и доступных технологий, то тебе всегда легче, когда ты начинаешь позже. За почти 10 лет к 2013-му году, когда Яндекс начал внутреннюю разработку, Hadoop накопил много кода, опыта и ... конечно же легаси. "Переписать все с нуля" - явно не вариант (не считая движков поверх YARN, см. тот же Spark). Добавьте к этому здоровенное коммьюнити на несколько сотен ключевых участников (см. структуру Apache Software Foundation или ASF):

Добавьте к этому политику, конкурирующие амбиции руководителей смежных проектов, заходы какого-нибудь Microsoft, чтобы согласовать какой-нибудь стандарт работы с документами, выгодный им (если ссылку найду, тоже добавлю).

И вы поймете, что двигаться и развиваться основополагающим проектам (HDFS, YARN) может быть не всегда просто и быстро.

А теперь сравните это со следующей моделью:

  • у тебя есть коммерческий бюджет на инженеров высокого класса;
  • у тебя есть весь необходимый опыт: какими категориями мыслят пользователи Big Data (что им нужно/не нужно, что удобно/не удобно); какие костыли пытаются залатать в legacy open source продукта;
  • руководитель проекта, Максим Бабенко, избавлен от лишней политики и бюрократии (не считая периода борьбы за выбор главного MapReduce в Yandex);
  • Макс является ключевым архитектором системы. И этот пункт, в моем повествовании мега важен (ниже поясняю почему);
Знакомьтесь - Максим Бабенко, где он рассказывает про плюшки платформы

Давайте я объясню, почему считаю Макса настолько крутым:

  • Макс преподает в ШАД курс по алгоритмам, сам занимался олимпиадным программированием (бронза ACM ICPC 2002, золото 2003, proof), т.е. знает их вдоль и попрек, включая все эти ваши суффиксные деревья и массивы. В переводе на инженерный обыкновенный: человек может выжать максимум скорости (и других оптимизаций) из доступных и известных структур данных и алгоритмов;
  • Макс читает курс алгоритмов во внешней памяти в ШАД и на некоторых других площадках для особо заинтересованной аудитории (см. здесь). Я учился у Макса + штудировал зарубежные наработки (например, Mining of Massive Datasets товарища Джеффа Ульмана и других). Мы, в BigData Team, обучили несколько тысяч практиков для индустрии (говорим только про рынок РФ, спросите любой банк или телеком, выпускники - знают толк в приготовлении больших данных). Так вот, мы только изредка касались указанных тем, скорее больше в формате праздного интереса (ну и в МегаФон был очень интересный кейс, Артем очень жду фидбэка от production реализации ;)). Эти знания критически важны при разработке собственных фреймворков обработки Big Data, но к ним притрагиваются вживую только несколько сотен человек (субъективная оценка рынка РФ). И я думаю, что если они с Максом не знакомы, то как минимум слышали про него. Я предлагаю обсудить и согласовать за Максом имя (как минимум) российского Чака Норриса в мире Big Data;

Сравните прошлый винегрет (ASF) и setup (установку) с Максом, которому дали возможность творить. И это не эфемерный продукт в вакууме, а движок, на который переехал весь Яндекс. Движком регулярно пользуются тысяча-другая разработчиков Яндекс, а миллионы клиентов видят уже конечные результаты их наработок в продуктах Яндекса.

Я считаю, что определенные оптимизации фреймворка обработки больших массивов информации выплывут на курсах по Big Data (зачеркнуто) распределенных вычислений в магистерских программах ведущих вузов мира. Например, некоторые issues Spark могут являться проектной деятельностью магистрантов или курсовыми работами в топовых международных вузах. У YTsaurus есть все шансы попасть в списки фреймворков, которые ценны для проектной деятельности для наработки навыков магистерских программ по Big Data.

Что там полечили, чего не хватало в Hadoop, или рубрика "на что обратить внимание":

  • Более гибкая работа с шардированием мета-информации для очень больших кластеров (хотя бы 1,000 серверов, до этого - не сильно принципиально). Для сравнения, только начиная с версии Hadoop 3.0 появился нормальный HDFS Router-Based Federation (релиз - конец 2017-го + пол-года фиксов до середины 2018-го). До этого был убогий HDFS Federation, который довольно костыльно решает проблему шардирования мета-информации и перекладывает лишнюю коммуникацию и ответственность на клиента;
  • Работа с понятием таблиц и мета-информации выведена на новый уровень. Да, многое из этого уже было, пусть и частично, доступно в Hive или реализовано с помощью инструментов Apache Hudi, Apache Iceberg и Delta от Databricks. Но для интеграции всего и вся в ASF еще должны договориться какой формат для слона круче, а в YTsaurus путь уже выбран и реализован.

Я надеюсь, что я смог донести, почему это важная веха в мире Big Data. Не каждый год выкладывают статьи типа GFS, MapReduce, Dremel (родоначальник Parquet), а здесь выложили целый движок, над которым работала топовая команда почти 10 лет. Не считая внутренних оптимизаций, в public добавлена пара свежих взглядов на работу с метаинформацией в распределенных фреймворках.

Вернемся в мир бизнеса. Вам может быть полезно об этом знать, когда вы будете выбирать open source фреймворк для молотилки ваших данных в компании:

  • (плюс) фреймворк моложе на 10 лет --> меньше костылей, больше внутренних оптимизаций;
  • (минус) пока гораздо более маленькое коммьюнити (по сравнению с Hadoop);
  • (плюс) новые парадигмы работы с метаинформацией (из коробки, без доп. приседаний и установок на кластере), за которые инженеры скажут вам большое спасибо;
  • (надо бы протестировать, но уже заявлено) интеграция со Spark (или трансляция его запросов по верх движка YT). Если ваша команда пишет на Spark, то может ничего не заметить при замене базового движка (см. адаптер SPYT). Но мир Big Data не ограничен только Spark, большая часть аналитиков сидит в Hive (SQL), у YT свой SQL (YQL). Про другие фреймворки - нужно смотреть в частном случае, но подводные камни нужно будет еще пособирать;
  • (минус) если вы уже живете на Hadoop, то по моему опыту, многие еще не переехали даже но новую версию Hadoop (3.0 и выше), поскольку обновление - та еще головная боль. Про переезд на другой стек - иногда страшно заикаться. Для крупных компаний это может быть история с подпиской на несколько лет (если/когда они на это решатся).

DISCLAIMER: Нужно сказать спасибо и отметить гораздо большее число людей (как в мире Big Data в РФ), так и в числе разработчиков YT. Но я постарался не превращать этот пост в книгу. Я вас тоже всех сердечно ценю и уважаю.

DISCLAIMER #2 : везде где я говорю "русский" , я почти наверняка подразумеваю человека, говорящего на русском языке. Я не уточняю это в тексте дополнительными ремарками, в угоду легкости чтения.

У меня есть знакомые, которые прочитали релиз (пример) формате "очередная новость от Яндекс, это не отразится на мою жизнь". В связи с этим, пишу развернутый ответ про то, почему может и отразиться на ит'шниках, на ученых и на бизнесах. Если у вас есть знакомые из мира бизнеса и технологий, которые восприняли эту новость ровно также - рекомендую поделиться публикацией.

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

А здесь, по опыту моего поста в соц. сетях, да начнем холивар ;)

36
16 комментариев

Ничего непонятно, но очень интересно.

20
Ответить

попробую в формате tl;dr

» Яндекс публикует движок, в котором очень хорошо продумали основу для еще большего масштабирования кластеров

чуть более развернуто

в мире Big Data (обработки больших массивов информации) можно отметить следующие события, которые очень сильно повлияли на развитие open source фреймворков, сообществ и изменили стандарты хранения и обработки данных:
* 2003-2004, статьи Google про распределенные файловые системы и MapReduce
* 2006, Yahoo! публикует open source реализацию Hadoop
* 2009, MapReduce и Hadoop доступны даже в облаках (AWS)
* 2010, Hive - (Big Data) SQL для работы с MapReduce
* 2012, появление YARN - новые пределы масштабируемости кластеров + возможности считать данные прилично быстрее в других парадигмах (например с помощью Spark, сильно больше нагружая оперативную память)
* 2014, появление raft - понятный и удобный алгоритм, чтобы договориться кто на кластере "главный" / "папа" / "первый"
* дальше все вширь и врозь, появляется много чего интересного, но мне сложно выделить что-либо ставшее стандартом хранения или обработки данных (форматы данных, SQL/NoSQL БД, стриминговые фреймворки, хотя в последней группе явно лидирует Kafka, которая появилась в 2011-м году)
* 2023, Яндекс публикует движок, в котором очень хорошо продумали основу для еще большего масштабирования кластеров (данных настолько много, что даже информацию о файлах в системе нужно хранить с приседаниями, то есть на разных компьютерах в распределенном режиме = шардирование).

Бонусом YT привносит новый стандарт для удобной работы с метаинформацией и распределенными таблицам данных (распределенные транзакции, распределенный ACID). Другие подходы на рынке уже были, но в статье я описываю сложности выбора стандарта в текущем Hadoop (см. ASF), а наработки Yandex могут сподвигнуть всю индустрию учесть их опыт.

5
Ответить

Реально)

Ответить

Мусорная статья с желтым заголовком, не понятно о чем.

7
Ответить

Имхо такое хорошо зайдёт/зашло на хабре
Для меня тупорылого гуманитария это что-то на испанском

6
Ответить

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

5
Ответить

ладно, пускай Big Data запоминает 20 марта по каким-либо причинам, для меня 20 марта это день весеннего равноденствия

4
Ответить