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

Команда hadoop fs -put

Я построил единую среду 6 > Hadoop на CentOS, используя репозиторий Cloudera CDH. Когда я хочу скопировать локальный файл в HDFS, я использовал команду:

sudo -u hdfs hadoop fs -put /root/MyHadoop/file1.txt /

Но результат меня подавил:

put: '/root/MyHadoop/file1.txt': No such file or directory

Я уверен, что этот файл существует.

Пожалуйста, помогите мне, спасибо!

4b9b3361

Ответ 1

Как пользователь hdfs, у вас есть права доступа к /root/ (на вашем локальном hdd)?. Обычно вы этого не делаете. Вы должны скопировать file1.txt в место, где пользователь hdfs имеет права на чтение.

Try:

cp /root/MyHadoop/file1.txt /tmp
chown hdfs:hdfs /tmp/file1.txt
sudo -u hdfs hadoop fs -put /tmp/file1.txt /

--- изменить:

Взгляните на более чистый roman-nikitchenko, ответьте ниже.

Ответ 2

У меня была такая же ситуация, и вот мое решение:

 HADOOP_USER_NAME=hdfs hdfs fs -put /root/MyHadoop/file1.txt /

Преимущества:

  • Вам не нужно sudo.
  • Вам вообще не нужны собственно hdf файлы локального пользователя.
  • Вам не нужно ничего копировать или изменять разрешения из-за предыдущих пунктов.

Ответ 3

попробуйте создать каталог в HDFS с помощью команды usig: $ hadoop fs -mkdir your_dir и затем поместите его в него $ hadoop fs -put/root/MyHadoop/file1.txt your_dir