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

Apache *

Свободный веб-сервер

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

Что нового в Apache Spark 3.4.0 — Spark Connect — Доработки для Shuffle

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

Spark Connect — это, пожалуй, самая ожидаемая фича Apache Spark 3.4.0. Она была анонсирована на конференции Data+AI Summit 2022 и сейчас широко освещается в социальных сетях. Вот и я решил приобщиться и внести свой небольшой вклад в это дело, продемонстрировав вам несколько интересных деталей реализации.

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 0

Новости

Kafka Connect на примере Debezium PostgresConnector

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

В предыдущей статье про микросервисную архитектуру на основе событий с использованием Kafka Streams достаточно поверхностно был упомянут io.confluent.connect.jdbc.JdbcSourceConnector, который использовался для вычитания данных из SQLite и отправки их в топик Kafka. Сейчас я бы хотел более подробно разобрать технологию Kafka Connect на примере io.debezium.connector.postgresql.PostgresConnector. Как и в прошлый раз, я реализовал небольшой демо проект, код которого доступен на GitHub. В проекте кода совсем немного, однако чтобы понять все настройки, примененные в коннекторе, придется достаточно подробно пройтись по теоретической части. Итак, приступим.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 2

Нетипичные сценарии использования BI-системы (Apache Superset)

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

Всем привет!

Сегодня поговорим о немного нетипичной для меня теме, а именно — Apache Superset. Обычно я пишу длинные «философские» статьи «на свободную тему», но в этот раз — это будет туториал. Так что кому‑то может показаться банальностью, но, опять таки, вдруг кому поможет. Почему‑то именно по суперсету на Хабре оскорбительно мало материалов. Да, у него в целом неплохая документация, но она все же — документация, поэтому в меру сухая, в ней нет дополнительных объяснений, примеров. Попробуем хоть немного исправить эту ситуацию.

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 7

Apache Spark… Это база

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

Apache Spark — это фреймворк для обработки и анализа данных, который позволяет выполнять операции на вычислительных кластерах и поддерживает несколько языков программирования: Scala, Java, Python, R и SQL.

В статье рассмотрим основные понятия для понимания обработки данных на Spark, разберем функционал его компонентов и сформируем DataFrame разными способами.

Читать далее
Всего голосов 12: ↑6 и ↓6 0
Комментарии 4

Истории

Анализируем 15 млн чеков за 3 секунды: как мы прошли путь от калькулятора акций до CDP-платформы

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

Рассказываем историю о том, как калькулятор скидок в составе кассового ПО стал CDP-платформой с аналитическим модулем, управляемым с минимальным участием разработчиков.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 8

Микросервисы на основе событий с Kafka Streams и Spring Boot

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

Всем привет! Это моя первая статья на Habr, так что не судите строго за стиль, а вот по содержанию буду рад любой конструктивной критике.

Статья основана на публикациях Confluent о том, как можно реализовать микросервисную архитектуру на основе событий с помощью Kafka Streams и KSQL.

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 9

Поднимаем BI Apache Superset в 2023 году — гайд с последними обновлениями

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

Поднимаем BI Apache Superset в 2023 году - полный гайд с последними обновлениями и полезными настройками самого BI после установки.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 3

Безопасный Zookeeper: SASL with Digest-MD5

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

Привет! Столкнулся с тем, что быстро не нашел простой инструкции, как с использованием SSL и SASL настроить безопасный кластер из нескольких Linux узлов Zookeeper, и решил это исправить.

В этой статье поговорим о том, как:

Настроить Zookeeper в кластере из трех узлов без шифрования (Plain);

Добавить шифрование во внутрикластерное взаимодействие (Quorum TLS);

Создать сертификаты для подключения к узлам Zookeeper клиентов (Server TLS);

Создать сертификаты для подключения клиентов к узлам (Client TLS);

Добавить авторизацию в шифрованный кластер (SASL with MD5);

Показать на примере, как работают ACL, посмотреть, чем отличается суперпользователь super от всех остальных (как работает ACL в действии).

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 0

Apache Kafka и Spring Boot: лёгкая интеграция

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

Kafka — это универсальный и мощный инструмент для построения конвейеров данных в реальном времени и событийно-ориентированных приложений. Перевели туториал, где рассматривается интеграция Kafka с экосистемой Spring Boot.

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 2

Опыт внедрения UI CMAK для управления кластерами Kafka

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

Apache Kafka – это платформа для обработки потоков данных в реальном времени, которая позволяет эффективно передавать и обрабатывать огромные объемы данных. Не погруженным в технологию пользователям сложно настраивать и осуществлять мониторинг Kafka без специализированных инструментов с графическим интерфейсом.

В этой статье мы поделимся опытом внедрения такого инструмента и расскажем про CMAK.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 3

Подбираем параметры сессии в Apache Spark, чтобы не стоять в очереди

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

Бывало у вас так, что некоторые аналитики запрашивают побольше вычислительных ядер и оперативной памяти для своих Jupyter-ноутбуков, а у вас в это время ничего не работает? У меня бывало, ведь недостаточно уметь разрабатывать код на Spark — еще нужно уметь его настраивать, правильно инициализировать сеансы работы и эффективно управлять доступом к вычислительным ресурсам. Если отдать настройку на волю случая, Spark может (и будет) потреблять ресурсы всего кластера, а другие приложения будут стоять в очереди.

Меня зовут Владислав, я работаю Дата инженером в Альфа-Банке, и в этой статье мы поговорим о том, как правильно подобрать необходимое количество параметров и не положить кластер на коленочки.

Читать далее
Всего голосов 23: ↑21 и ↓2 +19
Комментарии 9

Airflow в Kubernetes. Часть 1

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

Приветствую!

На пути инженера данных часто встречаются задачи связанные с DevOps. Одна из таких - развернуть Airflow в Kubernetes кластере. Если до этого похожего опыта работы не было, то эта задача может показаться нетривиальной. Конечно, можно выполнить несколько команд из официального гайда, но если нужно будет что-то поправить, то без понимания, что происходит внутри, обойтись будет сложно.

Эта статья призвана  облегчить данную задачу. Она поможет тем, кто уже работал с Airflow, но еще не касался технологии Kubernetes. 

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Комментарии 8

Потоковая обработка данных: анализ альтернативных решений

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

Всем привет! Я Алексей Пономаревский, разработчик решений для платформ сбора и обработки больших данных.

Два года назад мы в ITSumma создали решение для потоковой обработки данных с помощью Apache Spark и базы данных Greenplum — spark-greenplum-connector. Это многофункциональный плагин для Spark, на его основе инженеры могут строить ETL-решения и анализировать данные in-memory.

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

Читать далее
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 2

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

intermediate сертификат в apache

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

Задача — настроить безпопасное соединение (ssl, которое сейчас tls) к вашему хосту, на котором работает apache2. Самоподписанные сертификаты нам не подходят, так как требуется чтобы с нашим сайтом работали интернет магазины. Они самоподписанным сертификатам не доверяют.

Читать далее
Всего голосов 6: ↑3 и ↓3 0
Комментарии 0

Перенаправление запросов к веб-серверу Apache на новый домен с помощью .htaccess

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

Иногда возникает необходимость в переносе сайта, обслуживаемого веб-сервером Apache, на новый домен. Снизить издержки такого переноса помогает настройка перенаправления HTTP-запросов к старому домену на новый.

Решение, описанное в этой статье:
• перенаправляет HTTP-запросы с домена old.com и всех его поддоменов на домен new.com и соответствующие его поддомены;
• исключает префикс www. путём перенаправления HTTP-запросов с доменов www.*.new.com на *.new.com;
• может использоваться для преобразования HTTP-запросов в HTTPS-запросы.

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Комментарии 4

Зеркалирование топиков Kafka по-бруклински

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

Буквально на секунду представьте, что у вас есть парочка здоровенных кластеров Apache Kafka, каждый из которых держит по нескольку миллионов rps. И тут вас попросили зеркалировать топик из одного кластера в другой. Максимально близко к реалтайму, да ещё и с некоторыми специфическими условиями. Если стало страшно, интересно или страшно интересно, то это статья для вас.

Под катом я расскажу, что такое зеркалирование и зачем оно нужно. Как нам перестало хватать Mirror Maker’а. Поговорим о возможных решениях и выборе между ними. И дам подробную инструкцию, как вам развернуть такое решение у себя.

Читать далее
Всего голосов 29: ↑29 и ↓0 +29
Комментарии 6

Построение гибкой и распределенной архитектуры с использованием Kafka и Kafka Connect: Часть 2 — Получатель и Helm Chart

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

Данная статья является продолжением статьи - Ивентная модель данных с использованием Kafka и Kafka Connect: Построение гибкой и распределенной архитектуры.

Добро пожаловать во вторую часть статьи о построении гибкой и распределенной архитектуры с использованием Apache Kafka и Kafka Connect! В первой части мы ознакомились с ивентной моделью данных, разработали сервис отправителя и настроили интеграцию с Kafka, чтобы асинхронно отправлять сообщения. Теперь настало время рассмотреть вторую часть этого увлекательного проекта.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 3

Как узнать больше об Apache Kafka: от базовых настроек до архитектуры сервисов

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

Apache Kafka — распределенный программный брокер сообщений с открытым исходным кодом. Его ключевая задача заключается в сборе данных у приложений и их хранении в распределенном хранилище. Сегодня обсудим литературу, которая поможет разобраться в его работе и понять, какую роль он играет в проектах, связанных с большими данными.  

Представляем вашему вниманию избранную подборку новых высокооцененных книг для начинающих и опытных специалистов.

Читать далее
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 0

Использование kafka-rest для построения интеграционных API

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

Есть простая, можно сказать, типовая – задача, передать данные из системы «А» в систему «Б». А – классическая legacy-трехзвенка из 00х с IIS-MSSQL, «Б» - новая-нулевая-микросервисная с внутренней шиной на apache kafka и собственным ETL на Apache NiFi, развернута в k8s. Направление передачи – из «А» в «Б», по расписанию , в общем ничего сложного – «Работенка на 5 минут»: идем в NiFi делаем QueryDatabaseTable->PublishKafkaRecord и продолжаем спать – но тут начинаются «Нюансы»(ТМ) в виде ИБ, которая говорит, что прямая интеграция корпоративных систем – харам, архитектуры которой (дикие люди!) не нравится хождение в чужую БД (Подержи моё пиво! Я сто раз так делал!) и прочих скучных регламентов, требующих «наличия аутентификации», «направления установления соединения совпадающего с направлением передачи» и тому подобных глупостей.

И вот тут на сцену выходит корпоративная интеграционная шина – (low|no)-code решение, которое умеет в расписания, подключение к ИС по различным протоколам (в том числе и *dbc), передачу данных с помощью REST\SOAP, аутентификацию, обработку ошибок, алертинг и кучу других вещей. Оооок, шина по расписанию будет ходить в БэДэ (Или не БэДэ – там уже видно будет), забирать данные и передавать… А куда, собственно, передавать?

Первый вариант – «в kafka’у!» хорош примерно всем – кроме реализации. Собственно, бинарный протокол kafka’и шина не умеет, ИБ не умеет в инспекцию этого самого протокола, ingress-nginx контроллер не умеет (Нормально – не умеет, ssl-passthrough в данном случае не очень-то «нормально») в публикацию kafka’и, а согласовывать с ИБ публикацию брокеров через LB – удачи, пацаны. Плюс нормальная аутентификация\авторизация на kafka’е – тот еще геморрой между нами говоря. Отметаем.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 2

Пять подходов к созданию ad-hoc-датафреймов в PySpark

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


Дата-инженеры, работающие с PySpark, часто сталкиваются с задачей создать логику обработки данных. Обычно речь идет о тестировании набора классов и функций. Современные платформы данных на основе Spark подчас содержат сотни, а то и тысячи разных модульных тестов, которые помогают командам по работе с данными сохранять целостную базу кода. В ежедневные рабочие задачи дата-инженера входит создание небольших датафреймов, которые используются в модульных тестах как входные и выходные значения.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 1