Подтвердить что ты не робот

Ставить удаленный файл в хаоп, не копируя его на локальный диск

Я пишу оболочку script, чтобы поместить данные в hadoop, как только они сгенерированы. Я могу ssh к моему мастеру node, скопировать файлы в папку и затем поместить их в hadoop. Я ищу команду оболочки, чтобы избавиться от копирования файла на локальный диск на master node. чтобы лучше объяснить, что мне нужно, ниже вы можете найти то, что у меня есть до сих пор:

1) скопируйте файл на главный node локальный диск:

scp test.txt [email protected]:/folderName/

Я уже установил соединение SSH с помощью ключей. Поэтому для этого не требуется пароль.

2) Я могу использовать ssh для удаленного выполнения команды putoop put:

ssh [email protected] "hadoop dfs -put /folderName/test.txt hadoopFolderName/"

то, что я ищу, - это объединить эти два шага в один и пропустить локальную копию файла на локальном диске masterNode.

спасибо

Другими словами, я хочу передать несколько команд таким образом, чтобы я мог

4b9b3361

Ответ 1

Попробуйте этот (непроверенный):

cat test.txt | ssh [email protected] "hadoop dfs -put - hadoopFoldername/"

Я использовал подобные трюки для копирования каталогов:

tar cf - . | ssh remote "(cd /destination && tar xvf -)"

Отправляет вывод local- tar на вход remote- tar.

Ответ 2

node, где вы создали данные, способна достигать каждого из узлов вашего кластера (имя node и все datanodes).

Если у вас есть подключение к данным, вы можете просто выполнить команду hadoop fs -put с компьютера, на котором генерируются данные (при условии, что у вас есть бинарные файлы hadoop, установленные там тоже):

#> hadoop fs -fs masternode:8020 -put test.bin hadoopFolderName/

Ответ 3

Hadoop предоставляет пару интерфейсов REST. Проверьте Hoop и WebHDFS. Вы должны иметь возможность скопировать файл без копирования файла на главный, используя их в средах, отличных от Hadoop.

Ответ 4

(непроверенные)

Так как node, где вы создаете свои данные, есть доступ к Интернету, возможно, вы можете установить программное обеспечение hadoop client node, а затем добавить его в кластер - после нормального hasoop fs -put, а затем отключить и удалить временные node - система hadoop должна автоматически выполнять репликацию блоков ваших файлов внутри вашего кластера hadoop