1 挂载新的硬盘
1.1 目标
- 虚拟机 增加一块 硬盘
1.2 路径
- 第一步: 了解linux系统分区的原理
- 第二步: 查看系统分区情况
- 第三步: 虚拟机 增加 硬盘
- 第四步: 分区
- 第五步: 格式化
- 第六步: 挂载
- 第七步: 设置重启后 挂载不失效
1.3 实现
第一步: 了解linux系统分区的原理
- 一个硬盘可以分成多个分区
- 用户不能直接操作硬件, 需要 让硬件和系统的目录 建立映射关系(挂载) 才可以操作, 称为 挂载
第二步: 查看系统分区挂载情况
命令 | 英文 | 含义 |
---|---|---|
lsblk -f | list block devices | 查看所有设备的挂载情况 |
参数 | 英文 | 含义 |
---|---|---|
-f | file system | 文件系统 |
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F5x3IfHz-1624685690449)(assets/1558957195965.png)]
lsblk
的记忆小窍门: 老师不离开 的首字母
第三步: 虚拟机 增加 硬盘
- 模拟将买的硬盘插入到 服务器中
- 选中 目标虚拟机 右键 设置
- 选中 硬盘 点击 添加按钮
- 点击 下一步
- 选择 创建新虚拟磁盘
- 指定 磁盘大小为10G
- 完成
- 注意: 重启 才可以生效
第四步: 分区
命令 | 英文 | 含义 |
---|---|---|
fdisk /dev/sdb | partition | 开始指定磁盘分区 |
分区命令可选项
选项 | 英文 | 含义 |
---|---|---|
m | menu | 显示命令列表 |
n | new | 新增分区 |
p | partition | 显示磁盘分区 |
d | delete | 删除分区 |
w | write and exit | 写入 并 退出 |
操作如下:
fdisk /dev/sdb
开始分区- 输入
m
, 进入 目录列表 - 输入
n
, 新增分区 - 输入
p
, 开始分区, 后面按回车 - 最后 输入
w
, 保存 且 退出 lsblk -f
查看是否成功
第五步: 格式化
命令 | 英文 | 含义 |
---|---|---|
mkfs -t ext4 /dev/sdb1 | build a Linux file system | 格式化指定分区 |
参数 | 英文 | 含义 |
---|---|---|
-t | file system type | 指定文件系统类型 |
操作如下
mkfs -t ext4 /dev/sdb1
格式化指定分区lsblk -f
查看是否成功
第六步: 挂载
命令 | 含义 |
---|---|
mount 设备名称 挂载目录 | 建立 设备分区 和 系统目录 的映射关系 |
umount 设备名称 或 umount 挂载目录 | 取消 设备分区 和 系统目录 的映射关系 |
操作步骤
- 创建目录
mkdir -p /home/newdisk
mount /dev/sdb1 /home/newdisk
建立 设备分区 和 系统目录 的映射关系lsblk -f
查看是否挂载成功
- 注意: 重启后 挂载失效
第七步: 设置重启不失效
操作步骤
- 第一步: 将映射关系写到配置文件中
/etc/fstab
- 第二步:
mount -a
重新加载/etc/fstab
文件 ;mount
显示/etc/fstab
文件内容 - 第三步: 重启操作系统后, 测试
lsblk -f
1.4 小结
- 用户不能直接访问 硬件设备
- 需要将硬件设备 挂载到 系统目录上, 用户才可以让用户访问
1.5 挂载 持有系统镜像 光驱
1.5.1 目标
- 因为 linux系统镜像中包含了常用的软件包, 就不用从网上下载了
- 所以需要挂载 持有系统镜像 的 光驱
1.5.2 路径
- 第一步: 将 linux系统镜像 放到光驱中
- 第二步: 创建目录
/mnt/cdrom
- 第三步: 通过挂载 建立 硬件 和 系统目录的关系
- 第四步: 到镜像中 寻找按照包
1.5.3 实现
1.5.4 小结
- 通过 挂载 系统光驱, 就可以 获取系统镜像中 软件包
- 注意: 系统镜像目录中 不能有中文, 不能有空格
2 rpm 软件包管理器
2.1 目标
- 通过
rpm命令
实现对软件 的安装、查询、卸载 - RPM 是Red-Hat Package Manager(RPM软件包管理器)的缩写
- 虽然 打上了 red-hat 的标记, 但是理念开放, 很多发行版都采用, 已经成为行业标准
2.2 路径
- 第一步: rpm包 的 查询命令
- 第二步: rpm包 的 卸载
- 第三步: rpm包 的 安装
2.3 实现
第一步: rpm包 的 查询命令
选项 | 英文 | 含义 |
---|---|---|
-q | query | 查询 |
-a | all | 所有 |
-i | info | 信息 |
-l | list | 显示所有相关文件 |
-f | file | 文件, 显示文件对应 rpm包 |
第二步: rpm包 的 卸载
命令 | 英文 | 含义 |
---|---|---|
rpm -e 软件包名称 | erase 清除 | 卸载rpm软件包 |
rpm -e --nodeps 软件包名称 | Don’t check dependencies | 卸载前 跳过 依赖检查 |
第三步: rpm包 的 安装
命令 | 含义 |
---|---|
rpm -ivh rpm包的全路径 | 安装 rpm 包 |
参数 | 英文 | 含义 |
---|---|---|
-i | install | 安装 |
-v | verbose | 打印提示信息 |
-h | hase | 显示安装进度 |
2.4 小结
代码语言:javascript复制# 1 查询
rpm -qa | grep rpm包
# 2 卸载
rpm -e rpm全包名
rpm -e --nodeps rpm全包名
# 3 安装
rpm -ivh rpm包的全路径
3 yum
3.1 目标
Yum
(全称为Yellow dog Updater, Modified
)本质上 也是一个 软件包管理器。- 特点: 基于
RPM
包管理,能够从指定的服务器 自动下载、 自动安装、 自动处理依赖性关系
3.2 路径
- 第一步: yum的原理
- 第二步: 常用指令 (重点)
- 第三步: 制作 本地
yum
源 - 第四步: 制作 局域网
yum
源
3.3 实现
3.3.1 yum的原理
3.3.2 常用命令(重点)
注意: 必须联网
命令 | 含义 |
---|---|
yum list | grep 需要的软件名 | 查询服务器是否有需要安装的软件 |
yum -y install 需要的软件包 | 下载安装 |
yum -y remove 需要卸载的软件包 | 卸载 |
yum repolist | 列出设定yum源信息 |
yum clean all | 清除yum缓存信息 |
3.3.3 制作本地yum源
3.3.4 制作局域网yum源
- 原理
3.3.5.1 安装httpd软件
3.3.4.3 制作局域网 yum源
3.4 小结
代码语言:javascript复制# 安装软件
yum -y install 软件包
卸载软件
yum -y remove 软件包
4 安装jdk
4.1 路径
- 第一步: 卸载linux系统 提供的jdk
- 第二步: 上传按照包到
/export/soft
, 解压到/export/install
- 第三步: 将 jdk路径 放到 环境变量中
- 第四步: 重新加载 环境变量的配置文件
- 第五步: 测试是否安装成功
4.2 实现
第一步: 卸载linux系统 提供的jdk
代码语言:javascript复制# 查询已安装的jdk
rpm -qa | grep java
# 卸载
rpm -e --nodeps 软件包名
第二步: 上传按照包到 /export/soft
, 解压到 /export/install
代码语言:javascript复制# 1 创建保存软件包目录
mkdir -p /export/soft/
cd /export/soft/ && ll
# 2 上传软件包
# 3 创建安装软件目录
mkdir -p /export/install
# 4 将压缩包解压到指定目录
tar -zxvf jdk-8u141-linux-x64.tar.gz -C /export/install
cd /export/install && ll
第三步: 将 jdk路径 放到 环境变量中
- 目的: 为了能够在任何目录下都可以使用
javac
和java
JAVA_HOME=/export/install/jdk1.8.0_141
PATH=/export/install/jdk1.8.0_141/bin:$PATH
export JAVA_HOME PATH
第四步: 重新加载 环境变量的配置文件
- 为了生效, 要么重启电脑, 要么 重新加载配置文件
source /etc/profile
# 测试
java -version
第五步: 测试是否安装成功
代码语言:javascript复制需求: 编写一个简单的Hello.java, 输出 Hello World!
vim Hello.java
代码语言:javascript复制[root@hadoop01 export]# cat Hello.java
public class Hello{
public static void main(String[] args) {
System.out.println("Hello java!");
}
}
使用 javac Hello.java
编译
执行 java Hello
5 安装tomcat
5.1 目标
- 实际工作中我们可能需要发布web项目到tomcat中
5.2 路径
- 第一步: 将安装包上传到
/export/soft
, 解压到/export/install
- 第二步: 启动tomcat 且 查看日志
- 第三步: 上传项目 测试
5.3 实现
6 安装mysql
6.1 yum安装原理:
- yum安装是通过执行yum命令,自动分析依赖关系, 自动下载, 自动安装
6.2 yum安装优点:
- 安装简单、快速
6.3 缺点:
- 由于不同的yum仓库只有特定的几个版本,所以可选的版本较少。
6.4 yum安装实战
- 下面看看如何在CentOS7系统上安装 MySQL5.6.44
1 查询系统自带的mysql
代码语言:javascript复制[root@hadoop01 yum.repos.d]# rpm -qa | grep mysql
mysql-libs-5.1.73-8.el6_8.x86_64
2 安装mysql
代码语言:javascript复制yum install -y mysql-server
3 启动服务
代码语言:javascript复制service mysqld start
4 修改密码
代码语言:javascript复制# 设置密码
/usr/bin/mysqladmin -u root password '123456'
# 进入mysql
mysql -uroot -p123456
5 问题1: 解决中文乱码
由于MySQL编码原因会导致数据库出现乱码。
解决办法:
修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码。
具体操作:
1 进入MySQL控制台
代码语言:javascript复制# 进入mysql
mysql -uroot -p123456
# 查看编码集 发现不是utf8
show variables like 'character_set_%';
2 修改mysql配置文件
代码语言:javascript复制# 清空 mysql 配置文件内容
[root@Hadoop-NN-01 ~]# >/etc/my.cnf
# 修改mysql 软件的编码集
[root@Hadoop-NN-01 ~]# vi /etc/my.cnf
修改内容如下:
代码语言:javascript复制[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
3 重启MySQL服务
代码语言:javascript复制[root@Hadoop-NN-01 ~]# service mysqld restart
代码语言:javascript复制 #查看MySQL字符集
show variables like 'character_set_%';
MySQL数据库字符集编码修改完成!
6 问题2: 默认情况下 mysql服务端不允许客户端远程访问
连接之前需要关闭防火墙
7 集群(三台)
7.1 新增linux系统
第一步: 克隆虚拟机
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OgnWkwzo-1624685690471)(assets/1559030329561.png)]
第二步: 更改新增系统的mac地址
代码语言:javascript复制vim /etc/udev/rules.d/70-persistent-net.rules
第三步: 更改网卡信息 (setup)
代码语言:javascript复制vim /etc/sysconfig/network-scripts/ifcfg-eth0
第四步: 重启系统生效
代码语言:javascript复制reboot
7.2 三台机器 关闭防火墙
- 内网环境 安全性比较高, 防火墙开启会影响效率, 所以 关闭防火墙
三台机器执行以下命令(root用户来执行)
代码语言:javascript复制# 查看防火墙的状态
service iptables status
# 启动防火墙服务
service iptables start
# 重启 防火墙 服务
service iptables restart
# 停止 防火墙 服务
service iptables stop
# 彻底关闭防火墙
chkconfig iptables off
7.3 三台机器关闭selinux
代码语言:javascript复制vim /etc/selinux/config
- 注意: 重启才会生效
7.4 三台机器更改主机名
代码语言:javascript复制vim /etc/sysconfig/network
- 重启才会生效
7.5 三台机器 给ip地址起别名
7.5.1 给ip地址起别名
vim /etc/hosts
192.168.100.201 hadoop01
192.168.100.202 hadoop02
192.168.100.203 hadoop03
7.5.2 测试
代码语言:javascript复制ping 192.168.100.202
ping hadoop02
7.6 scp
远程文件拷贝
7.6.1 是什么?
- scp是
remote file copy program
的缩写, scp是远程文件拷贝命令。
7.6.2 从本地拷贝到远程机器上
1 文件
代码语言:javascript复制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 /export/aaa root@192.168.100.202:/export
scp -r /export/aaa root@hadoop02:/export
scp -r /export/aaa hadoop02:/export
7.6.3 将远程机器内容复制到本地机器上
1 文件
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 root@192.168.100.202:/export/a1 /export
scp -r hadoop02:/export/a1 /export
7.7 ssh远程登录
7.7.1 目标
- 专门用于 远程登录
7.7.2 路径
- 方式一: 使用
ssh
基于密码的远程登录(了解) - 方式二: 使用
ssh
基于密匙 实现 免密码登录(掌握)
7.7.3 实现
方式一 使用 ssh
基于密码的远程登录
命令 | 含义 |
---|---|
ssh ip地址 | 远程登录到指定服务器上(必须知道正确的密码) |
- 在第三台机器上登录到第二台机器上 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DrcoW4V2-1624685690479)(assets/1559302684534.png)]
- 细节: 首次远程登录会询问
yes/no
, 以后可能就不会了
方式二: 使用 ssh
基于密匙 实现 免密码登录(掌握)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wbswp140-1624685690479)(assetsUsersAdministratorAppDataRoamingTyporatypora-user-images1571066755061.png)]
代码语言:javascript复制 第一步: ssh-keygen -t rsa 在hadoop1和hadoop2和hadoop3上面都要执行,产生公钥和私钥
第二步:ssh-copy-id hadoop01 将公钥拷贝到hadoop1上面去
第三步:
ssh-copy-id hadoop02
ssh-copy-id hadoop03
注意1: 第三步需要在/root/.ssh/目录下.
7.8 crontab 任务调度
7.8.1 原理
7.8.2 概述
7.8.3 案例: 每隔1分钟将时间打印到 /export/文件
中
方案一: 直接式
方式二: 脚本式
7.8.4 参数细节说明(学会查)
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 |
7.9 三台机器时钟同步
7.9.1 同步互联网时间
命令 | 英文 | 含义 |
---|---|---|
ntpdate 互联网时间服务器地址; | Network Time Protocol | 同步时间 |
7.9.2 跟内网某台机器同步时间
- 为了安全, 大数据集群的节点不允许连接外网
- 以192.168.100.201 这台服务器的时间为准进行时钟同步
第一步:确定是否安装了ntpd的服务
代码语言:javascript复制rpm -qa | grep ntpd
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z3YZJYn9-1624685690482)(assets/1559323516074.png)]
第二步:编辑 /etc/ntp.conf
第三步:另外两台机器与第一台机器时间同步
练习路径:
1 设置防火墙
2 一台机器上: rpm 安装 jdk tomcat mysql
3 搭建服务器集群(下午)
4 挂载 硬盘 和 光驱
5 yum源: 网络yum源 本地yum源 局域网yum源