Отправить данные из hdfs на конкретные машины - PullRequest
0 голосов
/ 02 июля 2018

У меня есть большой файл, хранящийся в HDFS, где в последнем столбце у меня есть машинный адрес, я хочу отправить каждую строку по адресу ap и сохранить ее в текстовом файле (в локальной файловой системе, а не в HDFS). Как это сделать? Я делаю это? Я не могу найти способ сделать это в искре или hadoop.

пример входного файла:

attr1  attr2 ..attrN  192.168.40.5
attr1  attr2 ..attrN  192.168.40.19

1 Ответ

0 голосов
/ 05 июля 2018

Я не нашел способа сделать это, используя hadoop или spark, так как вы не можете указать этим платформам, куда отправлять данные, но я нашел способ получить желаемый результат, и шаги выглядят так :

  1. Преобразовать строку RDD в ключ / val RDD, где ключом является ip, а затем сгруппировать его по ключу.
  2. Сохранение каждого элемента в отдельном файле в HDFS (эта ссылка поможет)
  3. Создание сценария Python, который использует параллельный ssh ​​ для выполнения hadoop fs -copyToLocal с соответствующим параметром для каждой машины
...