Как стать автором
Обновить
0

Hadoop *

Фреймворк для распределённых приложений

Сначала показывать
Порог рейтинга
Уровень сложности

Три необсуждаемых вопроса о микросервисах и параллельной распределённой обработке данных — чтобы жить стало легче

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров2.3K

Воркшоп для тех, кто впервые сталкивается с распределёнными системами.

В этой статье на примере решения несложного архитектурного кейса я покажу, что ответов только на 3 вопроса при проектировании систем распределённой параллельной обработки данных будет достаточно для обеспечения жёстких нефункциональных требований.

Читать далее

Новости

Hadoop на микросервисах или история одного пет-проекта

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров1.1K

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

Представляемый в данной статье проект предназначен для того, чтобы развернуть внутри Docker-контейнеров, распределенных на несколько компьютеров, максимально защищенную среду Hadoop (включающую в себя ПО Ranger и Knox), предоставить доступ к ее интерфейсам для тестирования и настройки. Если кратко, то это все. «Git clone», «docker compose up -d» с некоторыми предварительными настройками и «будет вам счастье». Написанный код (преимущественно shell-скрипты и конфигурация docker) максимально документирован ссылками на ресурсы сети Интернет, откуда это взято и где это все подробно описано. Технологии все общеизвестные, новые паттерны я здесь не изобретал. Если же что-то становится не понятным или docker-контейнеры «не взлетают» с первого раза – придется читать дальше, тут я как раз постараюсь описать все подробнее. Итак, поехали…

Читать далее

Мой опыт эксплуатации кластера Trino

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.3K

Trino — высокопроизводительный распределённый SQL-движок, с возможностью объединения данных из разнородных источников, таких как: реляционные БД, файловые хранилища, шины данных, inmemory-хранилища, облачные сервисы и тд. Архитектура ориентирована на выполнение аналитических запросов с минимальной задержкой. Т.е. с его помощью можно отправлять SQL-запросы в MongoDB и Kafka, например. Благодаря скорости, развитию, и удобству захватывает популярность у инженеров и аналитиков, работающих с bigdata.

Я познакомился с Trino 1 год назад, за это время настроил с нуля кластер на baremetal и помог с проблемами в нескольких других. В этой статье делюсь краткой выжимкой опыта эксплуатации, накопленным за это время. Большая часть информации будет актуальна и для российского форка Trino: CedrusData.

Читать далее

Тестирование систем и движков массивно-параллельных вычислений. Сравнение Impala, Trino и GreenPlum

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров2.7K

Успешные тестирование производительности и нагрузочные испытания – важнейшие условия для выбора аналитической системы массивной обработки больших данных. В этой публикации я хочу поделиться подходами к тестированию, которые используются нашей командой как в проектной работе, так и при разработке Lakehouse-платформы данных Data Ocean Nova, и познакомить вас с результатами сравнения различных движков и систем. Вы узнаете, как правильно ставить цели, выбирать методику и из каких сценариев ее нужно составлять, как протоколировать результаты и делать выводы. И самое главное – получите ответ на вопросы: кто быстрее: заяц Trino или антилопа Impala?

Читать далее

Современная Lakehouse-платформа данных Data Ocean Nova

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров4.9K

Привет. Меня зовут Евгений Вилков. Я занимаюсь системами управления и интеграции данных с 2002 г., а конкретно системами анализа и обработки данных — с 2007 г. Технологии, с которыми я имел дело на протяжении моего профессионального пути, стремительно развивались. Начиная с решений, основанных на стеке традиционных СУБД, таких как Oracle, MS SQL Server, Postgres, постепенно эволюционируя в ставшие уже классическими (а некоторые даже и закрытыми) MPP-системы, такие как Teradata, GreenPlum, Netezza, Vertica, IQ, HANA, Exadata, ClickHouse, в различные решения на базе экосистемы Hadoop, облачные сервисы и платформы. Меняется мир, меняются технологии, меняются подходы к проектированию, меняются и требования к задачам аналитического ландшафта данных.

Уверен, что многие, кто уже знаком с терминами Data Mesh и Data Lakehouse, задаются вопросом: что может предложить рынок аналитических систем в этих методологиях проектирования и архитектурных подходах. Я хочу рассказать об аналитической платформе данных Data Ocean Nova, владельцем и технологическим идеологом которой я являюсь.

Читать далее

Как мы перенесли архив данных из Teradata в GreenPlum с помощью Hadoop и PXF

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.1K

Привет, Хабр! Мы продолжаем серию статей о проведённой миграции аналитического хранилища данных с платформы Teradata на GreenPlum. В предыдущей статье мы рассказали о нашем опыте и результатах автоматизированного переписывания SQL-скриптов из диалекта Teradata в диалект GreenPlum с помощью реализованного сервиса миграции кода. В этой статье мы расскажем вам о полученном нами опыте и результатах переноса архива данных объёмом более 400 Тб из Teradata в GreenPlum, а также о трудностях и решениях, связанных с этим процессом.

Читать далее

Руководство по Apache Spark не для начинающих: оптимизация

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров8.6K

Руководство по Apache Spark не для начинающих.

В прошлой статье я писал о возможностях и функциях Apache Spark для обработки данных. Мы сосредоточились на ключевых функциях чтения, обработки и сохранения данных, не забывая о примерах кода, которые помогут новичкам быстро включиться в работу.

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

Читать далее

Как упаковать бэкенд-код на Go для аналитики на базе Spark

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.7K

Всем привет! Я Ваня Ахлестин, занимаюсь поддержкой и развитием аналитической платформы кластера Search&Recommendations на базе Spark и Hadoop в Авито. Сегодня расскажу, как начать использовать ваш код из Python или PySpark и не тратить много времени дорогих разработчиков.

Читать далее

[Туториал] Пишем собственные Spark Native Functions (Часть 2)

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров862

В предыдущей своей статье Почему стоит начать писать собственные Spark Native Functions? (Часть 1), которая является переводом и которая вдохновила меня на собственные изыскания, был разобран пример, как написать свою Spark Native Function по генерации UID. Это, конечно, здорово, но вот только данная функция не принимает аргументы на вход, в то время как в реальной практике нам требуются обычно функции, которым надо передать на вход 1, 2 или 3 аргумента. Такие случаи не рассматриваются в упомянутой выше переводной статье - ну что ж, попробуем восполнить этот пробел!

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

Читать далее

Интеграция PostgreSQL и Hadoop

Время на прочтение5 мин
Количество просмотров3.2K

Представим некое перепутье, где с одной стороны — мощные возможности PostgreSQL, а с другой — необъятные просторы Hadoop. Выбор кажется сложным, но зачем выбирать одно, если можно соединить их и получить лучшее из обоих?

Объединяя их можно создать мощную систему, способную обрабатывать и анализировать огромные объемы данных.

Читать далее

Рулим запуском Spark-приложений в Airflow с помощью самописного оператора

Уровень сложностиСложный
Время на прочтение16 мин
Количество просмотров7.4K

Airflow в Lamoda Tech играет роль оркестратора процессов обработки данных. Ежедневно с его помощью мы запускаем 1 800+ тасок на проде, примерно половина из которых являются Spark-приложениями.

Все Spark-приложения сабмитятся из Docker-контейнеров. И здесь сталкиваемся с проблемой: в нашем случае не существует готовых решений для запуска Spark-приложений, позволяющих легко править конфигурацию и следить за количеством потребляемых ресурсов.

Меня зовут Андрей Булгаков, я лид команды разработчиков Big Data в Lamoda Tech. Вместе с разработчиком Иваном Васенковым в этой статье мы поделимся историей создания Airflow-оператора для запуска Spark-приложений.

Читать далее

[Перевод] Почему стоит начать писать собственные Spark Native Functions?

Время на прочтение5 мин
Количество просмотров1.6K

Это мой вольный перевод статьи "Why You Should Start Writing Spark Custom Native Functions", которая вдохновила меня на некоторые собстенные изыскания по данной теме. Их результат я планирую опубликовать позже, а пока выношу на ваш суд этот перевод.

Статья на примере реализации функции по генератации UUID рассматривает, как писать Spark native функции, которые были бы "прозрачны" для Catalyst (в отличии от UDF, которые являются "черными ящиками" для него). Сравнение производительности ожидаемо показывает, что Catalyst Expressions значительно превосходят UDF при увеличении размера данных.

Кому интересно узнать, как писать Spark native функции - прошу под кат.

Читать далее

SPARK для «малышей»

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров17K

Примеры кода на Python для работы с Apache Spark для «самых маленьких» (и немного «картинок»).

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

Читать далее

Ближайшие события

Путь от монолита к разделению Compute и Storage: пример поиска «хранилища мечты» для большой аналитической платформы

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров3.8K

Для запуска и эксплуатации высоконагруженных ИТ-решений с петабайтами данных в активе, нужно проработанное решение, позволяющее гибко управлять ресурсами. Одним из критичных аспектов этого решения, является разделение Compute & Storage — разделение ресурсов инфраструктуры под вычисление и хранение соответственно. Если не реализовать такое разделение в крупном проекте, инфраструктура рискует превратиться в «чемодан без ручки» — эффективность использования ресурсов будет низкой, а сложность управления ресурсами и средами будет высока. На примере команды SberData и их корпоративной аналитической платформы я расскажу, когда требуется разделение Compute & Storage и как это реализовать максимально нативно.

Статья подготовлена по мотивам доклада на VK Data Meetup «Как разделить Compute & Storage в Hadoop и не утонуть в лавине миграций».

Читать далее

Оптимизация запроса и запрос оптимизации

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров6.3K

Как не грабить память, не пытать диск, не мучать кластер. Или делать все это всего одним запросом на Impala к Hadoop.

Среди задач аналитиков данных, в рамках которых необходимо иметь дело с большими объемами однотипных данных, выделяются задачи построения витрин данных, автоматизации процессов сбора и обработки данных. Многие аналитики используют различные реляционные базы данных, в таблицах которых хранятся огромные объемы информации, агрегация и доступ к которым может занимать долгое время, поэтому правильное составление и оптимизация запросов к этим таблицам становится критически необходимым фактором для работы аналитиков, инженеров данных и data scientist.

Читать далее

Hadoop в любой непонятной ситуации. Как выжить кластеру в большой ML команде

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров5.6K

Привет, Habr !

Я работаю инженером по машинному обучению в Мегафоне. Занимаюсь аналитикой данных и являюсь частью команды разработки MLOps платформы. Задача нашей команды состоит в том, чтобы выстраивать и оптимизировать процессы разработки и продуктивизации моделей машинного обучения, предоставлять функционал для основных этапов (сбор данных, MQ/DQ, продуктивизация).

Сегодня поговорим о том, какие сложности могут возникать при работе с кластером Hadoop и какие есть методы для их решения.

Видеозапись по мотивам статьи можно посмотреть здесь.

Эта статья будет интересна аналитикам и инженерам, которые работают с BigData и регулярно сталкиваются с необходимостью продуктивизировать модели на Hadoop.

Читать далее

Искусство ETL. FAQ по Data Cooker ETL

Время на прочтение5 мин
Количество просмотров3.9K

Как и было обещано, в завершение серии ( 1 2 3 4 5 ) статей о разработке инструмента для ETL больших данных, я выкладываю выжимку ответов на вопросы.


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


Q. Что это такое?


A. Специализированный инструмент для а) быстрого создания ETL процессов и б) эффективного по стоимости их выполнения.


Промка: https://dcetl.ru
Исходники: https://github.com/PastorGL/datacooker-etl
Официальная группа в телеге: https://t.me/data_cooker_etl

Читать дальше →

Искусство ETL. Пишем собственный движок SQL на Spark [часть 5 из 5]

Уровень сложностиСложный
Время на прочтение14 мин
Количество просмотров1.9K

REPL


В данной серии статей я подробно рассказываю о том, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL с использованием Spark RDD API, заточенный на задачи подготовки и трансформации наборов данных.

Краткое содержание предыдущей серии, посвящённой API расширения и разного рода технической обвязке:


Расширяемость. API подключаемых функций
Режимы запуска. Пакетный режим, сборка для разных окружений, автотесты


Теперь можно поговорить о последних штрихах, делающих инструмент — инструментом, а именно, об интерактивно-отладочном режиме, то есть, REPL, клиенте и сервере, а также о генераторе документации.


Предупреждение о рейтинге «M for Mature»

Уровень сложности данной серии статей — высокий. Базовые понятия по ходу текста вообще не объясняются, да и продвинутые далеко не все. Поэтому, если вы не разработчик, уже знакомый с терминологией из области бигдаты и жаргоном из дата инжиниринга, данные статьи будут сложно читаться, и ещё хуже пониматься. Я предупредил.

Читать дальше →

Искусство ETL. Пишем собственный движок SQL на Spark [часть 4 из 5]

Уровень сложностиСложный
Время на прочтение15 мин
Количество просмотров1.8K

public abstract class Operation implements Configurable<OperationMeta>


В данной серии статей я подробно рассказываю о том, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL с использованием Spark RDD API, заточенный на задачи подготовки и трансформации наборов данных.

Краткое содержание предыдущей серии, посвящённой имплементации спеки языка в коде:
Заметка об использовании prior art
Наборы данных в контексте исполнения
Переменные, настройки контекста исполнения, и метаданные параметров подключаемых функций
Интерпретатор, контекст исполнения, операторы выражений


Разобравшись со всеми контекстами и устройством ядра интерпретатора, можно перейти к описанию API точек расширения, режимов запуска, и технической обвязки сборки исполняемых артефактов.


Предупреждение о рейтинге «M for Mature»

Уровень сложности данной серии статей — высокий. Базовые понятия по ходу текста вообще не объясняются, да и продвинутые далеко не все. Поэтому, если вы не разработчик, уже знакомый с терминологией из области бигдаты и жаргоном из дата инжиниринга, данные статьи будут сложно читаться, и ещё хуже пониматься. Я предупредил.

Читать дальше →

Искусство ETL. Пишем собственный движок SQL на Spark [часть 3 из 5]

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров1.9K

04_assets_residents.tdl


В данной серии статей я подробно рассказываю о том, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL с использованием Spark RDD API, заточенный на задачи подготовки и трансформации наборов данных.

Краткое содержание предыдущей серии, последней, посвящённой проектированию спецификации языка:
Операторы жизненного цикла наборов данных (продолжение)
Операторы контроля потока выполнения
Операторы управления контекстом исполнения
Операторы выражений


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


Предупреждение о рейтинге «M for Mature»

Уровень сложности данной серии статей — высокий. Базовые понятия по ходу текста вообще не объясняются, да и продвинутые далеко не все. Поэтому, если вы не разработчик, уже знакомый с терминологией из области бигдаты и жаргоном из дата инжиниринга, данные статьи будут сложно читаться, и ещё хуже пониматься. Я предупредил.

Читать дальше →
1
23 ...