Практически в каждом секторе, работающем со сложными данными, Spark "де-факто" быстро стал средой распределенных вычислений для команд на всех этапах жизненного цикла данных и аналитики. Одна из наиболее ожидаемых функций Spark 3.0 - это новая платформа Adaptive Query Execution (AQE), устраняющая проблемы, которые возникают при многих рабочих нагрузках Spark SQL. Они были задокументированы в начале 2018 года командой специалистов Intel и Baidu и сегодня мы детально их обсудим.
Hadoop *
Фреймворк для распределённых приложений
Архитектура непрерывной потоковой доставки в Cloudera Flow Management
Cloudera Flow Management, основанная на Apache NiFi и являющаяся частью платформы Cloudera DataFlow, используется некоторыми из крупнейших организаций в мире для обеспечения простого в использовании, мощного и надежного способа распределения и высокоскоростной обработки данных в современной экосистеме больших данных. Клиенты все чаще используют CFM для ускорения обработки потоковых данных на предприятии от концепции до реализации. Интерфейс разработки потоков Cloudera отличается от типичных стилей структурированного кодирования, что часто создает проблему применения лучших практик непрерывного совершенствования/непрерывной доставки (CI/CD) в стиле DevOps для доставки потоков.
Цепочка пользовательских преобразований DataFrame в Spark
Для цепочки преобразований DataFrame в Spark можно использовать implicit classes
или метод Dataset#transform
. В этой статье блога будет продемонстрировано, как выстраивать цепочки преобразований DataFrame
, и объяснено, почему метод Dataset#transform
предпочтительнее, чем implicit classes
.
Структурирование кода Spark в виде преобразований DataFrame
отличает сильных программистов Spark от "спагетти-хакеров", как подробно описано в статье "Написание идеального кода Spark (Writing Beautiful Spark Code)". После публикации в блоге, ваш код Spark будет намного проще тестировать и повторно использовать.
Если вы используете PySpark, смотрите эту статью о цепочке пользовательских преобразований PySpark DataFrame.
Демистификация Join в Apache Spark
Операции Join часто используются в типовых потоках анализа данных для корреляции двух наборов данных. Apache Spark, будучи унифицированным аналитическим движком, также обеспечил прочную основу для выполнения широкого спектра сценариев Join.
На очень высоком уровне Join работает с двумя наборами входных данных, операция выполняется путем сопоставления каждой записи данных, принадлежащей одному из наборов входных данных, с каждой другой записью, принадлежащей другому набору входных данных. При обнаружении совпадения или несовпадения (в соответствии с заданным условием) операция Join может либо вывести отдельную сопоставляемую запись из любого из двух наборов данных, либо объединенную (Joined) запись. Объединенная запись представляет собой комбинацию отдельных сопоставляемых записей из обоих наборов данных.
Истории
Как построить современное аналитическое хранилище данных на базе Cloudera Hadoop
Привет.
В конце прошлого года GlowByte и Газпромбанк сделали большой совместный доклад на конференции Big Data Days, посвященный созданию современного аналитического хранилища данных на базе экосистемы Cloudera Hadoop. В статье мы детальнее расскажем об опыте построения системы, о сложностях и вызовах с которыми пришлось столкнуться и преодолеть и о тех успехах и результатах, которых мы достигли.
Новая схватка двух якодзун или Scylla vs Aerospike (+ HBase для массовки)
По удивительному совпадению Scylla (далее SC) также легко бьет CS, о чем гордо сообщает прямо на своей заглавной странице:
Настройка DBT + Spark для кластера Cloudera on-prem
Для управления кодом Spark-приложений мы используем подход, описанный в предыдущей статье.
Речь идет об управлении качеством кода при разработке Spark ETL, чтобы не превратить работу над проектом в полет души, пугающий даже автора. В результате Spark ETL application выглядит просто как последовательность Spark SQL-запросов. Сама ETL-трансформация описывается как объект в отдельном файле конфигурации.
Impala для Python-разработчика на примере определения фрода при анализе трафика в маркетинговой платформе
Python-приложения традиционно работают с реляционными БД. Для этого у них есть нужная инфраструктура, множество различных решений и практик. Но иногда приходится использовать другие решения для хранения и обработки данных. Для разработки ETL есть много специализированных инструментов. Но что делать, если есть python-приложение и не хочется разрабатывать какие-то еще сервисы для процессинга данных? Попробуем выделить фродовые эвенты из большого массива данных, хранящихся в Impala, и сделать конструктор отчетов по таким эвентам с помощью только обычного асинхронного веб-приложения на базе python/fastapi.
Пример использования гибридного облака на базе Cloudera Data Platform
Пример использования гибридного облака на базе Cloudera Data Platform
В этой статье я продемонстрирую, как использовать мощные возможности гибридного облака на базе Cloudera Data Platform (CDP). Вы узнаете, как подключить локальный CDP Private Cloud Base кластер к CDP в публичном облаке и настроить репликацию данных, провести их профилирование и настроить политику маскировки полей с приватными данными.
Стриминг Edge2AI на NVIDIA JETSON Nano 2Гб с использованием агентов MiNiFi в приложениях FLaNK
Стриминг Edge2AI на новой карте NVIDIA JETSON Nano 2 Гб с использованием агентов MiNiFi в приложениях FLaNK
Устройство NVIDIA Jetson Nano 2GB великолепно - ничего лишнего. Скорость вполне подходит для большинства потребностей, особенно для задач разработки и прототипирования. Настройка проста, система быстрая, я настоятельно рекомендую всем, кто ищет быстрый способ поэкспериментировать с ИИ на периферии и другими пограничными рабочими нагрузками. Я также подключил свой Jetson к монитору, клавиатуре и мыши, и я могу использовать его сразу же как для вычислений на периферии, так и в качестве основного рабочего стола. С большим количеством таких устройств можно будет легко запустить MiNiFi агентов, модель классификации на Python и модели Deep Learning. Я также покажу, как быстро запустить на ней модель глубокого обучения для классификации изображений с веб камеры.
Hadoop мертв, да здравствует Hadoop! Или что новенького в Cloudera?
Привет, Хабр! Меня зовут Кирилл, я инженер по решениям в Cloudera, и сегодня мне выпала честь представлять всю команду, работающую с регионом СНГ. Мы очень рады, что наконец-то можем делиться полезными материалами и новинками мира больших данных с вами. В последнее время у нас появилось много нового, поэтому начиная писать эту статью волновались, как бы она не превратилась в неподъемный лонгрид. Постарались собрать ниже только самое основное и, к сожалению, в этой статье не будет много технической информации, но мы быстро это исправим.
Почему ваши приложения Spark работают медленно или выходят из строя
Вторая часть нашей серии «Почему ваши приложения Spark медленно работают или выходят из строя» следует за первой частью об управлении памятью и посвящена вопросам, возникающим при искажении данных и очистки памяти в Spark. Как и многие другие проблемы, связанные с производительностью Spark, симптомы нарастают по мере увеличения объема данных, обрабатываемых приложением.
Масштабирование итеративных алгоритмов в Spark
Итеративные алгоритмы широко применяются в машинном обучении, связанных компонентах, ранжировании страниц и т.д. Эти алгоритмы усложняются итерациями, размеры данных на каждой итерации увеличивается, и сделать их отказоустойчивыми на каждой итерации непросто.
В этой статье я бы подробно остановился на некоторых моментах, которые необходимо учитывать при работе с этими задачами. Мы использовали Spark для реализации нескольких итерационных алгоритмов, таких как построение связанных компонентов, обход больших связанных компонентов и т.д. Ниже приведен мой опыт работы в лабораториях Walmart по построению связанных компонентов для 60 миллиардов узлов клиентской идентификации.
Ближайшие события
Руководство по столбчатым форматам файлов в Spark и Hadoop для начинающих
Что из себя представляет «столбчатый формат файла»?
Этот термин часто используется, но я не уверен, что всем до конца ясно, что он означает на практике.
Определение из учебника гласит, что столбчатые (колоночные, многоколоночные, columnar) форматы файлов хранят данные по столбцам, а не по строкам. CSV, TSV, JSON и Avro — традиционные строковые форматы файлов. Файл Parquet и ORC — это столбчатые форматы файлов.
Давайте проиллюстрируем различия между этими двумя концепциями, используя примеры некоторых данных и простой наглядный столбчатый формат файла, который я только что придумал.
Экономичная конфигурация исполнителей Apache Spark
Первый этап в определении оптимальной конфигурации исполнителей (executor) - это выяснить, сколько фактических ЦП (т.е. не виртуальных ЦП) доступно на узлах (node) в вашем кластер. Для этого вам необходимо выяснить, какой тип инстанса EC2 использует ваш кластер. В этой статье мы будем использовать r5.4xlarge, который, согласно прейскуранту на инстансы AWS EC2, насчитывает 16 процессоров.
Когда мы запускаем наши задачи (job), нам нужно зарезервировать один процессор для операционной системы и системы управления кластерами (Cluster Manager). Поэтому мы не хотели бы задействовать под задачу сразу все 16 ЦП. Таким образом, когда Spark производит вычисления, на каждом узле у нас остается только 15 доступных для аллоцирования ЦП.
Sibur Challenge 2020 — онлайн-чемпионат по анализу промышленных данных
Мы уже в третий раз запускаем чемпионат по Data Science совместно с сообществом экспертов и команд по искусственному интеллекту AI Community. В этом году соревнование пройдет полностью в онлайн, а призовой фонд составит 1 миллион рублей.
Главное о чемпионате:
- Стартуем 21 ноября, собираем заявки до 13 декабря, победителей объявим 19 декабря
- Решать кейсы можно индивидуально или с командой
- Подать заявку могут все (вообще все, вне зависимости от опыта и места жительства), за исключением наших действующих сотрудников, увы
- Призовой фонд — 1 000 000 рублей, а лучшие участники могут получить стажировки и вакансии.
Подробнее о задачах 2020 — под катом.
Как дебажить запросы, используя только Spark UI
В этой статье я попытаюсь продемонстрировать, как дебажить задачу Spark, используя только Spark UI. Я запущу несколько задач Spark и покажу, как Spark UI отражает выполнение задачи. Также я поделюсь с вами несколькими советами и хитростями.
Spark schemaEvolution на практике
В данной статье ведущий консультант бизнес-направления Big Data Solutions компании «Неофлекс», подробно описывает варианты построения витрин переменной структуры с использованием Apache Spark.
В рамках проекта по анализу данных, часто возникает задача построения витрин на основе слабо структурированных данных.
Обычно это логи, или ответы различных систем, сохраняемые в виде JSON или XML. Данные выгружаются в Hadoop, далее из них нужно построить витрину. Организовать доступ к созданной витрине можем, например, через Impala.
В этом случае схема целевой витрины предварительно неизвестна. Более того, схема еще и не может быть составлена заранее, так как зависит от данных, а мы имеем дело с этими самыми слабо структурированными данными.
Например, сегодня логируется такой ответ:
{source: "app1", error_code: ""}
а завтра от этой же системы приходит такой ответ:
{source: "app1", error_code: "error", description: "Network error"}
В результате в витрину должно добавиться еще одно поле — description, и придет оно или нет, никто не знает.
Задача создания витрины на таких данных довольно стандартная, и у Spark для этого есть ряд инструментов. Для парсинга исходных данных есть поддержка и JSON, и XML, а для неизвестной заранее схемы предусмотрена поддержка schemaEvolution.
С первого взгляда решение выглядит просто. Надо взять папку с JSON и прочитать в dataframe. Spark создаст схему, вложенные данные превратит в структуры. Далее все нужно сохранить в parquet, который поддерживается в том числе и в Impala, зарегистрировав витрину в Hive metastore.
Вроде бы все просто.
Как увеличить скорость чтения из HBase до 3 раз и с HDFS до 5 раз
Применение low-code в аналитических платформах
Задача построения ИТ-платформ для накопления и анализа данных рано или поздно возникает у любой компании, в основе бизнеса которой лежат интеллектуально нагруженная модель оказания услуг или создание технически сложных продуктов. Построение аналитических платформ — сложная и трудозатратная задача. Однако любую задачу можно упростить. В этой статье я хочу поделиться опытом применения low-code-инструментов, помогающих в создании аналитических решений. Данный опыт был приобретён при реализации ряда проектов направления Big Data Solutions компании «Неофлекс». Направление Big Data Solutions компании «Неофлекс» с 2005 года занимается вопросами построения хранилищ и озёр данных, решает задачи оптимизации скорости обработки информации и работает над методологией управления качеством данных.
Избежать осознанного накопления слабо и/или сильно структурированных данных не удастся никому. Пожалуй, даже если речь будет идти о малом бизнесе. Ведь при масштабировании бизнеса перспективный предприниматель столкнётся с вопросами разработки программы лояльности, захочет провести анализ эффективности точек продаж, подумает о таргетированной рекламе, озадачится спросом на сопроводительную продукцию. В первом приближении задача может быть решена «на коленке». Но при росте бизнеса приход к аналитической платформе все же неизбежен.
Однако в каком случае задачи аналитики данных могут перерасти в задачи класса «Rocket Science»? Пожалуй, в тот момент, когда речь идёт о действительно больших данных.
Чтобы упростить задачу «Rocket Science», можно есть слона по частям.
Чем большая дискретность и автономность будет у ваших приложений/сервисов/микросервисов, тем проще вам, вашим коллегам и всему бизнесу будет переваривать слона.
К этому постулату пришли практически все наши клиенты, перестроив ландшафт, основываясь на инженерных практиках DevOps-команд.
Вклад авторов
alizar 319.0ffriend 128.0asash 109.0ph_piter 83.8fortyseven 83.0sgzmd 83.0Deneb 66.0olegchir 63.0PastorGL 62.0pustota_2009 61.0