linux学习Day09
集群相关摘要
完成要点
1·新增linux系统
2·三台机器 关闭防火墙
3·三台机器 关闭selinux
4·三台机器 更改主机名
5·三台机器 给ip地址起别名
6·scp 远程文件拷贝
7·ssh 远程登陆
8·crontab 任务调度
9·三台机器 始终同步
1、集群
1.1 新增linux系统
分步完成
第一步:克隆虚拟机
第二步:更改新增系统得MAC地址
vim /etc/udev/rules.d/70-persistent-net.rules
第三步:更改网卡信息(setup)
vim /etc/sysconfig/network-scripts/ifcfg-eth0
第四步:重启系统生效 ——reboot
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/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 将远程机器内容复制到本地机器上
- 准备工作
创建目录
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 远程登陆
1.7.1 任务
-
专门用于 远程登陆
1.7.2 分析 - 方式一:使用 ssh 基于密码的远程登陆
- 方式二:使用 ssh + export 实现 免密码登陆
-
方式三:使用 ssh 基于密匙 实现 免密码登陆 (重点)
1.7.3 操作
方式一 使用 ssh 基于密码的远程登陆
命令 | 含义 |
---|---|
ssh ip地址 | 远程登陆到指定服务器上(必须知道正确的密码) |
- 再第三台机器上登陆到第二台机器上
- 注意:首次远程登陆会询问 yes/no , 之后可能就不需要了
方式二:使用 ssh 基于密匙 实现 免密码登陆
第一步: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 原理
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个占位符的说明
含义 | 范围 | |
---|---|---|
第一个 * | 一小时当中的第几分钟 | 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 同步互联网时间
命令 | 英文 | 含义 |
---|---|---|
ntpdate 互联网时间服务器地址 | Network Time Protocol | 同步时间 |
- 阿里云时钟同步服务器
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服务已运行
解决办法: 断开再连