Как запустить apache -пучок в пакетном режиме на ограниченных данных? - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь понять, как работает apache луч, и я не совсем уверен, если я делаю. Итак, я хочу, чтобы кто-нибудь сказал мне, правильно ли я понимаю:

  1. Beam - это слой абстракции над средами больших данных, такими как spark, имеет oop, поток данных Google и c. Теперь практически все функции, но почти в этом случае
  2. Beam обрабатывает данные в двух формах, ограниченных и неограниченных. Ограниченный как .csv и неограниченный как подписка kafka. Для каждого есть разные методы чтения ввода / вывода. Для неограниченных данных нам нужно реализовать управление окнами (прикрепление метки времени к каждой точке данных) и триггер (метка времени). Пакет здесь будет все точки данных в окне, пока не нажмет триггер. Однако для ограниченных наборов данных весь набор данных загружается в ОЗУ (? I f да, как мне заставить луч работать на пакетах? ). Выходные данные метода ввода / вывода - это pCollection
  3. . Существуют pTransformations (это операции, которые я хочу выполнить с данными), которые применяются к каждому элементу pCollection. Я могу заставить эти pTransformations применить к кластеру искры или кремня (этот выбор идет в начальных опциях, установленных для конвейера). каждая pTransformation испускает pCollection, и таким образом мы объединяем различные pTransformation вместе. End - это pCollection, которую можно сохранить на диск
  4. Конец конвейера может быть сохранением в некоторой файловой системе ( Как это происходит, когда я читаю .csv в пакетном режиме? )

Пожалуйста, укажите мне какие-либо ошибки в моем понимании

1 Ответ

0 голосов
/ 14 апреля 2020
  1. Beam не похож на облачный поток данных Google, Cloud Dataflow занимает второе место на вершине Apache Beam. Выполняет Apache Лучевые конвейеры. Но вы можете запустить работу Apache Beam с локальным бегуном, а не в облаке. Существует множество различных бегунов, которые вы можете найти в документации: https://beam.apache.org/documentation/#available -runners
  2. Один специфический c аспект Beam заключается в том, что это один и тот же конвейер для Batch и Stream и это цель. Вы можете указать --streaming в качестве аргумента для выполнения вашего конвейера, при этом он должен выполнять его в пакетном режиме. Но это в основном зависит от ваших входных данных, данные будут просто поступать в конвейер. И это один важный момент: PCollections не содержит постоянных данных, как RDD для Spark RDD.
  3. Вы можете применить PTransform к части ваших данных, это не обязательно для всех данных. Все PTranforms вместе образуют конвейер.
  4. Это действительно зависит от того, где и какой формат вы хотите для вывода ...
...