linux学习Day09

集群相关摘要

完成要点

  • 1·新增linux系统
  • 2·三台机器 关闭防火墙
  • 3·三台机器 关闭selinux
  • 4·三台机器 更改主机名
  • 5·三台机器 给ip地址起别名
  • 6·scp 远程文件拷贝
  • 7·ssh 远程登陆
  • 8·crontab 任务调度
  • 9·三台机器 始终同步

1、集群

1.1 新增linux系统

linux学习Day09

分步完成
第一步:克隆虚拟机

linux学习Day09
linux学习Day09
linux学习Day09
linux学习Day09

第二步:更改新增系统得MAC地址

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

linux学习Day09

第三步:更改网卡信息(setup)

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

linux学习Day09

第四步:重启系统生效 ——reboot

1.2 三台机器关闭防火墙

内网环境 安全性比较高, 防火墙开启会影响效率, 所以 关闭防火墙
三台机器执行以下命令(root用户来执行)

  1. 查看防火墙的状态
    service iptables status
  2. 启动防火墙服务
    service iptables start
  3. 重启 防火墙 服务 service iptables restart
  4. 停止 防火墙 服务 service iptables stop
  5. 彻底关闭防火墙 chkconfig iptables off

linux学习Day09

1.3三台机器关闭selinux

vim /etc/selinux/config

linux学习Day09

注意: 重启才会生效

1.4三台机器更改主机名

vim /etc/sysconfig/network

linux学习Day09

注意:重启才会生效

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

linux学习Day09

1.6 scp 远程文件拷贝

1.6.1 scp含义
  • scp是 remote file copy program 的缩写,scp是是远程文件拷贝命令
1.6.2 从本地拷贝到远程机器上

linux学习Day09

  • 准备工作

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

1、文件

  • 语法格式

拷贝文件
scp local_file [email protected]_ip:remote_folder

  • 需求:将本地 01.txt 文件 复制到 192.168.100.202 机器的 /export 目录下

scp /export/aaa/01.txt [email protected]:/export
scp /export/aaa/02.txt [email protected]:/export
scp /export/aaa/02.txt hadoop02:/export

2、文件夹

  • 语法格式

拷贝目录
scp -r local_folder [email protected]_ip:remote_folder

  • 需求:将本地 aaa 目录 复制到 192.168.100.202 机器的 /export 目录下
    scp -r /export/aaa [email protected]:/export
    scp -r /export/aaa [email protected]/export
    scp -r /export/aaa hadoop02:/export

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

linux学习Day09

  • 准备工作

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

1、文件

  • 语法格式

scp [email protected]_ip:remote_file local_folder

  • 练习:将hadoop02 的 111.txt 文件 复制到 hadoop01 的 export 目录下
    scp [email protected]:/export/a1/111.txt /export
    scp [email protected]:/export/a1/222.txt /export
    scp hadoop02:/export/a1/222.txt /export

2、目录

  • 语法格式

scp -r [email protected]_ip:remote_folder local_folder

  • 练习:将 hadoop02 的 /export/a1/ 目录 复制到 hadoop01 的 export 目录下
    scp -r [email protected]:/export/a1 /export
    scp -r hadoop02:/export/a1 /export

1.7 远程登陆

linux学习Day09
1.7.1 任务

  • 专门用于 远程登陆
    1.7.2 分析
  • 方式一:使用 ssh 基于密码的远程登陆
  • 方式二:使用 ssh + export 实现 免密码登陆
  • 方式三:使用 ssh 基于密匙 实现 免密码登陆 (重点)
    1.7.3 操作
    方式一 使用 ssh 基于密码的远程登陆
命令 含义
ssh ip地址 远程登陆到指定服务器上(必须知道正确的密码)
  • 再第三台机器上登陆到第二台机器上
    linux学习Day09
  • 注意:首次远程登陆会询问 yes/no , 之后可能就不需要了

方式二:使用 ssh 基于密匙 实现 免密码登陆

linux学习Day09

第一步:ssh-****** -t rsa 在 hadoop1 和 hadoop2 和 hadoop3 上面都要执行,产生公钥和私钥
第二步:ssh-copy-id hadoop01 将公钥拷贝到 hadoop1 上面去
第三步:ssh-copy-id hadoop02
ssh-copy-id hadoop03

1.8 crontab 任务跳读

1.8.1 原理

linux学习Day09

1.8.2 概述
  • crontab 进行 定时任务的设置
  • 基本语法

crontab [选项]

  • 常用选项
选项 英文 含义
-e edit 编辑crontab定时任务
-l displayed 显示crontab任务
-r remove 删除当前用户所有的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个占位符的说明

5个占位符的说明
linux学习Day09

含义 范围
第一个 * 一小时当中的第几分钟 0~59
第二个 * 一天当中的第几小时 0~23
第三个 * 一个月当中的第几天 1~31
第四个 * 一年当中的第几月 1~12
第五个 * 一周当中的星期几 0~7(0和7都代表星期日)

例子

命令 含义
* * * * * command 实例1:每1分钟执行一次command
3,15 * * * * command 实例2: 每小时的第3和第15分钟执行
3,15 8-11 * * * command 实例3: 在上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * command 实例4: 每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 command 实例5: 每个星期一的上午8点到11点的第3和第15分钟执行
30 21 * * * /etc/init.d/smb restart 实例6: 每晚的21:30重启smb
45 4 1,10,22 * * /etc/init.d/smb restart 实例7: 每月1、10、22日的4 : 45重启smb
10 1 * * 6,0 /etc/init.d/smb restart 实例8:每周六、周日的1 : 10重启smb
0,30 18-23 * * * /etc/init.d/smb restart 实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb

1.9 三台机器时钟同步

1.9.1 同步互联网时间

linux学习Day09
linux学习Day09

命令 英文 含义
ntpdate 互联网时间服务器地址 Network Time Protocol 同步时间
  • 阿里云时钟同步服务器

ntpdate ntp4.aliyun.com

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

crontab -e
*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com

  • 准备工作: 删除三台服务器定时任务

crontab -r

1.9.2 跟内网某台机器同步时间
  • 为了安全, 大数据集群的节点不允许连接外网
    linux学习Day09
  • 以192.168.100.201 这台服务器的时间为准进行时钟同步
  • 第一步:确定是否安装了ntpd的服务

rpm -qa | grep ntpd
linux学习Day09

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

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
linux学习Day09

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

vim /etc/sysconfig/ntpd

  • 添加一行内容

SYNC_HWLOCK=yes
linux学习Day09

  • 重启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进行时钟同步

  • 注意: 报错
    linux学习Day09
    原因: ntp服务已运行
    解决办法: 断开再连
    linux学习Day09