Ошибка в пути 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/