Ошибка в пути hadoop при использовании pig

У меня были свинья и хадоп, работающие. Но по неизвестным причинам он перестал работать для следующего файла. После всех переустановок hadoop и форматирования я столкнулся с новой проблемой. Я не могу скопировать мой входной файл в hadoop:

hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal /home/hduser/pig/tutorial/pigtmp/bigdata.txt /user/hduser
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -ls /user/hduser
Found 1 items
-rw-r--r--   1 hduser supergroup   10485760 2013-06-28 20:48 /user/hduser
hduser@ubuntu:/usr/local/hadoop$ 

Кто-нибудь может подсказать, пожалуйста, что мне делать? Я не очень хорошо знаю хэдуп или свинью. Благодарю.

1 ответ

Решение

Ваш файл был скопирован в HDFS, в файл, который вы назвали: /home/hduser, ls вывод, который вы видите, показывает, что размер файла составляет около 10 МБ.

Теперь я предполагаю, что вы искали, чтобы файл существовал в папке /home/hduser, Я также предполагаю, что эта папка не существовала до того, как вы запустили -copyFromLocal команда - в этом случае hadoop скопирует в указанный файл. Если указанный файл был каталогом, то hadoop скопирует в файл внутри этого каталога (имя файла будет таким же, как у локальной копии).

Таким образом, чтобы исправить это, вы должны убедиться, что папка существует, прежде чем делать -copyFromLocal команда fs:

# Delete the current file you have:
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -rmr /user/hduser

# create the hdusers home directory
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -mkdir /user/hduser

# Copy the txt file from local to the hduser folder in hdfs
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal /home/hduser/pig/tutorial/pigtmp/bigdata.txt /user/hduser/

# Now the ls should show the file
hduser@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -ls /user/hduser/
Другие вопросы по тегам