Нет такого файла или каталога в hadoop при выполнении программы WordCount с помощью команды jar

Я новичок в Hadoop и пытаюсь решить проблему WordCount.

То, что я сделал до сих пор -

Настройка кластера с одним узлом Hadoop по ссылке ниже. http://www.bogotobogo.com/Hadoop/BigData_hadoop_Install_online_hadoop_Install_online_hadoop_Install_online_hadoop_install_on_install_on

Напишите проблему с подсчетом слов, используя ссылку ниже https://kishorer.in/2014/10/22/running-a-wordcount-mapreduce-example-in-hadoop-2-4-1-single-node-cluster-in-ubuntu-14-04-64-bit/

Проблема в том, что я выполняю последнюю строку для запуска программы -

банка hadoop wordcount.jar / usr / local / hadoop / input / usr / local / hadoop / output

Я получаю следующее сообщение об ошибке -  введите описание изображения здесь Кажется, что каталог присутствует  введите описание изображения здесь Файл также присутствует в каталоге с содержимым < a href = "https://i.stack.imgur.com/gOHNF.png" rel = "nofollow noreferrer"> введите описание изображения здесь

Наконец, в качестве побочного примечания я также попробовал следующую структуру каталогов в команде jar. введите описание изображения здесь

Безрезультатно! : /

Я был бы очень признателен, если бы кто-нибудь мог направить меня сюда!

С уважением, Пол Алвин


person Paul Alwin    schedule 12.03.2018    source источник
comment
Вы проверили, находится ли файл jar по правильному пути? Вы не перепутали локальный путь с путем на виртуальной машине?   -  person Luk    schedule 13.03.2018
comment
@Luk - Кажется, банка находится на правильном пути, я также намеренно ошибся неправильным путем, и это дает мне еще одну ошибку, например, «банку не найдена» или что-то в этом роде. Мне интересно, если это говорит, что «Каталог файлов» не найден, должен что-то делать с файлом, который не находится на месте, или что-то в этом роде. Ах!   -  person Paul Alwin    schedule 13.03.2018
comment
@Luk - Просто проясняю мое понимание здесь - Linux-машина установлена ​​как виртуальный ящик в моих окнах - Hadoop установлен там. Баночка находится в папке, указанной на изображении выше, а входной файл должен находиться в созданной папке Hdfs. И вывод снова будет сгенерирован в папке Hdfs, как указано в команде (будет сгенерировано - не нужно создавать ранее). Это мое понимание того, как это работает, не стесняйтесь исправлять!   -  person Paul Alwin    schedule 13.03.2018


Ответы (1)


Ваш первый образ использует входные данные из локального каталога установки Hadoop, / usr

Если вы хотите использовать эти данные в вашей локальной файловой системе, вы можете указать file:///usr/...

В противном случае, если вы используете псевдораспределенный режим, HDFS настроена, и /usr не существует в HDFS, если вы явно не создали его там.

Основываясь на трассировке стека, я считаю, что ошибка возникает из-за того, что путь к промежуточному каталогу /app/hadoop/ не существует, или разрешения для него не позволяют вашему текущему пользователю запускать команды для этого пути

Предложение: Hortonworks и Cloudera предлагают готовые образы VirtualBox и множество учебных ресурсов. У большинства компаний будет Hadoop от одного из этих поставщиков, поэтому, на мой взгляд, лучше ознакомиться с ним, чем возиться с необходимостью устанавливать Hadoop самостоятельно с нуля.

person OneCricketeer    schedule 13.03.2018
comment
Спасибо за комментарии. Да, первое изображение использует ввод из локального каталога, хотя в последнем изображении я использую ввод из созданного мной каталога hdfs. Мне казалось, что это не имеет значения. Я не уверен, что такое псевдораспределенный режим, но пользователь hduser - это то, что я создал во время прохождения упомянутого мной руководства. Кроме того, да, похоже, здесь может быть какая-то проблема с разрешениями, хотя я не уверен, где, может быть, в файле в HDFS. И спасибо за ваше предложение, я бы хотел больше попытаться исправить это, иначе я бы попробовал HortonWorks :) - person Paul Alwin; 13.03.2018
comment
хотя не стесняйтесь попросить меня показать больше информации по этому поводу! - person Paul Alwin; 13.03.2018
comment
Псевдо-распределенный означает, что Hadoop настроен в кластерном режиме, но только на одном компьютере ... В файле core-site.xml вы устанавливаете fs.defaultFS, чтобы он начинался с hdfs://? В противном случае, если бы он начинался с file://, вашей ошибки, скорее всего, не произошло бы. Не могли бы вы показать вывод ls -l /app на вопрос? - person OneCricketeer; 13.03.2018
comment
Я почти уверен, что это проблема конфигурации. И трассировка стека явно говорит, что права доступа к файлам проверяются при обеих ошибках. Вам нужно будет добавить свои XML-файлы Hadoop в вопрос. - person OneCricketeer; 13.03.2018
comment
Это мой conre-site.xml ‹property› ‹name› fs.default.name ‹/name› ‹value› hdfs: // localhost: 54310 ‹/value› ‹description› Имя файловой системы по умолчанию. URI, схема и полномочия которого определяют реализацию файловой системы. Схема uri определяет свойство config (fs.SCHEME.impl), называющее класс реализации FileSystem. Права доступа uri используются для определения хоста, порта и т. Д. Для файловой системы. ‹/Description› ‹/property› Кажется, начинается с hdfs! Это проблема, мне нужно перейти на file: //? - person Paul Alwin; 13.03.2018
comment
Вы можете, но тогда вы просто запускаете один процесс Java mapreduce локально и даже не используете Hadoop для того, для чего он предназначен. - person OneCricketeer; 13.03.2018
comment
ОК, также следует вывод /usr/local/hadoop/hadoop-2.9.0/bin$ ls -l / app total 0 total 0 - это вывод - person Paul Alwin; 13.03.2018
comment
Позвольте нам продолжить это обсуждение в чате. - person Paul Alwin; 13.03.2018
comment
Там должна быть папка. Еще раз перейдите по первой опубликованной вами ссылке и убедитесь, что вы прошли sudo mkdir -p /app/hadoop/tmp. - person OneCricketeer; 13.03.2018