Как сегменты отправляются на офлайн-серверы в Apache Пино? - PullRequest
0 голосов
/ 06 мая 2020

Мы можем создавать сегменты вне кластера Apache Пино. Это хорошо. Но я не понимаю, как он загружает сегменты на офлайн-сервер из глубокого хранилища. Например,

Я записываю сегмент в Hdf. Затем я вызываю сегмент tar pu sh job. Если я не понял неправильно, segmenttarpushjob загружает созданный сегмент из глубокого хранилища (s3), затем загружает сегменты в контроллер через rest api, а контроллер отправляет сегменты на автономные серверы.

Не создаст ли этот процесс узкое место при отправке сегментов контроллеру? Что произойдет, если офлайновые серверы загрузят сегменты из глубокого хранилища напрямую?

1 Ответ

0 голосов
/ 22 мая 2020

Существует два способа передачи данных sh в контроллер Pinot

  1. на основе URI: в этом режиме вызывающий абонент предоставляет только URI сегмента и метаданные сегмента. Если метаданные сегмента не предоставлены, контроллер извлечет сегмент и извлечет метаданные. Контроллеру нужны метаданные для целей проверки. В этом режиме серверы будут извлекать сегменты непосредственно из глубокого хранилища

  2. На основе полезной нагрузки: в этом режиме вызывающий отправляет архив сегментов в качестве полезной нагрузки, а контроллер сохраняет этот архив сегментов в его dataDir (это снова может быть NFS или глубокое хранилище). Контроллер обновляет метаданные сегмента в zookeeper, чтобы указать местоположение сегмента. Серверы используют местоположение в метаданных для получения сегментов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...