Как стать автором
Поиск
Написать публикацию
Обновить
3.52

Apache *

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

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

«Криптонит» приглашает на Spark-митап в Москве 29 мая!

Приглашаем на наш Spark-митап: обсудим кейсы, практики применения и тренды развития!

Когда и где пройдёт?
29 мая в 18:30 в Музее криптографии (https://cryptography-museum.ru/)

Кому Spark Meetup полезен?

  • инженерам данных и аналитикам данных

  • программистам со знанием Spark и Scala

  • всем смежным специальностям из телекома, банков, промышленности и ретейла

Кто будет выступать с докладами?
Эксперты из «Криптонита», Positive Technologies и М2. Программу можно посмотреть тут — https://clc.to/SparkMeetup

Как зарегистрироваться?
Вот по этой ссылке — https://clc.to/SparkMeetup

Будет ли трансляция?
Обязательно будет. Ссылку разместим позже на странице мероприятия — поэтому советуем зарегистрироваться на оффлайн-встречу, даже если вы не сможете прийти. Так вы точно не потеряете ссылку на онлайн

Нужно что-то платить?
Нет, митап бесплатный — ждём всех неравнодушных к программированию на Spark!

Зарегистрироваться — https://clc.to/SparkMeetup

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

Как работать с Apache Spark? Практический гайд (видео + материалы на GitHub)

В Сравни мы используем Apache Spark для загрузки сырых данных из источников.

У нас есть два вида загрузки:

  1. Batch-загрузка — когда данные грузятся один раз в какой-то период (час, день и так далее). Актуальна она, например, для данных по курсам валют: аналитикам достаточно знать курс валют на конкретный день, поэтому читаем раз в день данные по API с сайта ЦБ и грузим их в S3 (объектное хранилище) при помощи Python. Таких API достаточно много, они могут сильно различаться по количеству данных, поступающих с каждой. 

    Уже из S3 в Greenplum мы грузим все эти данные при помощи Spark. Фреймворк позволяет быстро трансформировать данные одновременно на нескольких машинах, так как все вычисления происходят в оперативной памяти.

  2. Потоковая загрузка, которая работает 24/7 (на то она и стриминг). Здесь мы имеем дело с данными, изменения в которых нам нужно видеть несколько раз в день. Данные в этом случае читаются из Kafka посредством Spark и сразу пишутся в Greenplum (параллельно скидываем файлы в S3, чтобы был бэкап).  

Порог входа в Spark выше, чем в SQL или Python, поскольку он требует знания и того, и другого. Плюс, когда начинаешь заниматься написанием трансформаций на Spark, возникают вопросы по оптимизации кода и правильной настройке ресурсов. Так как Spark — приложение, которое запускается на наших серверах, его надо уметь настраивать: примерно понимать, сколько потребуется выделить ядер процессора, оперативной памяти и количества executors (процессов для параллельной обработки).

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

Специально для тех, кто планирует ознакомиться с Apache Spark на практике, Евгений подготовил видео-гайд, который можно посмотреть здесь:

Плюс материалы на GitHub, чтобы вы могли не просто разобраться в Spark, но и запустить его на своём локальном ПК в режиме библиотеки или режиме кластера через docker compose.

Смотрите, изучайте, осваивайте Spark на практике. Надеемся, будет полезно!

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

Подключение к этому сайту не защищено...

Когда веб-браузер не может «договориться» с веб-сервером о способе шифрования данных, сайт не открывается, а на экран выдаются сообщения: «Подключение к этому сайту не защищено. Этот сайт не может обеспечить безопасное соединение», «Не удаётся открыть эту страницу. Подключение было сброшено» или даже «Не удаётся получить доступ к сайту. Превышено время ожидания ответа от сайта».

В последнее время причиной таких нестыковок стала активация алгоритма согласования криптографических ключей Kyber768 в веб-браузерах, построенных на платформе Chromium. После включения этого механизма изменяется запрос, отправляемый веб-браузером для установки защищённого соединения TLS 1.3, но ещё не все серверы «умеют» правильно его обрабатывать, что приводит к досадным отказам в обслуживании.

Если попасть на веб-сайт всё-таки необходимо, то можно временно отключить в веб-браузере механизм Kyber768. Например, в Microsoft Edge для этого надо:

  1. Набрать в адресной строке текст:edge://flags/

  2. Набрать в строке поиска текст:TLS 1.3 hybridized

  3. Изменить значение параметра «TLS 1.3 hybridized Kyber support» с Default на Disabled

  4. Перезапустить веб-браузер

Отключение механизма Kyber768 в веб-браузере Microsoft Edge.
Отключение механизма Kyber768 в веб-браузере Microsoft Edge.

В других веб-браузерах поиск настройки отличается только текстом в адресной строке: chrome://flags — для Google Chrome, vivaldi://flags — для Vivaldi, и т. д.

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

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

Друзья, мы запустили бесплатный мини-курс «Kafka vs RabbitMQ: асинхронное взаимодействие сервисов»!

На курсе вы разберетесь в принципах и отличиях работы двух популярных систем сообщений. Узнаете, как выбрать подходящее решение для проекта, оптимизировать обмен данными между компонентами и повысить эффективность разработки.

Получить ссылку на бесплатные уроки можно заполнив эту форму.

А если вам интересно прокачать свои навыки работы с Apache Kafka, рекомендуем:

Наши курсы

✔️ «Kafka vs RabbitMQ: асинхронное взаимодействие сервисов (DEV-SELF-043)»

✔️ «Apache AirFlow: эффективная оркестрация задач (EAS-032)»

✔️ «Kafka Advanced (EAS-030)»

✔️ «Основы Kafka (EAS-026)»

Наши вебинары

📺 «Kafka Advanced: знакомство с курсом»

📺 «Apache Kafka. Введение» 

👉 Все курсы Учебного центра IBS 👈

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

Когда строишь потоки обработки в Apache Nifi в основном требуется результат записать в базу данных. Бывают случаи, когда запись в целевую таблицу не проходит по причине несоответствия данных в записи и полей в таблице. Это возникает в случае, если на источнике размер поля увеличился, либо изменился порядок знаков после занятой, либо вы ожидаете "uniqueidentifier" а приходит пустая строка.

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

Для этого предлагаю скрипт для ScriptedTransformRecord, позволяющий разобрать запись на массив записей, каждая из которых содержит только одно значение, остальные проставляются "null".

results = []

fields = record.getRawFieldNames()
schema = record.getSchema()
fields.each{key -> {
    log.debug("Got key: ${key}")
    nMap = new java.util.HashMap<String, Object>()
    log.debug("create map")
    nMap.put(key,record.getValue(key))
    log.debug("Put to map value")
    newrecord = new org.apache.nifi.serialization.record.MapRecord(schema, nMap)
    log.debug("Сreate new record with field ${key}")
    results.add(newrecord)
}}

results

Полезные ссылки:

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

Java-разработчики, мы вас ждём на One day offer!

Что такое One day offer?
Мероприятие, на котором можно стать частью нашей команды: без лишних собесов, тестовых заданий и бюрократии

Кто может участвовать?
Мы ищем java-разработчиков middle+ и senior уровня. Неважно, в каком городе ты живешь, главное находиться на территории России

Когда и где?
9 ноября в онлайне

Как попасть?

  1. Оставь заявку на участие

  2. Пройди предварительное онлайн-интервью и получи приглашение на ивент

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

Узнать подробности и подать заявку по ссылке
❗️Последний день подачи заявки на участие — 7 ноября

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