linux集群

一.先完成虚拟机网络配置(详情看虚拟机配置篇)

二.关闭虚拟机的防火墙

  • systemctl stop firewalld.service #停止firewall
  • systemctl disable firewalld.service #禁止firewall开机启动
  • systemctl status firewalld.service #关闭之后查看防火墙状态
    linux_集群配置_vim

三.关闭虚拟机的Selinux

  • 什么是SELinux ?
    SELinux是Linux的一种安全子系统,Linux中的权限管理是针对于文件的, 而不是针对进程的, 也就是说, 如果root启动了某个进程, 则这个进程可以操作任何一个文件。SELinux在Linux的文件权限之外, 增加了对进程的限制, 进程只能在进程允许的范围内操作资源

  • 为什么要关闭SELinux
    如果开启了SELinux, 需要做非常复杂的配置, 才能正常使用系统, 在学习阶段, 在非生产环境, 一般不使用SELinux

  • SELinux的工作模式:

    • enforcing 强制模式
    • permissive 宽容模式
    • disabled 关闭
  • 编辑虚拟机selinux配置
    vim /etc/selinux/config
    linux_集群配置_重启_02

    reboot 重启虚拟机完成

安装好JDK和sql

三台虚拟机创建

  • 克隆虚拟机
    linux_集群配置_linux_03
    linux_集群配置_linux_04
    linux_集群配置_linux_05

    指定虚拟机名字和存放位置,三台虚拟机的存放路径尽量在一起,不在一起也没关系

    linux_集群配置_linux_06

    克隆第三台虚拟机,通过node1虚拟机克隆,克隆方式是一样的,注意修改虚拟机的名称和存放位置(注意一定要选择创建完整克隆)

  • 设置三台虚拟机内存
    三台虚拟机再加上windows本身, 需要同时运行4台机器, 所以在分配的时候,, 每台虚拟机的内存为: 总内存 ÷ 4,比如电脑总内存为16G,则每台虚拟机内存为4G。
    8G 每台1G
    12G 每台2G
    16以上 每台4G
    下面是以node1为例对内存进行配置:
    linux_集群配置_linux_07

  • 配置MAC地址
    node2和node3都是从node1克隆过来的,他们的MAC地址都一样,所以需要让node2和node3重新生成MAC地址,生成方式如下:
    配置node2的MAC地址:
    linux_集群配置_linux_08

  • 配置IP地址
    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    linux_集群配置_mac地址_09

  • 重启网络服务后查看IP地址并测试连接
    systemctl restart network # 重启网络服务
    linux_集群配置_mac地址_10

  • 设置主机名
    分别编辑每台虚拟机的hostname文件,直接填写主机名,保存退出即可
    vim /etc/hostname
    linux_集群配置_vim_11

  • 配置每台虚拟机域名映射
    (配置完域名映射和主机名后需要reboot重启才能生效,否则在一台机器登录另一台机器还是node1的主机名)
    vim /etc/hosts
    linux_集群配置_主机名_12

  • 三台机器机器免密码登录
    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机器上
      linux_集群配置_vim_13
  • 三台机器时钟同步
    很多分布式系统是有状态的, 比如说存储一个数据, A节点 记录的时间是1, B节点 记录的时间是2, 就会出问题

    • 启动定时任务
      crontab -e
      随后在输入界面键入以下内容,每隔一分钟就去连接阿里云时间同步服务器,进行时钟同步
      */1 * * * * /usr/sbin/ntpdate -u ntp4.aliyun.com;
  • 最后记得给三台虚拟机拍快照!