Вопрос или проблема
Я установил единственный кластерный узел на своем личном ноутбуке. Установка прошла успешно, и jps отображает все 5 демонов, но когда я пытаюсь войти в hdfs, используя команду hadoop fs
, она показывает “команда не найдена”.
Может кто-то объяснить, в чем проблема и что нужно сделать, чтобы запустить команды hdfs?
Перейдите в директорию установки Hadoop
и введите
bin/hadoop fs -ls /
это вернет каталоги и файлы, доступные в HDFS
Я надеюсь, что в стандартном блоге, который вы следовали, Hadoop установлен здесь:
/usr/local/hadoop/bin
ls -l /usr/local/hadoop/bin
root@ashu-700-430qe:/usr/local/hadoop/bin# ls -lrt
total 440
-rwxr-xr-x 1 hduser hadoop 1776 Dec 17 18:52 rcc
-rwxr-xr-x 1 hduser hadoop 7072 Dec 17 18:52 hdfs.cmd
-rwxr-xr-x 1 hduser hadoop 11142 Dec 17 18:52 hdfs
-rwxr-xr-x 1 hduser hadoop 8298 Dec 17 18:52 hadoop.cmd
-rwxr-xr-x 1 hduser hadoop 5479 Dec 17 18:52 hadoop
-rwxr-xr-x 1 hduser hadoop 10895 Dec 17 18:52 yarn.cmd
-rwxr-xr-x 1 hduser hadoop 11380 Dec 17 18:52 yarn
-rwxr-xr-x 1 hduser hadoop 201707 Dec 17 18:52 test-container-executor
-rwxr-xr-x 1 hduser hadoop 5949 Dec 17 18:52 mapred.cmd
-rwxr-xr-x 1 hduser hadoop 5205 Dec 17 18:52 mapred
-rwxr-xr-x 1 hduser hadoop 159223 Dec 17 18:52 container-executor
Если это не так, найдите, где он установлен.
Как только вы найдете.
Затем sudo vi /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/gradle/bin:/usr/local/hadoop/bin"
JAVA_HOME=/usr/lib/jvm/java-8-oracle
export JAVA_HOME
GRADLE_HOME=/opt/gradle-2.10
export GRADLE_HOME
Затем просто добавьте папку hadoop до директории bin в этот файл.
затем source /etc/environment
echo $PATH
эта команда должна дать вам путь к директории bin Hadoop.
Теперь вы можете запускать свои обычные команды hadoop fs.
Надеюсь это поможет.
Может понадобиться следующая команда:
sudo su hduser
затем
hadoop fs -ls /
Ответ или решение
Проблема с командой hadoop fs
может быть связана с тем, что исполняемые файлы Hadoop не находятся в вашем переменной среды PATH
. Ниже приведены шаги, которые помогут вам исправить эту ситуацию.
-
Убедитесь, что Hadoop установлен правильно:
Проверьте, установлены ли все необходимые компоненты Hadoop, выполнив командуjps
. Если все демоны отображаются корректно, это первый шаг к успеху. -
Проверьте путь установки Hadoop:
Убедитесь, что вы знаете, где именно установлен Hadoop. Обычно это что-то вроде/usr/local/hadoop
. Проверьте, существует ли папка с бинарными файлами Hadoop, выполнив следующую команду:ls -l /usr/local/hadoop/bin
-
Измените переменную окружения PATH:
Чтобы команды Hadoop работали из любого места, необходимо добавить путь к папкеbin
в системную переменную окруженияPATH
. Для этого откройте файл/etc/environment
с помощью текстового редактора с правами суперпользователя:sudo vi /etc/environment
Затем добавьте следующий путь, если его там нет:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/gradle/bin:/usr/local/hadoop/bin"
-
Сохраните изменения и примените их:
После редактирования сохраните файл и выполните команду для применения изменений в текущих сессиях:source /etc/environment
-
Проверьте переменную PATH:
Убедитесь, что папка Hadoop bin теперь присутствует в переменнойPATH
, выполнив:echo $PATH
-
Запустите команды Hadoop:
Теперь вы можете попробовать снова выполнить команду:hadoop fs -ls /
-
Если команда все еще не работает:
Попробуйте запустить команду от имени пользователя Hadoop. Возможно, вам нужно выполнить:sudo su hduser
Затем выполните команду:
hadoop fs -ls /
Следуя этим шагам, вы должны устранить проблему и получить возможность использовать команду hadoop fs
. Надеюсь, это поможет вам успешно работать с HDFS.