Отправка большого файла размером 10 ТБ с hdfs на S3 с помощью Kafka - PullRequest
0 голосов
/ 04 августа 2020

У меня есть плоский файл размером 10 ТБ в HDFS. Мне нужно записать данные в Kafka, а затем сохранить в Amazon S3. Ищу разные подходы к этой задаче. Основываясь на заданных ранее вопросах, я понял, что это можно сделать с помощью Nifi или Spark. Однако я не понимаю, как это можно реализовать.

1 Ответ

2 голосов
/ 07 августа 2020

@ icyanide Это очень простой c вариант использования Nifi, который вы описываете. Он должен отлично работать. Вы также можете сделать это с помощью Spark, но лично я бы предпочел NIFI, потому что его легко программировать без написания кода.

Flow 1: List / FetchHDFS -> PublishKafka

Flow 2: ConsumeKafka - > putS3

Поток 3: List / FetchHDFS -> PublishKafka -> PutS3

Flow 4: List / FetchHDFS -> PutS3 -> PublishKafka -> еще больше нисходящей обработки содержимого, et c ..

Одно предупреждение, большой файл размером 10 ТБ будет рабочей нагрузкой обработки, чтобы получить его, скопировать в s3 и / или что-то сделать с содержимым. Сделайте свои узлы nifi большими spe c и сгруппируйте более одного узла, если можете, и вы ожидаете, что несколько файлов размером 10 ТБ будут обрабатываться параллельно. Если вам нужны данные в Kafka для отдельных последующих событий, таких как, например, метаданные с URL-адресом s3, я бы go HDFS -> S3 напрямую -> PublishKafka (# 4).

...