Начало работы файловой системы Hadoop с start-dfs.sh отказано в доступе

Вопрос или проблема

Я пытаюсь установить 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. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.

Оцените материал
Добавить комментарий

Капча загружается...