repl
, устарел * STORM-330: реализовать стратегию экспоненциального повторного подключения для клиента Netty и Curatorexit-process!
не всегда завершает процесс, а выбрасывает исключениеregisterMetrics
для того чтобы timeBucketSizeInSeconds
≥ 1storm.cmd
не правильно обрабатывает несколько -c
аргументовpom.xml
в storm-dist
storm-core.jar
storm.cmd
http-client
до версии 4.3.3curator
до последней версииcurator
-c
в командной строке, как числа*.worker.childopts
, обработка пробеловpom.xml
storm-kafka
как внешний модульstorm-core
* STORM-12: Уменьшите использование потоков в транспорте Netty.unzip
.dependency-reduced-pom.xml
должен быть в .gitignore
.* STORM-13: Изменение лицензии в README.mdstorm jar
не работает в Windows## 0.9.0.1storm jar
, чтобы она работала правильно, когда STORM_JAR_JVM_OPTS не указан (спасибо roadkill001)## 0.9.0-rc1zmq
для отказа от использования многобайтовых сообщений, что исправляет проблему, отмеченную некоторыми пользователями.TransactionalMap
и OpaqueMap
для корректного выполнения множественных обновлений одного и того же ключа в одной партии.supervisor
и Nimbus
, которое могло привести к ошибкам stormconf.ser
и бесконечному падению supervisor
.Trident LRUMemoryMapState
из-за проблемы синхронизации с LRUMap
(спасибо jasonjckn
).NoNodeExists
при удалении старых транзакционных состояний.Добавлен backtype.storm.scheduler.IsolationScheduler
. Это позволяет запускать топологии, полностью изолированные на уровне машин. Настройте Nimbus
для изоляции определенных топологий и количества машин, выделяемых каждой из этих топологий, с помощью конфигурации isolation.scheduler.machines
в storm.yaml
Nimbus
. Топологии, запущенные на кластере и не указанные там, будут использовать оставшиеся машины после того, как машины будут распределены между указанными топологиями.* Storm UI теперь использует nimbus.host
для поиска Nimbus вместо использования всегда localhost
(спасибо Frostman)
Добавлен report-error!
в Clojure DSL
Автоматически ограничивается количество ошибок, отправляемых в Zookeeper/Storm UI, если слишком много ошибок было отправлено за определённый интервал времени (все ошибки всё равно регистрируются). Настроен с помощью конфигураций TOPOLOGY_MAX_ERROR_REPORT_PER_INTERVAL
и TOPOLOGY_ERROR_THROTTLE_INTERVAL_SECS
Экземпляр Kryo, используемый для сериализации, теперь может контролироваться через интерфейс IKryoFactory
и конфигурацию TOPOLOGY_KRYO_FACTORY
Добавлена возможность подключения пользовательского кода в Nimbus для разрешения/запрета отправки топологий с помощью конфигурации NIMBUS_TOPOLOGY_VALIDATOR
Добавлена конфигурация TOPOLOGY_TRIDENT_BATCH_EMIT_INTERVAL_MILLIS
для контроля частоты отправки пакетов в топологии Trident. По умолчанию составляет 500 миллисекунд. Это используется для предотвращения чрезмерной нагрузки на Zookeeper при быстром обработке пакетов.
Логирование любых ошибок отправки топологии в nimbus.log
Добавлены статические помощники в Config
при использовании обычных карт
Улучшено использование памяти в Trident во время сбоев путём немедленного удаления состояния для неудачных попыток при появлении более свежих попыток
Добавлена возможность назначать части вычислений Trident и отображать эти названия в Storm UI* Отображение конфигураций Nimbus и топологий через Storm UI (спасибо rnfein)
Добавлен интерфейс ITupleCollection для TridentState и метод запроса TupleCollectionGet QueryFunction для получения полного содержимого состояния. MemoryMapState и LRUMemoryMapState реализуют этот интерфейс
Теперь можно отправлять топологию в неактивном состоянии. Storm будет ждать до тех пор, пока топология не станет активной, прежде чем вызвать open/prepare для спотов/болтов.
Теперь можно активировать, деактивировать, перебалансировать и уничтожать топологии через Storm UI (спасибо Frostman)* Теперь можно использовать опцию --config
для замены используемого YAML файла из ~/.storm
для конфигурации (спасибо tjun).
Переработаны интерфейсы плuggable распределенного распорядчика ресурсов (INimbus, ISupervisor) для более простой интеграции.
Добавлен метод prepare
в интерфейс IScheduler
.
Добавлено исключение "throws Exception"
в интерфейс TestJob
.
Добавлен метод reportError
в протокол multilang
и обновлены адаптеры Python и Ruby для его использования (спасибо Lazyshot).
Теперь отслеживаются и показываются в Storm UI кортежи чисел, выполняемые.
Добавлено исключение ReportedFailedException
, которое приводит к сбою пакета без убийства рабочего процесса и отображению ошибки в UI.
Теперь отслеживается и показывается в Storm UI задержка выполнения.
Добавлены методы testTuple
для удобного создания экземпляров Tuple
в Testing API (спасибо xumingming).
Trident теперь выбрасывает ошибку при построении топологии, если попытаться выбрать поля, которые не существуют в потоке (спасибо xumingming).
Вычисляется производительность булта на основе задержки выполнения и количества выполненных операций за последние 10 минут и отображается в UI.
Storm UI теперь отображает исключение вместо пустой страницы при возникновении ошибки при рендеринге страницы (спасибо Frostman).
Добавлен интерфейс MultiScheme
(спасибо sritchie).
Добавлен MockTridentTuple
для тестирования (спасибо emblem).* Добавлены методы whitelist к Clustere для разрешения только подмножества хостов как доступных слотов
Обновлен фильтр отладки Trident для принятия идентификатора для использования при логировании (спасибо emblem)
Теперь количество рабочих потоков DRPC сервера можно настраивать (спасибо xiaokang)
DRPC сервер теперь использует ограниченную очередь запросов для предотвращения перегрузки запросами (спасибо xiaokang)
Добавлен метод __hash__
ко всем сгенерированным объектам Python Thrift для возможности чтения статистики Nimbus, использующих Thrift объекты как ключи словаря
Исправлена ошибка, которая могла вызвать зависание топологии при блокировке ZMQ отправки на рабочий процесс, который был переустановлен
Исправлена ошибка мертвого замка, связанная с вариантом проблемы обедающих философов. Споты теперь используют буфер переполнения для предотвращения блокировки и гарантии, что они могут потреблять входящую очередь подтверждений/неудач
Исправлена ошибка гонки в supervisor, которая приводила к постоянному аварийному завершению supervisor из-за отсутствия файла stormconf.ser
для уже убитой топологии
Исправлено сообщение об ошибке в скрипте bin/storm
, которое теперь отображает полезное сообщение при указании недействительной команды
Исправлена ошибка NPE при эмиссии во время метода emit
агрегатора* Исправление ошибки: URL-ы с точками теперь правильно маршрутизируются в Storm UI*
Исправление ошибки: Устранение случайных цепных сбоев рабочих процессов, возникающих из-за неправильного удаления соединений из кэша соединений при смерти рабочего процесса
Расширены возможности юнит-тестирования Storm через класс backtype.storm.Testing
. Замечательные функции включают Testing.withLocalCluster
и Testing.completeTopology
(спасибо xumingming)
Реализована плuggable стратегия ожидания споута, которая вызывается, когда споут ничего не эмитирует из nextTuple
или когда споут достигает лимита MAX_SPOUT_PENDING
Теперь споуты имеют по умолчанию стратегию ожидания в виде паузы на 1 миллисекунду
Изменён уровень журналирования для журналирования "Неудачного сообщения" на DEBUG
Устарели LinearDRPCTopologyBuilder
, TimeCacheMap
и транзакционные топологии
Во время выполнения "storm jar" проверяется, запущено ли топология, прежде чем отправлять jar, чтобы сэкономить время (спасибо jasonjckn)
Добавлен класс BaseMultiReducer
в Trident, который предоставляет пустые реализации методов prepare
и cleanup
Добавлена встроенная операция Negate
для обратной записи Filter
Добавлена конфигурация topology.kryo.decorators
, которая позволяет подключать функции для кастомизации Kryo (спасибо jasonjckn)
Включена возможность установки таймаутов сообщений при использовании LocalCluster
* Подпроцессы multilang могут установить "need_task_ids" в значение false при эмите тюплов, чтобы сообщить Storm не отправлять обратно task ids (оптимизация производительности) (спасибо barrywhart)
Добавлен метод contains для класса Tuple (спасибо okapies)
Добавлен интерфейс ISchemableSpout
Исправление ошибки: Когда элемент потребляется из внутреннего буфера, запись на буфере устанавливается в null, чтобы позволить сборщику мусора очистить данные
Исправление ошибки: Вспомогательный класс для Trident MapStates теперь очищает кэш чтения при новом коммите, что предотвращает перенос обновлений из неудачной попытки батча на следующую попытку
Исправление ошибки: Исправлена NonTransactionalMap для принятия IBackingMap для обычных значений вместо TransactionalValue (спасибо sjoerdmulder)
Исправление ошибки: Исправлено исключение NullPointerException при отсутствии входных полей для обычного Aggregator
Исправление ошибки: Исправлены исключения IndexOutOfBoundsException при параллелизме больше 1 для болта глобального агрегирования (возможны при разделении, запросах состояния и многократном уменьшении)
Исправление ошибки: Исправлено сообщение об ошибке "размер полей", которое иногда возникало при разделении потока с несколькими each
Исправление ошибки: Исправлен баг, при котором споут коммиттер (включая прозрачные споуты) мог привести к сбою батчей Trident* Исправление ошибки: Исправлен баг, при котором несколько группировок на одном потоке приводили к дублированию кортежей для всех потребителей.
Исправление ошибки: Исправлено исключение при повторном перераспределении потока без операций между ними.
Исправление ошибки: Устранена редкая ошибка в модуле supervisor, когда он постоянно не мог очистить рабочие процессы, так как рабочий процесс уже частично был очищен.
Исправление ошибки: Устранена ошибка в методе emitDirect в storm.py.
Обновление до Clojure 1.4 (спасибо sorenmacbeth).
Раскрытие интерфейсов INimbus и ISupervisor для запуска Storm на различных ресурсных фреймворках (например, Mesos).
Возможность переопределения имени хоста, которое отчетливо предоставляют supervisors, используя конфигурацию "storm.local.hostname".
Настройка времени ожидания запроса внутри сервера DRPC через конфигурацию "drpc.request.timeout.secs".
Добавлена команда "storm list" для отображения работающих топологий в командной строке (спасибо xumingming).
Интерфейс Storm UI отображает версию выпуска (спасибо xumingming).
Добавлен метод reportError в BasicOutputCollector.
Добавлен метод reportError в BatchOutputCollector.
Добавлен метод close координатору OpaqueTransactionalSpout.
Добавлена команда "storm dev-zookeeper" для запуска локального сервера Zookeeper. Полезна для тестирования одного узла Storm-кластера локально. Путь к директории Zookeeper настроен с помощью "dev.zookeeper.path".
Использование новых стилевых классов для Python-адаптера многоконтекстного языка (спасибо hellp).
Добавлена команда "storm version".* Осуществлено значительное упрощение и переработка кода supervisor и worker.
Улучшено сообщение об ошибке при обнаружении дубликатов конфигурационных файлов в пути классов.
Отображение хоста и порта Nimbus при использовании клиентской командной строки Storm.
Включение максимального количества текущего вывода при разрыве подключения к subprocess в многоконтекстных компонентах.
Уменьшение времени ожидания запуска supervisor worker до 120 секунд.
Добавлено больше отладочного журналирования в supervisor.
"nohup" больше не используется supervisor для запуска workers (необходимость отсутствует).
Отображение полезного сообщения об ошибке при использовании StormSubmitter без использования скрипта клиента Storm.
Добавлен класс Values как по умолчанию сериализация.
Исправление ошибки: предоставление абсолютного пути piddir subprocessам (чтобы можно было использовать относительные пути для локальной директории Storm).
Исправление ошибки: исправление критической ошибки в транзакционных топологиях, где пакет считался успешным даже если он не завершился.
Исправление ошибки: исправление критической ошибки в транзакционных топологиях с прозрачностью, которая приводила к появлению дубликатов сообщений при использовании потока.
Исправление ошибки: workers теперь правильно прекращают работу, если subprocess ShellBolt умирает (спасибо tomo).* Исправление ошибки: скрытие метода BasicOutputCollector#getOutputter
, так как он не должен быть доступен публично.
Исправление ошибки: Zookeeper в локальном режиме теперь всегда получает незанятый порт. Это устранит конфликты с другими локальными процессами в режиме или другими экземплярами Zookeeper на локальной машине. (спасибо xumingming)
CoordinatedBolt
при отправке, подтверждении или завершении ошибки кортежей для идентификатора запроса, который уже истек по времени. (спасибо xumingming)emitDirect
в SpoutOutputCollector
теперь работаетTransactionalTopologyBuilder
(спасибо xumingming)bin/storm
теперь может быть символической ссылкой (спасибо gabrielgrant)
DRPCClient
теперь настраиваетсяgetThisWorkerPort()
для TopologyContext
Fields
(спасибо git2samus)Nimbus
к LocalCluster
(спасибо KasperMadsen)rebalance
, activate
, deactivate
и killTopologyWithOpts
к LocalCluster
LinearDRPC
ShellBolt
на UTF-8 (спасибо nicoo)FeederSpout
, которое могло привести к утрате сообщенийTuple$Seq
теперь возвращает правильное количество (спасибо travisfw)Улучшенная поддержка пользовательской сериализации. Теперь нет необходимости предоставлять "token" идентификаторы.
По умолчанию используется падающая обратная совместимость с Java сериализацией. Это можно отключить, установив "topology.fall.back.on.java.serialization" в значение false.
Улучшена команда "storm kill". Можно переопределить время ожидания с помощью флага "-w".
Отображение статуса топологии в интерфейсе Storm
Изменено пространство имён Thrift для избежания конфликтов
Улучшенные сообщения об ошибках по всему проекту
Порт интерфейса Storm теперь настраивается через "ui.port"
Небольшие улучшения для Clojure DSL## 0.5.3
Демоны Nimbus и supervisor теперь могут использовать общую локальную директорию.
Великолепно улучшена Clojure DSL для создания топологий.
Увеличены стандартные таймауты для запуска рабочих процессов и задач.
Добавлены команды localconfvalue
, remoteconfvalue
и repl
в скрипт Storm.
Лучшие сообщения об ошибках при неспособности storm jar
найти хост Nimbus в конфигурации.
accept
класса ISerialization для того, чтобы не аннотировать Class типом generics.Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )