linux集群
一.先完成虚拟机网络配置(详情看虚拟机配置篇)
二.关闭虚拟机的防火墙
- systemctl stop firewalld.service #停止firewall
- systemctl disable firewalld.service #禁止firewall开机启动
- systemctl status firewalld.service #关闭之后查看防火墙状态
三.关闭虚拟机的Selinux
-
什么是SELinux ?
SELinux是Linux的一种安全子系统,Linux中的权限管理是针对于文件的, 而不是针对进程的, 也就是说, 如果root启动了某个进程, 则这个进程可以操作任何一个文件。SELinux在Linux的文件权限之外, 增加了对进程的限制, 进程只能在进程允许的范围内操作资源 -
为什么要关闭SELinux
如果开启了SELinux, 需要做非常复杂的配置, 才能正常使用系统, 在学习阶段, 在非生产环境, 一般不使用SELinux -
SELinux的工作模式:
- enforcing 强制模式
- permissive 宽容模式
- disabled 关闭
-
编辑虚拟机selinux配置
vim /etc/selinux/configreboot 重启虚拟机完成
安装好JDK和sql
三台虚拟机创建
-
克隆虚拟机
指定虚拟机名字和存放位置,三台虚拟机的存放路径尽量在一起,不在一起也没关系
克隆第三台虚拟机,通过node1虚拟机克隆,克隆方式是一样的,注意修改虚拟机的名称和存放位置(注意一定要选择创建完整克隆)
-
设置三台虚拟机内存
三台虚拟机再加上windows本身, 需要同时运行4台机器, 所以在分配的时候,, 每台虚拟机的内存为: 总内存 ÷ 4,比如电脑总内存为16G,则每台虚拟机内存为4G。
8G 每台1G
12G 每台2G
16以上 每台4G
下面是以node1为例对内存进行配置: -
配置MAC地址
node2和node3都是从node1克隆过来的,他们的MAC地址都一样,所以需要让node2和node3重新生成MAC地址,生成方式如下:
配置node2的MAC地址: -
配置IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33 -
重启网络服务后查看IP地址并测试连接
systemctl restart network # 重启网络服务 -
设置主机名
分别编辑每台虚拟机的hostname文件,直接填写主机名,保存退出即可
vim /etc/hostname -
配置每台虚拟机域名映射
(配置完域名映射和主机名后需要reboot重启才能生效,否则在一台机器登录另一台机器还是node1的主机名)
vim /etc/hosts -
三台机器机器免密码登录
Hadoop 节点众多, 所以一般在主节点启动从节点, 这个时候就需要程序自动在主节点登录到从节点中, 如果不能免密就每次都要输入密码, 非常麻烦- 第一步:三台机器生成公钥与私钥
ssh-keygen -t rsa
执行该命令之后,按下三个回车即可,然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥),默认保存在/root/.ssh目录 - 第二步:拷贝公钥到同一台机器
ssh-copy-id node1
在执行该命令之后,需要输入yes和node1的密码 - 第三步: 复制第一台机器的认证到其他机器
将第一台机器的公钥拷贝到其他机器上,在第一台机器上指行以下命令
scp /root/.ssh/authorized_keys node2:/root/.ssh
scp /root/.ssh/authorized_keys node3:/root/.ssh
执行命令时,需要输入yes和对方的密码 - 第四步: 测试SSH免密登录
可以在任何一台主机上通过ssh 主机名命令去远程登录到该主机,输入exit退出登录
例如:在node2机器上,免密登录到node3机器上
- 第一步:三台机器生成公钥与私钥
-
三台机器时钟同步
很多分布式系统是有状态的, 比如说存储一个数据, A节点 记录的时间是1, B节点 记录的时间是2, 就会出问题- 启动定时任务
crontab -e
随后在输入界面键入以下内容,每隔一分钟就去连接阿里云时间同步服务器,进行时钟同步
*/1 * * * * /usr/sbin/ntpdate -u ntp4.aliyun.com;
- 启动定时任务
-
最后记得给三台虚拟机拍快照!