this チュートリアルに従って、Hadoopをコンピューターにインストールします。インストールの完了後、このコマンドを使用してHadoopを起動しようとすると./start-dfs.sh
、次の結果が返されます。
U:sbin U$ ./start-dfs.sh
Starting namenodes on [localhost]
localhost: U@localhost: Permission denied (publickey,password,keyboard-interactive).
Starting datanodes
localhost: U@localhost: 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
は、64ビットマシンでHadoopを実行するとエラーが発生するため、大した問題ではありません。他の2つのエラーの意味と修正方法を教えてください。インターネットに投稿された多くのソリューションを試しました。
問題は、サーバー(この場合はlocalhost)にsshしようとしているときに、資格情報を使用してユーザーを認証しようとすることです。そしてその情報を保存します。ただし、ここではパスワードなしの認証が設定されていないため、sshを試行するたびにパスワードの入力を求められます。これはmachines try to communicate with each other
sshを使用します。パスワードなしのsshをセットアップするには、ユーザーマシンの公開鍵をサーバーマシンに追加する必要があります~/.ssh/authorized_keys
ファイル。この場合、両方のシステムは同じマシンです。
だから長い話は次のコマンドを実行します。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
次の手順に進みます。
新しいkeygenを生成します。
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
キー生成を登録します:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
まだこのエラーに苦しんでいる人、私の答えは彼らを助けることができます。すべてを正しく実行し、authorized_keysに既にキーを追加している場合は、id_rsaおよびid_rsa.pub(キーペアファイルに使用した名前)を削除し、authorized_keysを空にするだけです。 RSAキーの生成中にパスワードを指定した可能性があるため、ロールバックを行ってください。
そのため、次の方法でRSAキーを再度作成します。
ssh-keygen -t rsa
ファイル名を指定する(プロンプトが表示されたら):<your_filename>
そしてパスフレーズを与えず、単にEnterを押してください、つまり空白のままにしておくと、許可拒否エラーは表示されません(私の場合はうまくいきました)。
パスワードなしのログインを作成するために、次の3つのステップを実行しました