Linux 集群搭建

1.集群(三台)

1.1 新增linux系统

在这里插入图片描述第一步: 克隆虚拟机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第二步: 更改新增系统的mac地址

  vim /etc/udev/rules.d/70-persistent-net.rules

在这里插入图片描述
在这里插入图片描述
第三步: 更改网卡信息(setup)

   vim /etc/sysconfig/network-scripts/ifcfg-eth0

在这里插入图片描述
第四步: 重启系统生效

    reboot 或 shutdown -r now

1.2 三台机器 关闭防火墙

  • 内网环境 安全性比较高, 防火墙开启会影响效率, 所以 关闭防火墙

三台机器执行以下命令(root用户来执行)

      # 查看防火墙的状态 
        service iptables status 
      
      # 启动防火墙服务 
        service iptables start 
      
      # 重启 防火墙 服务 
        service iptables restart 
      
      # 停止 防火墙 服务 
        service iptables stop 
      
      # 彻底关闭防火墙 
        chkconfig iptables off

在这里插入图片描述

1.3 三台机器关闭selinux

   vim /etc/selinux/config

在这里插入图片描述

  • 注意: 重启才会生效 ! ! !

1.4 三台机器更改主机名

    vim /etc/sysconfig/network

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 重启才会生效

1.5 三台机器 给ip地址起别名

1.5.1 给ip地址起别名

  • vim /etc/hosts

     192.168.100.201 hadoop01 
     192.168.100.202 hadoop02 
     192.168.100.203 hadoop03
    

1.5.2 测试

    ping 192.168.100.202

    ping hadoop02

在这里插入图片描述

1.6 scp 远程文件拷贝

1.6.1 scp 是什么

  • scp是 remote file copy program 的缩写, scp是远程文件拷贝命令。

1.6.2 从本地拷贝到远程机器上

在这里插入图片描述

  • 准备工作

       # 创建目录 
         mkdir -p /export/aaa/bbb/ccc 
       
       # 创建文件 
         touch /export/aaa/01.txt /export/aaa/02.txt 
       
       # 显示 
         tree /export/aaa
    

1 文件

  • 语法格式

      # 拷贝文件 
         scp local_file remote_username@remote_ip:remote_folder
    
  • 需求: 将本地 01.txt 文件 复制到 192.168.100.202 机器的 /export目录下

      scp /export/aaa/01.txt  root@192.168.100.202:/export 
      
      scp /export/aaa/02.txt  root@hadoop02:/export 
      
      scp /export/aaa/02.txt  hadoop02:/export
    

2 文件夹

  • 语法格式

      # 拷贝目录 
        scp -r local_folder remote_username@remote_ip:remote_folder
    
  • 需求: 将本地 aaa 目录 复制到 192.168.100.202 机器的 /export 目录下

       scp -r /export/aaa  root@192.168.100.202:/export
       
       scp -r /export/aaa  root@hadoop02:/export
        
       scp -r /export/aaa  hadoop02:/export
    

1.6.3 将远程机器内容复制到本地机器上

在这里插入图片描述

  • 准备工作

       # 创建目录 
          mkdir -p /export/a1/b1/c1
       
        # 创建文件 
          touch /export/a1/111.txt touch /export/a1/222.txt 
        
        # 显示内容 
          tree /export/a1
    

1 文件

  • 语法格式

       scp remote_username@remote_ip:remote_file local_folder
    
  • 练习3: 将 hadoop02的 111.txt 文件 复制到 hadoop01的 export目录下

     scp root@192.168.100.202:/export/a1/111.txt /export
     
     scp root@hadoop02:/export/a1/222.txt /export
     
     scp hadoop02:/export/a1/222.txt /export
    

2 目录

  • 语法格式

     scp -r remote_username@remote_ip:remote_folder local_folder
    
  • 练习4: 将hadoop02的 /export/a1/ 目录 复制到 hadoop01 的 export目录下

      scp -r root@192.168.100.202:/export/a1 /export
       
      scp -r hadoop02:/export/a1 /export
    

1.7 ssh远程登录

在这里插入图片描述

1.7.1 目标

  • 专门用于 远程登录

1.7.2 路径

  • 方式一: 使用 ssh 基于密码的远程登录
  • 方式二: 使用 ssh + expect 实现 免密码登录
  • 方式三: 使用 ssh 基于密匙 实现 免密码登录

1.7.3 实现

方式一 使用ssh基于密码的远程登录
在这里插入图片描述

  • 在第三台机器上登录到第二台机器上
    在这里插入图片描述
  • 细节: 首次远程登录会询问 yes/no , 以后可能就不会了

方式二: 使用 ssh 基于密匙 实现 免密码登录
在这里插入图片描述

   第一步: ssh-keygen -t rsa 在hadoop1和hadoop2和hadoop3上面都要执行,产生公钥和私钥 
   第二步:ssh-copy-id hadoop01 将公钥拷贝到hadoop1上面去 
   第三步:
           ssh-copy-id hadoop02 
           ssh-copy-id hadoop03
  • 注意: 第三步需要在/root/.ssh/目录下

1.8 crontab 任务调度

1.8.1 原理

在这里插入图片描述

1.8.2 概述

  • crontab 进行 定时任务的设置

  • 基本语法

      crontab [选项]
    
    • 常用选项
      在这里插入图片描述

1.8.3 案例: 每隔1分钟将时间打印到 /export/文件中

方案一: 直接式

  • 第一步: date >> /export/mydate1.txt 测试命令

  • 第二步: 通过 crontab -e 进入 定时任务

  • 第三步: 编辑定时任务命令

     */1 * * * * date >> /export/mydate1.txt
    
  • 第四步: 检测是否成功

     cd /export/ && tail -f mydate1.txt
    

方式二: 脚本式

  • 第一步: 书写测试命令

     echo `date +"%Y-%m-%d %H:%M:%S"` >> mydate2.txt
    
  • 第二步: 将命令放到脚本中 vim /export/task.sh

     echo `date +"%Y-%m-%d %H:%M:%S"` >> /export/mydate2.txt
    
  • 第三步: 增加可执行权限

     chmod +x /export/task.sh
    
  • 第四步: 执行脚本

     /export/task.sh
    
  • 第五步: 进入 定时任务 crontab -e

     */1 * * * * date >> /export/mydate1.txt 
     */1 * * * * /export/task.sh
    
  • 第六步: 测试 观察结果

     tail -f /export/mydate2.txt
    

1.8.4 参数细节说明

5个占位符的说明
在这里插入图片描述
在这里插入图片描述
例子
在这里插入图片描述

1.9 三台机器时钟同步

1.9.1 同步互联网时间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 阿里云时钟同步服务器

    ntpdate ntp4.aliyun.com
    
  • 三台机器定时任务 : 直接与阿里云服务器进行时钟同步

    crontab -e
     
    */1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;
    
  • 准备工作: 删除三台服务器定时任务

    crontab -r
    

1.9.2 跟内网某台机器同步时间

  • 为了安全, 大数据集群的节点不允许连接外网
    在这里插入图片描述
  • 以192.168.100.201 这台服务器的时间为准进行时钟同步

第一步:确定是否安装了ntpd的服务

  rpm -qa | grep ntpd

在这里插入图片描述

  • 如果 没有安装,可以进行在线安装

     yum -y install ntpd
    
  • 查看ntpd的状态

     service ntpd status
    
  • 启动ntpd的服务

     service ntpd start
    
  • 设置ntpd的服务开机启动

     chkconfig ntpd on
    

第二步:编辑 /etc/ntp.conf

  • 编辑第一台机器的 /etc/ntp.conf
    • vim /etc/ntp.conf

    • 在文件中添加如下内容, 配置我们的时钟广播地址

       restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap
      
    • 注释一下四行内容

       #server0.centos.pool.ntp.org          
       #server1.centos.pool.ntp.org 
       #server2.centos.pool.ntp.org
       #server3.centos.pool.ntp.org
      
    • 去掉以下内容的注释,如果没有这两行注释,那就自己添加上

       server 127.127.1.0 # localclock 
       fudge 127.127.1.0 stratum 10
      

在这里插入图片描述

  • 配置以下内容,保证BIOS与系统时间同步

      vim /etc/sysconfig/ntpd
    
    • 添加一行内容

       SYNC_HWLOCK=yes
      

在这里插入图片描述

  • 重启ntpd 服务

     service ntpd restart
    
    • 注意: 如果更改ntp时钟服务器的时间,也需要重启 ntpd 服务

第三步:另外两台机器与第一台机器时间同步

  • 先手动同步时间

     ntpdate 192.168.100.201
    
  • 再使用 定时任务 同步时间 crontab -e

      */1 * * * * /usr/sbin/ntpdate 192.168.100.201
    

    另外两台机器与192.168.52.201进行时钟同步

  • 注意: 报错
    在这里插入图片描述

    • 原因: ntp服务已运行
    • 解决办法: 断开再连
      在这里插入图片描述

版权声明:本文为weixin_45749011原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。