О том как мы внедряли Apache Airflow для использования различными командами в нашей компании, какие задачи мы хотели решить этим сервисом. Внутри описание архитектуры деплоя и наш Infrastructure as Code (IaC).
Apache *
Свободный веб-сервер
- Новые
- Лучшие
- Все
- ≥0
- ≥10
- ≥25
- ≥50
- ≥100
Опыт работы с Apache Kafka: интервью с inDriver
DevOps-инженеры компании inDriver Радик Сейфуллин и Александр Плотников распилили старое монолитное приложение и создают новое, а Евгений Бутырин, технический редактор Слёрма, пообщался с ребятами об этом: опыте с Kafka, проблемах, решениях и обучении.
Apache Spark: оптимизация производительности на реальных примерах
Apache Spark – фреймворк для обработки больших данных, который давно уже стал одним из самых популярных и часто встречаемых во всевозможных проектах, связанных с Big Data. Он удачно сочетает в себе скорость работы и простоту выражения своих мыслей разработчиком.
Разработчик работает с данными на достаточно высоком уровне и, кажется, что нет ничего сложного в том, чтобы, например, соединить два набора данных, написав всего одну строку кода. Но только задумайтесь: что происходит в кластере при соединении двух наборов данных, которые могут и не находится целиком на каком-либо из узлов кластера? Обычно Spark со всем справляется быстро, но иногда, а особенно, если данных действительно много, необходимо все-таки понимать – что происходит уровнем ниже и использовать это знание, чтобы помочь Spark работать в полную силу.
Как прикрутить SQL к чему угодно при помощи Apache Calcite
Сделать свою собственную SQL-базу данных или запускать SQL-запросы в NoSQL-базе данных — кажется, это очень непростая задача. А если мы говорим о распределенной БД, то сложность возрастает многократно. Но, к счастью, Apache Calcite — фреймворк с открытым кодом — поможет сделать это довольно легко.
Роман Кондаков, Software Engineer в Querify Labs, на конференции HighLoad++ Весна 2021 рассказал об опыте интеграции Apache Calcite в распределенную in-memory-платформу Apache Ignite. Если ваша система распределена, и вы хотите завести в ней SQL, читайте про то, как устроен Apache Calcite и какие есть нюансы его использования для распределенных систем. Видео его выступления можно посмотреть здесь.
Как устроена Единая биометрическая система
Единая биометрическая система (ЕБС) с 2018 года используется для идентификации человека по его биометрическим характеристикам: голосу и лицу.
Чтобы получать услуги по биометрии, пользователю необходимо зарегистрироваться в системе в одном из 13,1 тысяч отделений банков. Там операционист сделает его фотографию, запишет голос и отправит эти данные в систему. А для того чтобы компании могли оказывать по биометрии различные услуги, им необходимо провести интеграцию с ЕБС.
Оператором системы является «Ростелеком», а разработкой занимаемся мы – дочерняя компания РТЛабс .
Меня зовут Сергей Браун, я заместитель директора департамента цифровой идентичности в РТЛабс. Вместе с Артуром Душелюбовым, начальником отдела развития и разработки департамента цифровой идентичности, мы расскажем, как мы создавали платформу для любой биометрии, с какими проблемами встретились и как их решали.
Как поменять архитектуру облака и не поломать пользовательский опыт
Каждой компании важно оправдать ожидания клиентов, особенно публичному сервису. В случае облачных провайдеров клиенты приходят, чтобы быстро и привычным способом получить, например, виртуальную машину. Их мало волнует, что бывает взрывной рост запросов, в ЦОД приезжает новое железо, а инженеры заняты масштабной миграцией другого пользователя. Клиентам важно быстро получить услуги и отказоустойчивость сервиса. Любое, даже незначительное изменение во внутреннем пространстве сервиса может привести к проблемам на стороне клиентов, как минимум к увеличению времени создания машины.
Константин Еремин, старший системный администратор дежурной службы «Облачной платформы Selectel», рассказал, как поменять архитектуру облака на OpenStack и не поломать пользовательский опыт. На примере выдуманного провайдера Vanilla cloud solutions он объяснил, как определить масштаб проблемы. Почему, перебрав различные варианты, разработчики пришли к Apache Airflow? Какую схему использовали для реализации своих задач и что им удалось сделать с облачным сервисом с помощью выбранного инструмента? Рассказываем под катом.
Обновление PHP в окружении BitrixVM с использованием Docker
Введение
В данной статье я бы хотел рассмотреть проблему обновления PHP в виртуальной машине BitrixVM, и действия, которые возможно применить если выполнение переезда на машину с обновленным ПО невозможно. Надеюсь, что статья будет полезна для вас.
Предыстория
Несколько месяцев назад перед нами встала задача обновления PHP до версии 7.4 на одном из наших проектов. Проект был расположен внутри виртуальной машины с развернутой на ней BitrixVM версии 7.2.2. Заглянув в меню Битрикс при обращениях к скрипту /root/menu.sh было обнаружено, что обновление PHP не возможно без обновления Битрикс окружения. При этом само обновление окружения выполняется из бета репозиториев, так как текущая стабильная версия не поддерживала работу с PHP версии 7.4 согласно курсу:
https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=32&LESSON_ID=12862
Прошерстив форумы Битрикс, мы не нашли конкретного ответа, когда будет выполнено обновление BitrixVM до стабильной версии с поддержкой с PHP 7.4. В связи с чем, нами было принято решение обновить версию окружения до актуальной беты на одном из виртуальных серверов разработки, предварительно сделав snapshot.
Проблема BitrixVM в том, что это готовое решение, использующее Ansible скрипты для выполнения операций. При этом в случае нарушения работы скрипта операция будет прервана, а идентифицировать ошибку крайне сложно, как и понять на какой именно стадии она возникла.
BitrixVM хранит лог выполняемых задач по пути /opt/webdir/temp/, в ходе выполнения обновления окружения в логе возникали различные ошибки, вызывавшие нарушение процесса обновления. Поиск и решение подобных ошибок занимало достаточный период времени. Как пример, возникали ошибки подключения репозитория:
Управление сложностью legacy-кода в Big Data проектах с помощью инструмента Datalog
Например, нужно решить такую задачу:
- Загрузить таблицу из Oracle;
- Посчитать в ней сумму по какого-нибудь полю, сгруппировав по ключу;
- Результат сохранить в витрину в Hive.
Набор инструментов будет выглядеть примерно так:
- Oracle
- Apache Sqoop
- Oozie
- Apache Spark
- Hive
Простая задача неожиданно приводит к появлению проекта, включающего три независимых инструмента с тремя независимыми папками исходных файлов. И как понять – что происходит в проекте?
Если рассмотреть более типичный случай, то набор артефактов простого проекта в Big Data представляет собой:
- SH управляющие файлы;
- Sqoop скрипты;
- набор Airflow Dag или Oozie Workflow;
- SQL скрипты собственно преобразований;
- Исходники на PySpark или Scala Spark;
- DDL скрипты создания объектов.
Также, особенностью является то, что если пользоваться Cloudera или Hortonworks, то среда не предоставляет удобных средств разработки и отладки.
Облачные среды, такие как AWS или Azure, предлагают все делать в их оболочке, объединяющей все требуемые артефакты в удобном интерфейсе.
Вот, например, картинка с сайта Microsoft Azure:
Но это если есть AWS или Azure. А если есть только Cloudera?
Как ответить на вопрос – что, собственно, в проекте написано? При этом этот вопрос крайне интересует и заказчика тоже, так как в случае обычного ПО ему все равно то, как всё устроено внутри, а в случае с Big Data заказчику важно понимать, что данные получаются правильно.
В мире обычного программирования есть набор паттернов, подходов, применение которых позволяет структурировать код. А как структурировать код, представляющий из себя зоопарк независимых SQL-файлов, SH-скриптов вперемешку с Oozie Workflow?
Как я запускал классификацию изображений на домашнем кластере Apache Ignite ML
Я - студент университета, знаком с машинным обучением в рамках пройденного курса, есть интерес к современным кластерным технологиям, конкретно - к Apache Ignite. Под катом — история о том, как я запускал пример OneVsRestClassificationExample
из дистрибутива.
Как в Datalake объединить слишком большое количество небольших файлов в несколько больших с помощью Apache Spark
Один из современных способов хранения большущего объема данных для платформ обработки и анализа данных - это распределение каждого датасета между несколькими узлами в кластере. Если мы используем облако, то весь датасет разделяется на множество объектов. Это может привести к появлению “слишком большого количества небольших файлов” что является хорошо известной проблемой в области Big Data. Формирование небольших файлов происходит по нескольким причинам, например, при сохранении входящих потоковых данных, сообщение за сообщением, при партиционировании по ключу с перекосом данных и т.д. Драйвер должен следить за изменениями метаданных всех файлов, чтобы планировать распределенную обработку данных при сохранении или чтении данных датасета используя Namenode, MapReduce или задачи Spark. Когда файлов слишком много, для хранения их метаданных требуется дополнительная память, а при их перечислении этих данных требуется гораздо больше времени на сетевое взаимодействие.
Во время работы в Datalake вы могли заметить, что при выполнении задачи Spark затрачивается слишком много времени на чтение датасета из s3/HDFS, где нужно подождать, даже чтобы увидеть запущенные экзекьюторы. Или вы могли заметить, что вашему Hive запросу может понадобиться несколько минут, чтобы инициировать задачи. Скорее всего, причина в том, что изначально драйвер большую часть времени тратит на просмотр всех метаданных файлов/объектов датасета в s3, особенно когда небольших файлов слишком много. Это связано с тем, что именно драйвер выполняет перечисление файлов в датасете, оценивает размер/партиции, а затем распределяет работу между экзекьюторами. Таким образом, слишком большое количество небольших файлов может привести к снижению производительности, а в худшем случае драйвер может поймать исключение из-за нехватки памяти.
Собеседование на позицию Data Engineer в Х5: чего ждать и как лучше подготовиться
В X5 Group активно развивают цифровые продукты, построенные на основе больших данных, использующие сложную аналитику и машинное обучение, такие как прогнозирование спроса, управление ассортиментной матрицей магазинов, предсказание отсутствия товаров на полках, динамическое ценообразования и т.п.
Для разработки продуктов формируются автономные, кросс-функциональные команды, которые имеют минимум внешних зависимостей и могут двигаться вперед с максимальной скоростью. Одной из ключевых ролей в таких командах является роль Data Engineer.
Еще 5 причин выбрать Apache Pulsar вместо Apache Kafka
Под катом — перевод статьи-сравнения Apache Pulsar и Apache Kafka. Статья в некоторой степени рекламная, т.к. написана заинтересованным лицом, но как минимум, возбуждает интерес копнуть глубже. Поехали.
Переведено @middle_java
Обработка больших данных: первые шаги в понимании Hadoop MapReduce и Spark
Привет, Хабр!
Меня зовут Эмилия Межекова, я ETL-developer в компании Luxoft.
Я расскажу о своём опыте работе с Big Data и почему Spark лучше, чем Hadoop MapReduce в обработке данных. Big Data как концепт довольно понятна, но из-за того, что она включает в себя множество процессов, сложно сказать, с чего именно нужно начать изучение. Как хранятся файлы? Или как получать эти файлы? А может, сразу — как анализировать данные? Читайте подробнее под катом.
Настройка Sendmail для отправки почты без попадания в Спам
Начал разбираться и не смог найти не одной полноценной публикации в рунете, которая раскрывала бы проблему и помогала решить все вопросы.
Вашему вниманию представляю собранный из разных источников, проверенный и используемый способ настройки сервера для правильной отправки писем sendmail.
Система: Ubuntu 20.06
Почтовый сервис: Яндекс
Apache Pulsar как основа для системы очередей
Меня зовут Агалецкий Павел, я старший инженер в команде Архитектуры. Эта статья про новую для нас в Авито технологию — Apache Pulsar и построение системы очередей, Queues as a Service, на её основе.
DAG’и без напрягов: наш опыт использования метаданных при работе с Apache Airflow
Apache Airflow – простой и удобный batch-ориентированный инструмент для построения, планирования и мониторинга дата-пайплайнов. Ключевой его особенностью является то, что, используя Python-код и встроенные функциональные блоки, можно соединить множество различных технологий, использующихся в современном мире. Основная рабочая сущность Airflow – DAG – направленный ацикличный граф, в котором узлами являются задачи, а зависимости между задачами представлены направленными ребрами.
Те, кто использует Apache Airflow для оркестрации задач загрузки данных в хранилище, наверняка оценили гибкость, которую он предоставляет для решения шаблонных задач. Когда весь процесс разработки сводится к заполнению конфигурационного файла с описанием параметров DAGа и списком задач, которые должны выполняться. У нас в Леруа Мерлен такой подход успешно используется для создания задач по перекладыванию данных из raw-слоя в ods-слой хранилища. Поэтому было решено распространить его на задачи по заполнению витрин данных.
Stargate: что это, как работает и зачем использовать
Stargate — это open source фреймворк для работы с Apache Cassandra. Как он устроен и какие преимущества даёт, на конференции Cassandra Day Russia 2021 рассказал Дмитрий Бурлачков, Software Engineer в DataStax и один из разработчиков Stargate. Под катом расшифровка его доклада.
Как объяснить детям, что такое Apache Kafka за 15 минут с картинками и выдрами
Я учусь иллюстрировать сложные процессы с помощью комиксов. Нашла себе в копилку крутой кейс: как с помощью комиксов про милых выдр можно ребенку объяснить такую сложную штуку как Apache Kafka, и сделать мир немного добрее.
«Легко по течению» — легкое введение в потоковую обработку и Apache Kafka. Группа выдр обнаруживает, что они могут использовать гигантскую реку для общения друг с другом. По мере того, как все больше выдр перемещается в лес, они должны научиться адаптировать свою систему, чтобы справиться с возросшей активностью леса.
Под катом 25 слайдов, объясняющие основы Kafka для детей и гуманитариев. И много милых выдр.
Как добавить Natural Language Processing в Minecraft
Создание хороших примеров по использованию NLP инструментария - не самая простая задача. Они получаются или слишком простыми, так что читателям кажется, что в реальных проектах не стоит даже использовать какие-то внешние системы для решения таких простых NLP задач, а можно и даже желательно все написать самому, или, если постараться, сделать примеры более жизненными, их бизнес логика становится чрезмерно сложной и отвлекает внимание от NLP части.
Появление этого примера, использование NLP в Minecraft, оказалось самым естественным в истории проекта на данный момент. Запрос на его разработку возник у настоящих и самых преданных пользователей - детей одного из разработчиков, которым показалось сложным и даже скорее просто ненужным запоминать формат некоторых команд новой для них игры.
Как Apache Spark 3.0 увеличивает производительность ваших SQL рабочих нагрузок
Практически в каждом секторе, работающем со сложными данными, Spark "де-факто" быстро стал средой распределенных вычислений для команд на всех этапах жизненного цикла данных и аналитики. Одна из наиболее ожидаемых функций Spark 3.0 - это новая платформа Adaptive Query Execution (AQE), устраняющая проблемы, которые возникают при многих рабочих нагрузках Spark SQL. Они были задокументированы в начале 2018 года командой специалистов Intel и Baidu и сегодня мы детально их обсудим.
Вклад авторов
-
eapotapov 163.6 -
Polina_Averina 151.6 -
alextokarev 92.0 -
Morozka 77.0 -
mechanicusilius 66.0 -
ValeryKomarov 47.0 -
Sberbank 43.0 -
aistaf 40.0 -
dspavlov 36.0 -
NorthDragon 35.0