В первой части статьи мы рассказали, зачем нужна DDRRE, а также как и при помощи каких инструментов происходит сбор данных. Вторая часть статьи будет посвящена использованию полученного на первом этапе потока данных.
Напомним общую схему системы:
Блок RAW Data Collection описан в первой статье и представляет собой набор из standalone-адаптеров.
В основе следующих двух лежит параллельная потоковая обработка данных. В качестве фреймворка используется Spark Streaming. Почему именно он? Было решено, что стоит использовать единый дистрибутив Hadoop – Cloudera, который из коробки включает в себя Spark, HBase и Kafka. К тому же в компании на тот момент уже имелась экспертиза по Spark.
Читать полностью »
Рубрика «java» - 190
Data Driven Realtime Rule Engine в Wargaming: анализ данных. Часть 2
2016-01-22 в 13:38, admin, рубрики: Apache, DDRRE, drools, java, Rule Engine, spark streaming, wargaming, Блог компании Wargaming, разработка, Сloudera, Серверная оптимизация, метки: DDRREQA: Conference приглашает спикеров
2016-01-22 в 8:17, admin, рубрики: .net, java, Блог компании Luxoft, конференция, системное администрирование, Тестирование IT-систем
Через три месяца, в конце апреля, в пяти городах России (Санкт-Петербург, Москва, Омск, Новосибирск и Екатеринбург) пройдет крупнейшая в своем классе конференция по тестированию программных систем – QA: Conference. В ней мы постарались собрать воедино лучшие компоненты, которыми должна обладать хорошая конференция:
- Лучшие специалисты по тестированию — в качестве спикеров
- Низкая стоимость билетов — 3,000 рублей
- Три потока вещания докладов — в трех залах
- Два потока мастер-классов (приходите с ноутбуками и настроенным окружением)
- Видеозапись докладов по всем городам. Ведь не все доклады Москвы будут в Омске, например. Но и не все доклады других городов будут в Москве. Участники получат записи всех докладов.
По мастер-классам предвосхищу вопрос: как же так, мастер-классы в параллели с докладами? Не совсем: мастер-классы закончатся через 3 часа после конференций. Т.е. вы сможете на них попасть как во время докладов (будет меньше народа), так и после докладов (чтобы не пропустить сами доклады, послушать и позадавать вопросы)
А пока готовится наш сайт, уже можно посмотреть, что же будет.
Читать полностью »
Atlassian Plugins: погружение в Active Objects и Plugin Settings
2016-01-21 в 11:26, admin, рубрики: atlassian, atlassian jira, confluence, Help Desk Software, java, jira, jira plugin, service desk, Блог компании Mail.Ru Group, разработкаПривет! Я работаю в Mail.Ru Group в отделе разработки плагинов JIRA. Плагины позволяют расширять или изменять функциональность приложения. Например, с их помощью можно создавать новые типы полей, гаджеты, JQL-запросы, панели с различной информацией, графики и многое другое.
Большинство наших плагинов требуют хранения дополнительных данных, которые они используют. В этой статье я хочу рассказать, как мы решаем эту задачу. Существует два основных способа хранения таких данных: Active Objects и Plugin Settings. Рассмотрим их поподробнее и разберемся в каком случае лучше и удобнее использовать один, а в каком — другой.
Stream API: универсальная промежуточная операция
2016-01-21 в 10:23, admin, рубрики: java, lazy evaluation, stream api, Программирование, функциональное программированиеЯ разрабатываю бесплатную библиотеку StreamEx, которая расширяет стандартное Java 8 Stream API, добавляя туда новые операции, коллекторы и источники стримов. Обычно я не добавляю всё подряд, а всесторонне рассматриваю каждую потенциальную фичу. Например, при добавлении новой промежуточной (intermediate) операции встают такие вопросы:
- Будет ли она действительно промежуточной, то есть не будет трогать источник до выполнения терминальной операции?
- Будет ли она ленивой и вытаскивать из источника не больше данных, чем требуется?
- Сработает ли она на бесконечном стриме? Требует ли она ограниченный объём памяти?
- Будет ли она хорошо параллелиться?
Минусик по любому из этих пунктов заставляет серьёзно задуматься, добавлять ли такую операцию. Минусик по первому — это сразу нет. Например, у конкурентов в jOOλ есть операция shuffle(), которая выглядит как промежуточная, но на самом деле прямо сразу потребляет весь стрим в список, перемешивает его и создаёт новый стрим. Я такое не уважаю.
Минусики по остальными пунктам не означают сразу нет, потому что есть и стандартные операции, которые их нарушают. Второй пункт нарушает flatMap()
, третий — sorted()
, четвёртый — всякие limit()
и takeWhile()
(в JDK-9). Но всё-таки я стараюсь этого избегать. Однако на днях я открыл для себя операцию, которая плохо параллелится и в зависимости от использования может не сработать на бесконечном стриме, но всё же слишком хороша. Через неё удаётся буквально в несколько строчек выразить как практически любую существующую промежуточную операцию, так и кучу несуществующих. Я назвал операцию headTail().
Читать полностью »
FlyElephant как инструмент для вычислений на C++, R, Python или Octave
2016-01-20 в 12:31, admin, рубрики: big data, blender, c++, FlyElephant, gcc, gromacs, HPC, java, Julia, octave, OpenFOAM, openmp, python, R, SciLab, Блог компании FlyElephant, высокая производительность, научные расчёты, Облачные вычисления, параллельное программирование, стартапы
Приветствую всех!
Сегодня я расскажу о возможностях платформы FlyElephant для ученых и инженеров, которые в своей работе проводят различные вычисления на C++, R, Python или Octave. Это могут быть научные расчеты, анализ данных, моделирование или другие задачи. 22 января я буду проводить вебинар “Введение в FlyElephant”, на котором детально расскажу о платформе FlyElephant, а сегодня в общих чертах познакомлю вас с ней и покажу процесс проведения расчетов.
FlyElephant — это платформа, которая предоставляет ученым готовую вычислительную инфраструктуру для проведения расчетов, автоматизирует рутинные задачи и позволяет сосредоточиться на основных вопросах исследований.
Читать полностью »
Gradle: управляя зависимостями
2016-01-19 в 13:52, admin, рубрики: android, gradle, groovy, java, mobile development, redmadrobot, Блог компании REDMADROBOT, мобильная разработка, разработка мобильных приложений, Разработка под android, метки: redmadrobotУправление зависимостями – одна из наиболее важных функций в арсенале систем сборки. С приходом Gradle в качестве основной системы сборки Android-проектов в части управления зависимостями произошёл существенный сдвиг, закончилась эпоха ручного копирования JAR-файлов и долгих танцев с бубном вокруг сбоящих конфигураций проекта.
В статье рассматриваются основы управления зависимостями в Gradle, приводятся углублённые практические примеры, небольшие лайфхаки и ссылки на нужные места в документации.
Google Cloud Storage c Java: изображения и другие файлы в облаках
2016-01-19 в 13:38, admin, рубрики: google app engine, Google Cloud Endpoints, google cloud storage, java, javascript, JSP, Веб-разработка, обработка изображенийВ продолжение серии статей о веб-разработке на Java на платформе Google App Engine / Google Cloud Endpoints рассмотрим сервис для облачного хранения файлов Google Cloud Storage.
В целом схема выглядит следующим образом: сервер на бэкэнде генерирует временную ссылку (адрес) для передачи файла в определенный контейнер (bucket) нашего хранилища, которая на фронтэнде вставляется в форму для передачи файла. Пользователь на указанный адрес посылает POST HTTP-request с одним или несколькими файлами в теле запроса, файлы принимаются и размещаются в хранилище, и HTTP-request вместе с данными о размещенных файлах принимается сервлетом, который обработав информацию о размещенных файлах, возвращает пользователю HTTP response: JSON или text/html, или в общем что пожелаем.
Файлы сохраняются в хранилище, у сервлета есть в распоряжении ключ который дает возможность доступа к файлу, в частности можно выдать файл пользователю с помощью другого сервлета либо создать «статичную» ссылку (https://).
Доступ к хранилищу также доступен через веб-интерфейс, и из командной строки с помощью утилиты gsutil.
Читать полностью »
Hibernate envers. Подмена ID пользователя совершившего изменение
2016-01-18 в 13:59, admin, рубрики: hibernate, java, java ee, jpa
Добрый день уважаемыее. Это моя первая статья, пожалуйста, сильно не ругайтесь.
Об аудировании в Hibernate написано уже немало. Я хочу рассказать о решении не совсем стандартной задачи — записи в таблицу ревизий ID любого пользователя, назначаемого непосредственно перед операцией записи сущности в базу данных. Стандартное решение, предложенное в официальной документации — использование ID пользователя, сохраненного в сессионном компоненте. Но возможна ситуация, когда ID пользователя необходимо подменить. Пример: пользователь совершает операции через взаимодействие с сервером телефонии посредством DTMF сигналов. В данном случае сессию создавать вообще не нужно. Я долго искал решение в интернете, но так ничего и не нашёл, поэтому предлагаю вашему вниманию свою версию. Возможно кому-то из новичков, вроде меня, она окажется полезной.
Читать полностью »
Автоматизация Jira на Groovy
2016-01-18 в 12:33, admin, рубрики: atlassian, groovy, java, jira, quick start guide, scriptrunner, автоматизация, Блог компании Петер-Сервис, Программирование, разработкаВ крупных организациях часто возникает необходимость прикрутить к JIRA какой-либо дополнительный функционал, которого нет в стандартной поставке: автоматизацию, интеграцию с другими системами и прочие кастомизации. Зачастую это решается сторонними плагинами, в Atlassian Market их огромное количество. Но что делать, если подходящего плагина нет? Или он стоит 3000$, а вам нужна всего одна функция в нем? Очевидно, написать свой. Ещё один вариант для расширения — плагины, добавляющие возможность использовать свои скрипты в JIRA: ScriptRunner (Groovy), Jira Scripting Suite (SIL), JJupin (Jython).
В этой статье я расскажу о самом популярном и функциональном из них — ScriptRunner от Adaptavist. Читать полностью »
Пишем свой spring-boot-starter
2016-01-18 в 8:09, admin, рубрики: java, Вконтакте, метки: spring-bootБольшинство java-разработчиков уже познакомились с проектом Spring Boot, позволяющим быстро написать приложение, использующее различные компоненты Spring Framework (Spring MVC, Spring Data и многие другие).
Всё удобство Spring Boot основано на использовании так называемых Starter, которые позволяют получить набор сконфигурированных бинов, готовых к использованию и доступных для конфигурации через properties-файлы. Но что делать, если для нужной технологии еще не написано стартера?
Читать полностью »