1 挂载新的硬盘
1.1 目标
虚拟机 增加一块 硬盘
1.2 路径
第一步: 了解linux系统分区的原理
第二步: 查看系统分区情况
第三步: 虚拟机 增加 硬盘
第四步: 分区
第五步: 格式化
第六步: 挂载
第七步: 设置重启后 挂载不失效
1.3 实现
第一步: 了解linux系统分区的原理
一个硬盘可以分成多个分区
用户不能直接操作硬件, 需要 让硬件和系统的目录 建立映射关系(挂载) 才可以操作, 称为 挂载
第二步: 查看系统分区挂载情况
lsblk 的记忆小窍门: 老师不离开 的首字母
第三步: 虚拟机 增加 硬盘
模拟将买的硬盘插入到 服务器中
cd /mnt/cdrom/Packages/
2.3 实现
第一步: rpm包 的 查询命令
第二步: rpm包 的 卸载
第三步: rpm包 的 安装
2.4 小结
rpm -qa | grep rpm包
rpm -e rpm全包名
rpm -e --nodeps rpm全包名
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.3 制作本地yum源
原因: 因为大数据集群 为了安全, 不让连接外网
原理
实现
实现
第一步 挂载 持有系统镜像的 光驱, 请参考 1.5 小结
第二步: 备份默认yum源仓库
第三步: 新增本地yum源 vim CentOS-Local.repo
cd /etc/yum.repos.d/
rename .repo .repo.bak *
ll
第三步: 新增本地yum源 vim CentOS-Local.repo
vi CentOS-Local.repo
编辑内容如下
[base]
name=CentOS-Local
baseurl=file:///mnt/cdrom
gpgcheck=0
enabled=1
注意: 必须以 .repo 结尾
第五步: 断网 测试是否可以安装
yum repolist
yum clean all
yum -y remove tree
yum -y install tree
3.3.4 制作局域网yum源
原理
3.3.5.1 安装httpd软件
安装httpd:
yum -y install httpd
启动 httpd 服务
service httpd start
测试
http://192.168.100.201:80
问题: 发现无法访问?
原因: 因为 linux 的防火墙 禁止他人 访问自己的80端口
解决: 通知 防火墙放行
关闭防火墙
原因: 为了方便 内网中集群间机器的相互操作, 通常会关闭防火墙
关闭防火墙
service iptables stop
重启之后不要开防火墙
chkconfig iptables off
3.3.4.3 制作局域网 yum源
使用浏览器访问http://192.168.100:201:80第一步: 将常用软件包 复制到指定目录下
cp -r /mnt/cdrom/* /var/www/html/CentOS-6.9
第二步: 浏览器访问http://192.168.100.201/CentOS-6.9/
第三步: 更新其他节点的 本地yum源(在其他节点上测试)
yum -y install 软件包
卸载软件
yum -y remove 软件包
4 安装jdk
4.1 路径
第一步: 卸载linux系统 提供的jdk
第二步: 上传按照包到 /export/soft , 解压到 /export/install
第三步: 将 jdk路径 放到 环境变量中
第四步: 重新加载 环境变量的配置文件
第五步: 测试是否安装成功
4.2 实现
第一步: 卸载linux系统 提供的jdk
rpm -qa | grep java
rpm -e --nodeps 软件包名
第二步: 上传按照包到 /export/soft , 解压到 /export/install
mkdir -p /export/soft/
cd /export/soft/ && ll
mkdir -p /export/install
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
第五步: 测试是否安装成功
需求: 编写一个简单的Hello.java, 输出 Hello World!
vim Hello.java
[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 实现
第一步: 将安装包上传到 /export/soft , 解压到 /export/install
cd /export/soft
tar -zxvf apache-tomcat-7.0.82.tar.gz -C /export/install/
第二步: 启动tomcat 且 查看日志
cd /export/install/apache-tomcat-7.0.82/bin
./startup.sh && tail -100f …/logs/catalina.out
第三步: 测试
http://192.168.100.201:8080/
6 安装mysql
6.1 yum安装原理:
yum安装是通过执行yum命令,自动分析依赖关系, 自动下载, 自动安装
6.2 yum安装优点:
安装简单、快速
6.3 缺点:
由于不同的yum仓库只有特定的几个版本,所以可选的版本较少。
6.4 yum安装实战
下面看看如何在CentOS7系统上安装 MySQL5.6.44
1 查询系统自带的mysql
[root@hadoop01 yum.repos.d]# rpm -qa | grep mysql
mysql-libs-5.1.73-8.el6_8.x86_64
2 安装mysql
yum install -y mysql-server
3 启动服务
service mysqld start
# 设置密码
/usr/bin/mysqladmin -u root password ‘123’
mysql -uroot -p123
5 问题1: 解决中文乱码
由于MySQL编码原因会导致数据库出现乱码。
解决办法:
修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码。
具体操作:
1 进入MySQL控制台
mysql -uroot -p123
show variables like ‘character_set_%’;
2 修改mysql配置文件
[root@Hadoop-NN-01 ~]# >/etc/my.cnf
[root@Hadoop-NN-01 ~]# vi /etc/my.cnf
修改内容如下:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
3 重启MySQL服务
[root@Hadoop-NN-01 ~]# service mysqld restart
#查看MySQL字符集
show variables like ‘character_set_%’;
MySQL数据库字符集编码修改完成!
6 问题2: 默认情况下 mysql服务端不允许客户端远程访问
问题: 使用客户端 远程 连接mysql报错?原因: 因为 用户 没有 远程访问的权限
解决: 授权
grant all privileges on . to ‘root’@’%’ identified by ‘123’ with grant option;
flush privileges;
7 集群(三台)
7.1 新增linux系统
第一步: 克隆虚拟机
第二步: 更改新增系统的mac地址
vim /etc/udev/rules.d/70-persistent-net.rules
第四步: 重启系统生效
reboot
7.2 三台机器 关闭防火墙
内网环境 安全性比较高, 防火墙开启会影响效率, 所以 关闭防火墙
三台机器执行以下命令(root用户来执行)
service iptables status
service iptables start
service iptables restart
service iptables stop
chkconfig iptables off
7.3 三台机器关闭selinux
vim /etc/selinux/config
注意: 重启才会生效
7.4 三台机器更改主机名
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 测试
ping 192.168.100.202
ping hadoop02
7.6 scp 远程文件拷贝
7.6.1 是什么?
scp是 remote file copy program 的缩写, scp是远程文件拷贝命令。
7.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 [email protected]:/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 [email protected]:/export
scp -r /export/aaa root@hadoop02:/export
scp -r /export/aaa hadoop02:/export
7.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 [email protected]:/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 [email protected]:/export/a1 /export
scp -r hadoop02:/export/a1 /export
7.7 ssh远程登录
7.7.1 目标
专门用于 远程登录
7.7.2 路径
方式一: 使用 ssh 基于密码的远程登录(了解)
方式二: 使用 ssh + expect 实现 免密码登录(了解)
方式三: 使用 ssh 基于密匙 实现 免密码登录(掌握)
7.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
注意1: 第三步需要在/root/.ssh/目录下.
7.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
第六步: 测试 观察结果
含义 范围
第一个 * 一小时当中的第几分钟 0~59
第二个 * 一天当中的第几小时 0~23
第三个 * 一个月当中的第几天 1~31
第四个 * 一年当中的第几月 1~12
第五个 一周当中的星期几 0~7(0和7都代表星期日)
tail -f /export/mydate2.txt
7.8.4 参数细节说明(学会查)
5个占位符的说明7.9 三台机器时钟同步
7.9.1 同步互联网时间
7.9.2 跟内网某台机器同步时间
为了安全, 大数据集群的节点不允许连接外网
以192.168.100.201 这台服务器的时间为准进行时钟同步
如果 没有安装,可以进行在线安装
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进行时钟同步
注意: 报错