集群环境准备
一、机器准备
首先需要准备3台机器或者虚拟机,安装好centos7.5版本和JDK1.8。
我们这次准备安装的是Cloudera的CDH 5.14.3 。
TIPS:快速创建机器的技巧是规范好要装的软件,迅速利用镜像功能创建好三台机器出来。
ip地址这里我们设置为192.168.168.81,192.168.168.82,192.168.168.83。
如果是本地的虚拟机,需要自己配置IP地址。
我们以192.168.168.81为例子。
进入网络配置目录
cd /etc/sysconfig/network-scripts
编辑网卡配置文件,这里的ens33根据您实际的网卡名称来。
vi ifcfg-ens33
这里注意几个参数
BOOTPROTO=static # 这里需要设置为静态的ip地址
ONBOOT=yes # 启动的时候打开网络,不然不能联网
IPADDR=192.168.168.81 # 你要设置的IP地址,这里最好不要在DHCP范围内,避免IP冲突
GATEWAY=192.168.168.2 # 网关
NETMASK=255.255.255.0 # 网络掩码
DNS1=8.8.8.8 # google的 DNS服务器
DNS2=192.168.168.2 # 网关做DNS服务器
最后重启网络服务。
service network restart
网络模型参考:
https://www.linuxidc.com/Linux/2016-09/135521.htm
二、修改hostname和hosts文件
1.查看hostname
在每台机器上我们可以通过命令
hostname
2. 修改hostname
在192.168.168.81上执行命令,修改主机名称为dev-hd001。
hostnamectl set-hostname dev-hd001
在192.168.168.82上执行命令,修改主机名称为dev-hd002。
hostnamectl set-hostname dev-hd002
在192.168.168.82上执行命令,修改主机名称为dev-hd002。
hostnamectl set-hostname dev-hd003
3.修改hosts文件
在每一台机器的hosts文件中加入如下内容。
vim /etc/hosts
192.168.168.81 dev-hd001 hd1
192.168.168.82 dev-hd002 hd2
192.168.168.83 dev-hd003 hd3
三、关闭防火墙和selinux
1.关闭防火墙
查看默认防火墙状态。
(关闭后显示notrunning,开启后显示running)
firewall-cmd --state
停止firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
如果安装了iptables, 我们还需要关闭iptables
查看iptables状态
service iptables status
停止iptables
service iptables stop
启动的时候关闭iptables
chkconfig iptables off
2.关闭selinux
永久关闭selinux,需要通过修改配置文件/etc/selinux/config。
vim /etc/selinux/config
修改SELINUX。参数可选(enforcing、permissive、disabled)
SELINUX=disabled
需要reboot重启生效。
四、安装ssh免密码登录
- 免密登录原理
现在我们有A和B两台机器。
1.我们在A上生成一对密钥。
2.将在A上生成的公钥拷贝给B机器,添加到~/.ssh/authorized_keys这个文件中。
3.A向B发送一个连接请求,信息包括用户名,IP等
4.B的到A的信息后,回到authorized_keys中查找,如果有对应的用户名和ip, B会随机生成一个字符串,比如"DMAC"。
5.B使用公钥对字符串"DMAC"进行加密,然后发送给A。
6.A得到B发来的消息后,使用私钥进行解密,然后将解密后的字符串发送给B.
7.B接收到A发过来的字符串后,会跟先前生成的字符串进行对比,如果一致,就允许免密码登录。
2.操作步骤
1.确认有没有~/.ssh目录,没有的话
mkdir ~/.ssh
2.在dev-hd001机下生成公钥和私钥对。
ssh-keygen
这里直接三次回车,会看到在~/.ssh有id_rsa文件和id_rsa.pub文件。
id_rsa.pub文件是公钥文件。
可以通过cat命令查看。
cat id_rsa.pub
3.从dev-hd001机器拷贝公钥到dev-hd002机器。
ssh-copy-id -i root@dev-hd002
ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上。
ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限。
4.在dev-hd001上登录到dev-hd002
ssh root@dev-hd002
logout 登出
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。