Вопрос или проблема
Я пытаюсь установить hbase на автономный узел, но у меня есть проблемы с запуском файловой системы Hadoop с помощью start-dfs.sh
:
mike@mike-thinks:/usr/local/hadoop/sbin$ ./start-dfs.sh
Неправильная конфигурация: адрес namenode dfs.namenode.servicerpc-address или dfs.namenode.rpc-address не настроен.
Запуск namenode на []
./start-dfs.sh: строка 61: /usr/local/hadoop/sbin/hadoop-daemons.sh: Отказано в разрешении
./start-dfs.sh: строка 74: /usr/local/hadoop/sbin/hadoop-daemons.sh: Отказано в разрешении
Запуск вторичных namenode [0.0.0.0]
./start-dfs.sh: строка 87: /usr/local/hadoop/sbin/hadoop-daemons.sh: Отказано в разрешении
И с sudo:
mike@mike-thinks:/usr/local/hadoop/sbin$ sudo ./start-dfs.sh
[sudo] пароль для mike:
Неправильная конфигурация: адрес namenode dfs.namenode.servicerpc-address или dfs.namenode.rpc-address не настроен.
Запуск namenode на []
./start-dfs.sh: строка 61: /usr/local/hadoop/sbin/hadoop-daemons.sh: Отказано в разрешении
./start-dfs.sh: строка 74: /usr/local/hadoop/sbin/hadoop-daemons.sh: Отказано в разрешении
Запуск вторичных namenode [0.0.0.0]
./start-dfs.sh: строка 87: /usr/local/hadoop/sbin/hadoop-daemons.sh: Отказано в разрешении
Я выполнил sudo chmod +x /usr/local/hadoop/sbin/
mike@mike-thinks:/usr/local/hadoop/sbin$ sudo chmod +x /usr/local/hadoop/sbin/
[sudo] пароль для mike:
mike@mike-thinks:/usr/local/hadoop/sbin$ ./start-dfs.sh
Неправильная конфигурация: адрес namenode dfs.namenode.servicerpc-address или dfs.namenode.rpc-address не настроен.
Запуск namenode на []
./start-dfs.sh: строка 61: /usr/local/hadoop/sbin/hadoop-daemons.sh: Отказано в разрешении
./start-dfs.sh: строка 74: /usr/local/hadoop/sbin/hadoop-daemons.sh: Отказано в разрешении
Запуск вторичных namenode [0.0.0.0]
./start-dfs.sh: строка 87: /usr/local/hadoop/sbin/hadoop-daemons.sh: Отказано в разрешении
Я пока не пробовал перейти в sshd_config, изменить PermitRootLogin без-пароля -> PermitRootLogin yes и перезапустить ssh, как предлагает gsamaras в связанном вопросе, но это кажется маловероятным, что связано.
Я выполнил chmod +x *.sh
и это решило проблему. Теперь у меня ошибка Неправильная конфигурация
:
mike@mike-thinks:/usr/local/hadoop/sbin$ ./start-dfs.sh
Неправильная конфигурация: адрес namenode dfs.namenode.servicerpc-address или dfs.namenode.rpc-address не настроен.
Запуск namenode на []
localhost: mkdir: не удалось создать каталог ‘/usr/local/hadoop/logs’: Отказано в разрешении
localhost: chown: не удалось получить доступ к '/usr/local/hadoop/logs': Нет такого файла или каталога
localhost: запуск namenode, ведение журнала в /usr/local/hadoop/logs/hadoop-mike-namenode-mike-thinks.out
localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: строка 159: /usr/local/hadoop/logs/hadoop-mike-namenode-mike-thinks.out: Нет такого файла или каталога
localhost: head: не удается открыть '/usr/local/hadoop/logs/hadoop-mike-namenode-mike-thinks.out' для чтения: Нет такого файла или каталога
localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: строка 177: /usr/local/hadoop/logs/hadoop-mike-namenode-mike-thinks.out: Нет такого файла или каталога
localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: строка 178: /usr/local/hadoop/logs/hadoop-mike-namenode-mike-thinks.out: Нет такого файла или каталога
localhost: mkdir: не удалось создать каталог ‘/usr/local/hadoop/logs’: Отказано в разрешении
localhost: chown: не удалось получить доступ к '/usr/local/hadoop/logs': Нет такого файла или каталога
localhost: запуск datanode, ведение журнала в /usr/local/hadoop/logs/hadoop-mike-datanode-mike-thinks.out
localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: строка 159: /usr/local/hadoop/logs/hadoop-mike-datanode-mike-thinks.out: Нет такого файла или каталога
localhost: head: не удается открыть '/usr/local/hadoop/logs/hadoop-mike-datanode-mike-thinks.out' для чтения: Нет такого файла или каталога
localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: строка 177: /usr/local/hadoop/logs/hadoop-mike-datanode-mike-thinks.out: Нет такого файла или каталога
localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: строка 178: /usr/local/hadoop/logs/hadoop-mike-datanode-mike-thinks.out: Нет такого файла или каталога
Запуск вторичных namenode [0.0.0.0]
Подлинность хоста '0.0.0.0 (0.0.0.0)' не может быть установлена.
ЭЦП ключа ECDSA: SHA256:/s7X8QMliB6FVx5bde5AaCycprQ/B+NtcTXrInrXxJM.
Вы уверены, что хотите продолжить подключение (да/нет)? нет
0.0.0.0: Проверка ключа хоста не удалась.
# Создайте каталог .ssh:
$ mkdir ~/.ssh
# Установите правильные разрешения:
$ chmod 700 ~/.ssh
# Создайте файл authorized_keys:
$ touch ~/.ssh/authorized_keys
# Установите правильные разрешения:
$ chmod 600 ~/.ssh/authorized_keys
Разрешения важны! Без правильных разрешений это не сработает!
Теперь вы можете добавить открытый ключ в файл authorized_keys
:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
И, наконец, вы можете выполнить:
$ ./start-dfs.sh
Ответ или решение
Решение проблемы с запуском Hadoop File System с помощью start-dfs.sh
При установке HBase на однопроцессорной узловой системе вы столкнулись с ошибкой при запуске Hadoop File System с использованием команды start-dfs.sh
. Давайте подробно рассмотрим возникшие у вас проблемы и дадим пошаговые рекомендации по их устранению.
1. Ошибка "Permission denied"
При попытке запуска start-dfs.sh
вы получили сообщения о том, что скрипты hadoop-daemons.sh
не имеют разрешений на выполнение:
./start-dfs.sh: line 61: /usr/local/hadoop/sbin/hadoop-daemons.sh: Permission denied
Причина
Это связано с тем, что скрипты Hadoop не имеют правильных разрешений на выполнение.
Решение
Вы уже пробовали выполнять следующие команды:
sudo chmod +x /usr/local/hadoop/sbin/
chmod +x *.sh
Однако, для решения данной проблемы необходимо убедиться, что вы также изменили разрешения для всех скриптов в подкаталоге /usr/local/hadoop/sbin/
.
Рекомендуется использовать команду:
sudo chmod +x /usr/local/hadoop/sbin/*
2. Некорректная конфигурация
После исправления проблемы с правами доступа вы столкнулись с другой ошибкой:
Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namenode.rpc-address is not configured.
Причина
Эта ошибка указывает на то, что у вас не настроены параметры конфигурации для NameNode. Вам нужно добавить адреса dfs.namenode.servicerpc-address
и dfs.namenode.rpc-address
в файл конфигурации Hadoop core-site.xml
или hdfs-site.xml
.
Решение
Откройте файл hdfs-site.xml
, который обычно размещен в директории etc/hadoop/
, и добавьте следующие параметры:
<configuration>
<property>
<name>dfs.namenode.rpc-address</name>
<value>localhost:9000</value>
</property>
<property>
<name>dfs.namenode.servicerpc-address</name>
<value>localhost:9001</value>
</property>
</configuration>
3. Ошибка создания директорий
Следующая ошибка, с которой вы столкнулись:
localhost: mkdir: cannot create directory ‘/usr/local/hadoop/logs’: Permission denied
Причина
Эта ошибка возникает из-за отсутствия необходимых прав доступа к директории /usr/local/hadoop/logs
, где Hadoop пытается записывать свои лог-файлы.
Решение
Используйте следующую команду для создания директории и установки нужных разрешений:
sudo mkdir /usr/local/hadoop/logs
sudo chown -R $(whoami) /usr/local/hadoop/logs
4. Проблемы с SSH
В одной из ваших ошибок упоминается, что аутентификация SSH не может быть выполнена:
The authenticity of host '0.0.0.0 (0.0.0.0)' can't be established.
Причина
Это связано с тем, что Hadoop использует SSH для подключения к другим узлам, и для этого необходимо правильно настроить аутентификацию.
Решение
Создайте директорию SSH и установите для нее правильные права:
mkdir ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
После этого добавьте ваш публичный ключ (обычно находится в ~/.ssh/id_rsa.pub
) в файл authorized_keys
:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
После выполнения указанных шагов попробуйте снова запустить start-dfs.sh
:
./start-dfs.sh
Заключение
После выполнения всех вышеперечисленных шагов вы должны устранить основные проблемы, с которыми столкнулись при запуске Hadoop. Обратите внимание на правильность конфигурации и права доступа для успешного развертывания и работы Hadoop и HBase. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.