全文在用户账号(ubuntu)下操作,有些命令行需要加 sudo,如果是在 root 身份下运行,忽略 sudo
环境准备
一共有三台Linux服务器,将搭建1个master,2个slave的集群。
配置hosts
在每一台主机的hosts中添加内网地址和命名
使用ifconfig查看内网地址(slave1为例)
sudo vi /etc/hosts
# 添加
10.8.4.7 master
10.8.4.48 slave1
10.8.4.3 slave2
注释掉
#127.0.0.1 localhost.localdomain VM-4-7-ubuntu
#127.0.0.1 localhost
配置之后ping一下用户名看是否生效
ping master
ping slave1
ping slave2
同时将各服务器的hostname也修改成对应的用户名
sudo vi /etc/hostname
#修改成
master
SSH免密登陆
使三台机器之间相互访问的时候可以免密
安装Openssh server
sudo apt-get install openssh-server
在所有机器上都生成私钥和公钥
ssh-keygen -t rsa #一路回车
每个机子上的id_rsa.pub(公钥)发给master节点,用scp来传输公钥。
# 在slave1上
scp ~/.ssh/id_rsa.pub spark@master:~/.ssh/id_rsa.pub.slave1
# 在slave2上
scp ~/.ssh/id_rsa.pub ubuntu@master:~/.ssh/id_rsa.pub.slave2
如果出现如下错误:Permission denied, please try again
sudo vi /etc/ssh/sshd_config
# 是否包含类似如下配置:
PermitRootLogin no
# 或者
PermitRootLogin prohibit-password
# 修改为
PermitRootLogin yes
重启sshd服务
service sshd restart
或者是因为权限的原因,可以修改权限或者传到别的文件中
# 修改权限
chmod 777 ~/.ssh/id_rsa.pub
或者新建temp 文件夹
mkdir ~/temp
这样就把id_rsa.pub文件传到temp中再复制到.ssh中
scp ~/.ssh/id_rsa.pub ubuntu@master:~/temp/id_rsa.pub.slave1
cp ~/temp/id_rsa.pub.slave1 ~/.ssh/
在master上,将所有公钥加到auth