Linux - 大数据版
1 服务器硬件基础知识
软件和硬件是一个完整的计算机系统互相依存的两大部分。硬件是软件赖以工作的物质基础,软件则驱动硬件发挥功能,甚至使用一些只有硬件才能提供的功能。为了更好的掌握大数据的相关技术,我们需要了解底层硬件的基础知识。
提到计算机,就不得不提及在计算机的发展史上做出杰出贡献的著名应用数学家冯·诺依曼(Von Neumann),他带领专家提出了一个全新的存储程序的通用电子计算机方案。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZDsWXfr6-1630978330540)(Linux笔记.assets/2-19110Q1355B59.gif)]
这个方案是具有颠覆性的设计,被誉为计算机史上的一个里程碑,从此之后,将计算机的存储程序和程序控制原理称为冯·诺依曼原理,按照上述原理设计制造的计算机称为冯·诺依曼机。现代计算机系统在这个基础上不断演进,基础设备越来越丰富,这里需要我们了解的主要有 cpu
、硬盘
、内存
和 网卡
等硬件。注意,这里并不需要掌握硬件的工作原理,只需要掌握硬件的作用、硬件的性能参数和当前企业实战中硬件的平均水平,帮助我们更精确的分析程序的性能瓶颈,更好的调优。
1.1 CPU
-
概念: 中央处理器(central processing unit,简称CPU)作为计算机系统的运算和控制核心,是数据处理、程序运行的最终执行单元。
-
作用:执行程序指令,运行各种程序(java代码、sql语句)
-
类比:好比人的脑子
-
性能参数(cpu时钟频率,单位Hz):
4GHz = 4*1000MHz = 4*1000*1000KHz = 4*1000*1000*1000Hz 对于CPU来说,越高的时钟频率对应越高的性能以及更高的耗电量和更多的发热量。
个人电脑(消费级cpu i3i9):主频高(35GHz)、核数少(2~8)、一台电脑只有1颗cpu,更满足个人用户的使用需求(打游戏、看电影)
企业服务器(专业级cpu Xeon系列):频率不高(24GHz)追求稳定、核数多(832)并发性能好、一台服务器可以安装多颗cpu(2~4)更满足企业的需求(多线程并发、稳定)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dA5DGMnZ-1630978330543)(Linux笔记.assets/image-20210214134328137.png)]
1.2 硬盘
-
概念:电脑硬盘是计算机最主要的存储设备。
-
作用:用来永久的存储数据(文档、图片、视频、音频、MySQL数据库的数据)
-
类比:生活中的纸、竹简、龟壳、石头
-
性能参数:
-
容量
1TB = 1024GB = 1024*1024MB 硬盘的容量常见以GB或TB为单位 TB上还有PB这个单位:1PB=1024TB,目前还没有单块硬盘1PB的硬盘,但是作为计量单位应该了解掌握
个人电脑:1~2TB
企业服务器:几TB~几十TB不等
-
读写速度
a.机械硬盘
平均速度 100~300MB/s 价格:便宜 使用寿命:理论上读写次数无限制,不过服务器磁盘因为读写频繁,通常寿命为1年 数据恢复:出现问题很容易进行数据恢复 性能影响因素: 转速:7200~15000转/分钟 文件读写方式: 顺序读写:读写的是一个连续的大文件,读写速度快 200~300MB/s(场景:少量的大文件) 随机读写:读写的是多个分散存储在不同位置的文件,读写速度慢 几十KB/s (场景:大量零碎的小文件)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iTmGKadZ-1630978330545)(Linux笔记.assets/2-1Q012154JE59.jpg)]
b.固态硬盘
平均速度:450~1500MB/s 价格:贵 使用寿命:理论上完全擦写数千次,比机械硬盘寿命短的多 数据恢复:出现问题很难恢复数据
综合各种因素,当前企业服务器中,主流仍然使用机械硬盘。
-
1.3 内存
-
类比: 人脑中的记忆。
-
特点:
- 非持久化保存数据(断电、关机、程序终止等情况下,数据都会丢失)
- 读写速度非常快:6~20GB/s
- 容量小
- 价格贵
-
性能参数
个人电脑:6~10GB/s
企业服务器:10~26GB/s容量:8GB、16GB、32GB单条
企业服务器 8GB/16GB * 8/16条 = (64GB~256GB)内存常识:
4*8GB 总价格 < 32GB单条价格 多根内存有多通道效果(可并行),4*8GB 内存性能>32GB单条
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yqc8wfR4-1630978330548)(Linux笔记.assets/image-20210214150358960.png)]
1.4 网卡
-
概念:允许计算机在计算机网络上进行通讯的计算机硬件。
-
作用:接收其它计算机发送来的数据,也可以向其它计算机发送数据。
-
类比:家中的电话、古时的飞鸽传书、烽火狼烟
-
对开发的影响:所有网络传输都要经过网卡(http请求、json数据、sql语句的发送)
-
特点:
-
速度慢。
受限于网络带宽的速度。
千兆带宽(1000Mbps = 1000Mbit/s = 1000/8 MB/s = 125MB/s) 1B=8bit
-
数据传输可靠性低。
网络上传输数据,易受网络波动影响,容易丢失数据。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kee0owkY-1630978330550)(Linux笔记.assets/pro.user.img37.51sole.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg)]
-
2 操作系统
在计算机中,操作系统是其最基本也是最为重要的基础性系统软件。它负责硬件资源的调度和软件资源的管理,充分发挥计算机硬件的性能,同时简化了计算机硬件的使用方式。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KNHdQM1g-1630978330551)(Linux笔记.assets/image-20210214164608560.png)]
-
主流的操作系统:windows、linux、unix、macos、ios、android
-
作用:
- 对内管理计算机硬件资源(cpu、内存、硬盘)
- 对外提供资源调度,为各个程序调度运行所需的资源
-
不足:
操作系统自上世纪70年代诞生,到现在已经有半个世纪的时间,经过这么多年的发展,操作系统在单机环境下表现非常成熟了。但是在分布集群环境下,遇到了新的问题,主要不足有以下2点:
-
无法跨计算机进行文件管理
企业应用的数据体量单台机器无法支撑,需要使用集群多节点存储。而现有的操作系统是不支持跨机器文件管理的。
-
无法跨计算机进行资源调度
针对存储在多台机器上的海量数据进行处理时,单台机器的计算资源是无法满足计算需求的。现有的操作系统是无法直接调度多台机器的资源的。
-
3 大数据前置知识
3.1 数字指纹(数字摘要)
数字指纹用来验证文件在网络传输过程中有没有被破坏或者被篡改。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h3mxHTYb-1630978330552)(Linux笔记.assets/image-20210214214611856.png)]
在linux中可以直接使用md5sum对文件进行摘要计算。
md5sum 文件名
示例:md5sum test.txt
应用场景:
在网络传输、设备之间转存、复制大文件等时,可能会出现传输前后数据不一致的情况。这种情况在网络这种相对更不稳定的环境中,容易出现。那么校验文件的完整性,也是势在必行的。
3.2 文件系统
文件系统用于存储、管理计算机中的文件。传统的Unix文件系统有2个基础组件:保存文件内容的数据空间和保存文件描述信息的元空间。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kG8nGrX1-1630978330553)(Linux笔记.assets/image-20210214222247383.png)]
Linux文件系统分析:
-
元空间:
- 保存文件描述信息,也叫元数据
比如:文件类型、权限信息、日期、大小、物理位置 - 元数据本身占用的空间小,查找比较快
- 保存文件描述信息,也叫元数据
-
数据空间:
- 保存文件的内容,也就是文件的数据
- 占用空间大,直接查找速度慢
元数据 数据 构成 文件的描述信息 文件的内容数据 大小 非常小,所有文件的元数据信息大小都相同 大小不等,KB、MB、GB 位置 元空间 数据空间 类似 公安局档案信息、学生档案信息 人、学生
文件的查找过程:
- 查找文件,先从元空间查找文件的元数据,如果找不到元数据则文件查找失败
- 找到元数据后,根据元数据记录的文件地址,定位文件位置并读取文件
3.3 ip设置
在大数据平台下,需要为每台机器配置静态ip。
配置步骤:
-
编辑
/etc/sysconfig/network-scirpts/ifcfg-ens33
文件vi /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" # 将none改为static DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="0bd5d8a5-fe1b-42de-82bd-bfa7d2984b95" DEVICE="ens33" ONBOOT="yes" #保证一定为yes IPADDR=192.168.84.140 #ip地址 NETMASK=255.255.255.0 GATEWAY=192.168.84.2 #网关,在vmware中查看 DNS1=114.114.114.114 #dns,固定写法 IPV6_PRIVACY="no"
网关的查询方式:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F2KyE3qe-1630978330553)(Linux笔记.assets/1592381581060.png)]
-
重启网络服务
systemctl restart network
3.4 进程管理工具-psmisc
进程是操作系统进行资源分配和调度的一个基本单位。每个程序在运行时分配的资源集合对应着一个进程,在资源管理的时候不可避免的就要涉及到进程的管理。
常见的进程:
sshd linux远程连接服务进程
chronyd 系统时钟管理进程
firewalld 防火墙
network 系统网络适配器(网卡)管理程序
进程相关的命令:
#查看系统进程
ps -aux 等价于 ps -ef
#查看系统进程和资源使用情况
top
#杀死进程
kill 进程id(建议)
kill -9 进程id(强制杀死进程)
psmisc:linux中使用的进程管理工具,可以查看进程,也可以杀死进程。
# 0. 安装:
yum install -y psmisc
# 1. 以tree结构查看linux进程。(表示进程之间的依赖关系)
pstree
# 2. 根据进程名杀死某个进程
killall [进程名]
3.5 hostname(主机名)
大数据平台通常需要多台机器,为了方便区分不同的机器,可以为不同的机器设置更加有识别性的主机名(计算机名)。
#1.查看主机名
hostname
#2.设置主机名
hostnamectl set-hostname 主机名
主机名规范:
服务器安装的核心软件名+ip最后一段。
比如:hadoop10、kafka20
3.6 远程copy
需要从1台机器向另外1台机器复制文件时,使用远程复制。
scp -r 本机文件路径 root@远程机器ip:远程机器文件路径
#从本机复制test目录到远程机器/opt目录下 :添加参数-r
[root@localhost opt]# scp -r test root@192.168.146.10:/opt
3.7 远程登录
需要在一台机器上连接并登录到另外一台linux机器上。
ssh 用户名@ip
#示例
ssh root@192.168.146.10
3.8 域名ip映射
直接通过ip地址在机器间进行通信,存在问题:不够望文生义,看到ip并不能立刻想到访问的是哪台机器。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vzUw84t5-1630978330554)(Linux笔记.assets/image-20210215094706394.png)]
解决方案:域名ip映射,在/etc/hosts中可以配置ip和主机名的映射关系
格式:
ip地址 主机名1 主机名2 ...
1.每行一个映射关系
2.一个ip可以映射多个主机名,多个主机名之间使用空格分隔
示例:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.146.10 linux10
192.168.146.11 hadoop11
192.168.146.12 hadoop12
192.168.146.21 kafka21
192.168.146.22 kafka22
说明:
-
hosts中有 127.0.0.1和localhost的默认域名映射
ip地址:127.0.0.1表示的本机ip,访问localhost也能访问本机也是因为hosts中的默认映射
-
根据主机名通信的过程
- 先从hosts文件中获取主机名对应的ip
- 再根据ip进行通信
-
windows系统中hosts文件位置在
C:\Windows\System32\drivers\etc\hosts
-
A机器中在hosts配置了域名映射后,A机器可以直接通过主机名和B机器通信,B机器中也必须同样配置后才可以使用域名和A机器通信
3.9 免密登录
在之前的ssh远程登录中,每次都需要输入密码,比较麻烦。ssh还提供了一种免密登录的方式,登录时不需要密码,单仍需要通过其它方式认证登录者的身份。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RVckI4jh-1630978330555)(Linux笔记.assets/image-20210215120252809.png)]
免密登录步骤:
-
在机器A上生成一对密钥:私钥和公钥
#生成密钥,注意:输入命令后连按3个回车 [root@centos7-10 ~]# ssh-keygen 生成的密钥对,在/root/.ssh文件夹中 [root@centos7-10 .ssh]# ls -rw-------. 1 root root 1675 2月 15 20:17 id_rsa #私钥 -rw-r--r--. 1 root root 408 2月 15 20:17 id_rsa.pub #公钥
-
将公钥从机器A发送到机器B上
ssh-copy-id B机器的ip 示例: [root@centos7-10 .ssh]# ssh-copy-id 192.168.44.10
-
接下来在机器A上免密登录机器B
#免密登录B机器 [root@centos7-10 .ssh]# ssh 192.168.44.10 在机器B的/root/.ssh文件夹中authorized_keys文件中保存着公钥
3.10 VMware的3种网络模式(了解)
VMware workstations 的网络模式有三种,分别是桥接(bridge)模式、NAT模式和仅主机(host-only)模式。当大家在windows里安装VMwareworkstations后,电脑的网络适配器就会自动出现3张虚拟网卡VMnet0、VMnet1和VMnet8。
1 桥接模式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f5DhhQ6m-1630978330555)(Linux笔记.assets/160926204625481.png)]
桥接模式下:
- 虚拟机和物理机必须在同1网段内,会占用物理机的网段ip
- 虚拟机配置正确后可以连接外网
2 NAT模式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k61kE9ez-1630978330556)(Linux笔记.assets/160926204664451.png)]
NAT模式:
- 虚拟机和物理机不在同1个网段内,不会占用物理机所在网段ip
- 虚拟机可以连接外网
3 仅主机模式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XhzzWpsx-1630978330557)(Linux笔记.assets/160926204874121.png)]
Host-Only模式:
- 虚拟机和物理机不在同1网段,不占用物理机所在网段ip
- 虚拟机不能连接外网,只能和物理机通信
总结:
- 需要联网时考虑 桥接和NAT模式
- 桥接模式会占用物理机所在的网段ip,如果机器数量比较少时,桥接方式更简单,可以使用桥接;大多数情况下,使用NAT
3.11 大数据软件安装目录规范
/opt/modules #软件安装包目录
/opt/installs #软件安装目录
/opt/app/test #测试文件目录
/opt/app/data #数据文件
3.12 JDK和MySQL的安装
1 JDK的安装
-
上传
jdk-8uxxx.tar.gz
上传到/opt/modules
文件夹 -
解压缩到
/opt/installs
文件夹,并改名[root@localhost modules]# tar xzvf jdk-8u291-linux-x64.tar.gz -C /opt/installs [root@localhost modules]# cd /opt/installs [root@localhost installs]# mv jdk1.8.0_291 jdk1.8
-
设置环境变量,并重新加载环境变量
[root@localhost installs]# vi /etc/profile 添加如下配置 export JAVA_HOME=/opt/installs/jdk1.8 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=. [root@localhost installs]# source /etc/profile #重新加载环境变量
-
验证
[root@localhost installs]# java -version java version "1.8.0_291" Java(TM) SE Runtime Environment (build 1.8.0_291-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)
2 MySQL的安装
准备工作:将 mysql-rpm-5.7.29
文件夹整体上传到 /opt/modules
下。
-
卸载CentOS内置的mariadb
[root@localhost ~]# rpm -qa | grep mariadb mariadb-libs-5.5.65-1.el7.x86_64 注意:不同的电脑查询的软件名略有差异,下一步一定要根据刚才查询的结果进行卸载(对刚才的结果复制粘贴) [root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64
-
通过安装vim,安装vim和MySQL通用的依赖
[root@localhost ~]# yum install -y vim
-
进入到安装包目录,按顺序安装rpm包
[root@localhost ~]# cd /opt/modules/mysql-rpm-5.7.29/ [root@localhost mysql-rpm-5.7.29]# rpm -ivh 1*.rpm 准备中... ################################# [100%] 正在升级/安装... 1:net-tools-2.0-0.22.20131004git.el################################# [100%] [root@localhost mysql-rpm-5.7.29]# rpm -ivh 2*.rpm 准备中... ################################# [100%] 正在升级/安装... 1:perl-Net-Daemon-0.48-5.el7 ################################# [ 14%] 2:perl-Data-Dumper-2.145-3.el7 ################################# [ 29%] 3:perl-Compress-Raw-Zlib-1:2.061-4.################################# [ 43%] 4:perl-Compress-Raw-Bzip2-2.061-3.e################################# [ 57%] 5:perl-IO-Compress-2.061-2.el7 ################################# [ 71%] 6:perl-PlRPC-0.2020-14.el7 ################################# [ 86%] 7:perl-DBI-1.627-4.el7 ################################# [100%] [root@localhost mysql-rpm-5.7.29]# rpm -ivh 3*.rpm 警告:3 mysql-community-client-5.7.29-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY 准备中... ################################# [100%] 正在升级/安装... 1:mysql-community-common-5.7.29-1.e################################# [ 25%] 2:mysql-community-libs-5.7.29-1.el7################################# [ 50%] 3:mysql-community-client-5.7.29-1.e################################# [ 75%] 4:mysql-community-server-5.7.29-1.e################################# [100%]
-
启动MySQL
查看mysql是否启动 [root@localhost mysql-rpm-5.7.29]# systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: inactive (dead) Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html 启动mysql [root@localhost mysql-rpm-5.7.29]# systemctl start mysqld 查看mysql是否启动 [root@localhost mysql-rpm-5.7.29]# systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since 六 2020-05-30 18:06:02 CST; 10s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 36957 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS) Process: 36904 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 36960 (mysqld) CGroup: /system.slice/mysqld.service └─36960 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
-
初始化MySQL
查看初始随机密码 [root@localhost mysql-rpm-5.7.29]# head -n 10 /var/log/mysqld.log 2020-05-30T10:05:57.592355Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2020-05-30T10:05:58.055873Z 0 [Warning] InnoDB: New log files created, LSN=45790 2020-05-30T10:05:58.194923Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2020-05-30T10:05:58.336295Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 288015b5-a25d-11ea-a36c-000c29b18b53. 2020-05-30T10:05:58.338480Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2020-05-30T10:05:58.912744Z 0 [Warning] CA certificate ca.pem is self signed. 2020-05-30T10:05:59.122501Z 1 [Note] A temporary password is generated for root@localhost: fcq0W%WawxwR 2020-05-30T10:06:02.023609Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2020-05-30T10:06:02.039831Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.29) starting as process 36960 ... 2020-05-30T10:06:02.051955Z 0 [Note] InnoDB: PUNCH HOLE support available 登录mysql,并修改root账号的密码 [root@localhost mysql-rpm-5.7.29]# mysql -u root -p Enter password:粘贴随机初始密码 修改密码,注意:默认密码检查策略比较严格,必须定义如下类似密码 mysql> alter user 'root'@'localhost' identified by '$BAIZHIroot2002'; 修改为简单密码: 修改密码检查策略 mysql> set global validate_password_policy=0; mysql> set global validate_password_length=4; 修改root为简单密码 mysql> alter user root@'localhost' identified by '123456'; 设置root允许远程登录 mysql> use mysql; mysql> update user set host = '%' where user = 'root'; mysql> flush privileges;//一定要刷新操作
Navicat连接MySQL
-
关闭linux虚拟机的防火墙
systemctl stop firewalld
-
使用Navicat连接虚拟机中的MySQL
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VpjyINxM-1630978330558)(Linux笔记.assets/image-20200530111754729.png)]
3.13 大数据Linux主机环境搭建初始步骤
1.设置静态ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33
2. 重启网络服务
systemctl restart network
3.关闭防火墙
systemctl stop firwalld
systemctl disable firewalld
4.设置hostname
hostnamectl set-hostname 主机名
5.设置域名映射
vi /etc/hosts
格式:主机名 ip地址
6.安装jdk,并配置环境变量
tar xzvf jdk1.8-xxx.tar.gz -C /opt/installs/
vi /etc/profile
export JAVA_HOME=/opt/installs/jdk1.8/
export PATH=$PATH:/opt/installs/jdk1.8/bin/
export classpath=.
作业:
- 总结今日知识点
- 按照课上示例保证自己电脑有一台安装了JDK和MySQL的机器,并在不同阶段关机拍摄3个快照
- 安装1台虚拟机后,克隆3台后按照初始步骤反复练习ip配置~域名映射的步骤
片转存中…(img-VpjyINxM-1630978330558)]
3.13 大数据Linux主机环境搭建初始步骤
1.设置静态ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33
2. 重启网络服务
systemctl restart network
3.关闭防火墙
systemctl stop firwalld
systemctl disable firewalld
4.设置hostname
hostnamectl set-hostname 主机名
5.设置域名映射
vi /etc/hosts
格式:主机名 ip地址
6.安装jdk,并配置环境变量
tar xzvf jdk1.8-xxx.tar.gz -C /opt/installs/
vi /etc/profile
export JAVA_HOME=/opt/installs/jdk1.8/
export PATH=$PATH:/opt/installs/jdk1.8/bin/
export classpath=.
作业:
- 总结今日知识点
- 按照课上示例保证自己电脑有一台安装了JDK和MySQL的机器,并在不同阶段关机拍摄3个快照
- 安装1台虚拟机后,克隆3台后按照初始步骤反复练习ip配置~域名映射的步骤