Hadoop "Разрешение отклонено (публикация, пароль, клавиатура-интерактивная)" предупреждение
Я следую этому руководству, чтобы установить Hadoop на свой компьютер. После завершения установки, когда я пытаюсь запустить Hadoop с помощью этой команды ./start-dfs.sh
, он возвращает мне следующее:
U:sbin U$ ./start-dfs.sh
Starting namenodes on [localhost]
localhost: [email protected]: Permission denied (publickey,password,keyboard-interactive).
Starting datanodes
localhost: [email protected]: Permission denied (publickey,password,keyboard-interactive).
Starting secondary namenodes [U.local]
U.local: [email protected]: Permission denied (publickey,password,keyboard-interactive).
2018-02-25 14:52:15,505 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Я несколько раз пытался удалить и установить его, чтобы перепроверить, что я что-то пропустил, но все равно получаю эту ошибку в конце. Посмотрев на некоторых онлайн-форумах, я обнаружил, что последнее предупреждение: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform
, не имеет большого значения, поскольку выдает ошибку, когда мы запускаем Hadoop на 64-битной машине. Пожалуйста, дайте мне знать, что означают две другие ошибки и как их исправить? Я перепробовал много решений, размещенных в интернете.
Ответы
Ответ 1
Проблема в том, что когда вы пытаетесь передать ssh на сервер (в этом случае localhost), он пытается аутентифицировать вас, используя ваши учетные данные. И хранит эту информацию. Но здесь аутентификация без пароля не настроена, поэтому каждый раз, когда вы пытаетесь использовать ssh, он запрашивает у вас пароль, что является проблемой, если machines try to communicate with each other
с помощью ssh. Таким образом, чтобы настроить пароль ssh, нам нужно добавить открытый ключ пользовательского компьютера к файлу сервера ~/.ssh/authorized_keys
. В этом случае обе системы - это одни и те же машины.
Итак, короткая короткая команда запускает следующую команду.
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Ответ 2
Выполните следующие шаги:
-
Создайте новый кейген.
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
-
Зарегистрировать ключ gen:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Ответ 3
Тем, кто все еще борется с этой ошибкой, мой ответ может помочь им. Если вы все сделали правильно и уже добавили ключи в авторизованные ключи, все, что вам нужно сделать, это удалить ваши id_rsa и id_rsa.pub (любые имена, которые вы использовали для файла пары ключей) и очистить ваши авторизованные ключи, короче говоря, просто сделайте откат, потому что вы могли указать пароль при генерации ключа rsa.
Так что просто сделайте одну вещь, создайте снова ключ RSA:
ssh-keygen -t rsa
Укажите имя файла (при появлении запроса): <your_filename>
И затем не дайте ему парольную фразу, а просто просто нажмите Enter, то есть оставьте это поле пустым, и, таким образом, вы никогда не увидите ошибку отказа в разрешении (Это сработало в моем случае.)
Ответ 4
Я сделал следующие 3 шага, чтобы создать пароль без логина
- ssh-keygen -t rsa (нажмите ввод для каждой строки)
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- chmod og-wx ~/.ssh/authorized_keys