该部分所有的操作都要在admin用户(是普通用户,不是root用户)下,换回admin的命令是:
su - admin
输入密码。
当通过一个节点访问另外一个节点时,虽然没有了防火墙的限制,但还会有密码的限制。
hadoop集群的启动主要有两种方式:
- 一键启动
- 逐个节点进程启动
一般情况下使用一键启动,主节点启动时,带动从节点启动集群。Hadoop集群在启动时通过一个脚本在主节点运行,主节点带动从节点运行。那么就存在一个问题:主节点需要访问从节点,而从节点有密码的话并且从节点有N个,就需要输入N次密码并且有延迟的现象,造成集群启动失败。
所以一键启动配置就很有必要,并且需注意的是配置主节点到从节点的免密钥登录。当然配置从节点到主节点的免密钥登录也是可以的,但没有必要。
一、在HadoopMaster节点配置免密钥
首先在Master节点生成密钥,命令如下(一路点击回车)
注:ssh-keygen是生成命令;-t rsa是指定生成密钥的rsa算法
[admin@localhost ~]$ ssh-keygen -t rsa
输入命令后,一路回车,得到结果,密钥生成完毕
[admin@localhost ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_rsa):
Created directory '/home/admin/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/admin/.ssh/id_rsa.
Your public key has been saved in /home/admin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:8IDFX/E4w8ovBNaMQYdZJkpFGoIX7mIOIauITZ8VZTY admin@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| .o.o=B+E .. |
|...o *+% o.o |
|o.. + B.o.= . |
|.+ . B.. o |
|+.o . S |
|B+ . o . . |
|+.. o . . |
| . |
| |
+----[SHA256]-----+
密钥生成后在哪里查看?通过如下命令查看所有文件
[admin@localhost ~]$ ls -a
显示的所有的文件中,会看到.ssh文件
[admin@localhost ~]$ ls -a
_ .bash_history .bashrc .dbus .local test 模板 文档 桌面
. .bash_logout .cache .esd_auth .mozilla .viminfo 视频 下载
.. .bash_profile .config .ICEauthority .ssh 公共 图片 音乐
命令cd ~/.ssh,通过相对路径切换到ssh文件中;命令ls,查看所有文件;命令ls -l,查看文件信息。可以看到两个密钥:私钥id_rsa 和 公钥id_rsa.pub
[admin@localhost ~]$ cd ~/.ssh
[admin@localhost .ssh]$ ls
id_rsa id_rsa.pub
[admin@localhost .ssh]$ ls -l
总用量 8
-rw-------. 1 admin admin 1679 1月 27 21:58 id_rsa
-rw-r--r--. 1 admin admin 409 1月 27 21:58 id_rsa.pub
我们使用公钥id_rsa.pub作为一键启动,但需要加工下,加工为authorized_keys文件。如下命令cat ./id_rsa.pub >> ./authorized_keys(加工)复制公钥文件,然后命令ls查看所有文件会看到多了一个authorized_keys文件
[admin@localhost .ssh]$ cat ./id_rsa.pub >> ./authorized_keys
[admin@localhost .ssh]$ ls
authorized_keys id_rsa id_rsa.pub
通过命令chmod 600 ./authorized_keys修改authorized_keys的权限,并查看文件信息
[admin@localhost .ssh]$ chmod 600 ./authorized_keys
[admin@localhost .ssh]$ ls
authorized_keys id_rsa id_rsa.pub
[admin@localhost .ssh]$ ls -l
总用量 12
-rw-------. 1 admin admin 409 1月 27 23:09 authorized_keys
-rw-------. 1 admin admin 1679 1月 27 21:58 id_rsa
-rw-r--r--. 1 admin admin 409 1月 27 21:58 id_rsa.pub
然后把authorized_keys文件分别拷贝到slave、slave1节点
[admin@master .ssh]$ scp ./authorized_keys admin@slave:~/
admin@slave's password:
authorized_keys 100% 409 247.9KB/s 00:00
[admin@master .ssh]$ scp ./authorized_keys admin@slave1:~/
admin@slave1's password:
authorized_keys 100% 409 190.0KB/s 00:00
[admin@master .ssh]$
拷贝成功。接下来分别在slave节点、slave1节点配置。
一、在HadoopSlave节点配置免密钥
同样在Slave节点生成密钥,命令如下(一路点击回车)
注:ssh-keygen是生成命令;-t rsa是指定生成密钥的rsa算法
[admin@slave~]$ ssh-keygen -t rsa
输入命令后,一路回车,得到结果,密钥生成完毕
[admin@slave ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_rsa):
Created directory '/home/admin/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/admin/.ssh/id_rsa.
Your public key has been saved in /home/admin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:WD4/OWtZYTDx1mibpVfSx7VItolZ/BogAaq5K/xB9T8 admin@slave
The key's randomart image is:
+---[RSA 2048]----+
| ...o..+ .|
| . .oo*++oo|
| o . .=*+=.=|
| + .+ oo* +.|
| + ..S .+.+ |
| . . .o ..o |
|. o E=o |
| o o ++ |
| oo .. |
+----[SHA256]-----+
[admin@slave ~]$
将authrized_keys文件移动到.ssh目录中
[admin@slave ~]$ mv authorized_keys ~/.ssh
可查看到authrized_keys文件已经移动到.ssh目录中
[admin@slave ~]$ cd ~/.ssh
[admin@slave .ssh]$ ls
authorized_keys id_rsa id_rsa.pub
修改authrized_keys文件的权限
[admin@slave ~]$ cd ~/.ssh
[admin@slave .ssh]$ chmod 600 authorized_keys
一、在HadoopSlave1节点配置免密钥
同样在Slave1节点生成密钥,命令如下(一路点击回车)
注:ssh-keygen是生成命令;-t rsa是指定生成密钥的rsa算法
[admin@slave1~]$ ssh-keygen -t rsa
输入命令后,一路回车,得到结果,密钥生成完毕
[admin@slave1 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/admin/.ssh/id_rsa.
Your public key has been saved in /home/admin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Fj6VLY9kCmQRAs+EAdPbz5YxXTiDH0yQp/adGcv27QE admin@slave1
The key's randomart image is:
+---[RSA 2048]----+
|ooo+o *O.. |
| .o+ +o B .o |
| oo .=.=* . |
| . . =oo*.+ |
| + =So.=E |
| =...B . |
| . . . .. |
| . .. |
| .. |
+----[SHA256]-----+
[admin@slave1 ~]$
将authrized_keys文件移动到.ssh目录中
[admin@slave1 ~]$ mv authorized_keys ~/.ssh
可查看到authrized_keys文件已经移动到.ssh目录中
[admin@slave1 ~]$ cd ~/.ssh
[admin@slave1 .ssh]$ ls
authorized_keys id_rsa id_rsa.pub known_hosts
修改authrized_keys文件的权限
[admin@slave1 ~]$ cd ~/.ssh
[admin@slave1 .ssh]$ chmod 600 authorized_keys
免密钥配置完毕。