Linux Centos7
虚拟机环境配置
1
安装虚拟机
1.1
前提说明
在
windows
环境下,以及安装
VMware
。以
VMware Workstation 15 Pro为例
。
![](https://img-blog.csdnimg.cn/f7e72f16293d4467bf098f077d8e28c0.png)
提前预留好
60G
以上的硬盘空间给虚拟机使用,最好使用固态硬盘存放虚拟机文件
把虚拟机安装在D
盘
![](https://img-blog.csdnimg.cn/2c65ce8e011044619219b85f9c76424e.png)
1.2
在
windows
系统上确认所有的
VMware
服务已启动
任务栏右键
--
任务管理器
-
服务
![](https://img-blog.csdnimg.cn/aa6bd2c778fd4d34884efd3b96b8b5be.png)
1.3
创建虚拟机
选择典型安装,
一路默认即可
![](https://img-blog.csdnimg.cn/b1caa2334b194d1aae4b37c50df41736.png)
此处选择镜像位置
![](https://img-blog.csdnimg.cn/0e97c85b95ee43068618b6ca93685c84.png)
可以给虚拟机取个名字,并换一个安装路径,否则默认安装在
C
盘
![](https://img-blog.csdnimg.cn/16b8bc6e59174302994d1ae364891b1d.png)
1.4
启动虚拟机安装
选择语言,此处选择中文
![](https://img-blog.csdnimg.cn/f7eeccc13a524fb68f466b1937f8d5ac.png)
安装过程中界面显示是中文
软件选择项选择最小安装,其他的根据提示完成即可
![](https://img-blog.csdnimg.cn/03804628a0424a30a0332e002156e5b4.png)
设置
ROOT
密码
统一设置为123456
创建用户可以创建一个
用户,密码
123456
![](https://img-blog.csdnimg.cn/d570ce6909d44ebe810c529743d2a855.png)
等待安装完成重启即可
![](https://img-blog.csdnimg.cn/225153d1c78d4116b0c5e17e4b6f184e.png)
2
基础命令
2.1
基础命令
查询网络信息
ip addr
进入目录
cd
查看文件
ls 、 ll
查看当前目录
pwd
/ 表示根目录
clear 清屏幕
2.2
文件操作
2.2.1 vi
命令三种模式
使用
linux
的场景经常遇到修改文件,修改配置文件。vi命令则是最基础的修改文件的命令。
和windows
界面操作不一样,
linux
上使用命令行方式修改文件,必然和界面方式修改文件有
一点区别。
![](https://img-blog.csdnimg.cn/ea54aa99761a4e00b84a0ce953dc3dd3.png)
2.2.2 vi
命令参数表
![](https://img-blog.csdnimg.cn/0152882b20c642f0a6b29f178e7b724c.png)
2.3
日志操作
tail 命令查看实时日志
tail -f filename
模拟日志生成:
vi /hadoop/log.sh # 创建一个 shell 脚本
#!/bin/bashfor i in $(seq 1 10000)dod = $(date +%Y%m%d%H%M)echo " $d ""-------- $i " >>/hadoop/test.logdone
给日志脚本权限
sudo chmod -R 777 log.sh# orchmod + x log.sh
执行脚本
./log.sh
查看日志
tail -f test.log
3
环境配置
3.1
网络配置
3.1.1
确认好
VMware
生成好的网关地址
关闭虚拟机
VMware
虚拟机
--
编辑
--
虚拟网络编辑器
--
选择
NAT
模式
--NAT
设置
--
网关
IP
记录下自己的网段
![](https://img-blog.csdnimg.cn/80de8f6431804138a839b54716a30502.png)
3.1.2
确认
VmNet8
网卡已经设置好了
IP
地址了
DNS
在网络上右键
--
打开
“
网络和
Internet
设置
”--
以太网
--
更改适配器设置
--VMnet8
虚拟网卡
![](https://img-blog.csdnimg.cn/936c366a4e804ea48a322311f0dc310d.png)
右键
VMnet8
虚拟网卡
--
属性
--
网络
--Internet
协议版本
4
(
TCP/IPv4
)
此处要使用手动设置
IP
,此处
IP
和上面看到网关地址需一致
![](https://img-blog.csdnimg.cn/a514767b42fc4fbebd5d61583cb040c2.png)
网关和之前看到网关地址保持一致
复制虚拟机
![](https://img-blog.csdnimg.cn/dcf1366473da4ffa941e130098433334.png)
将虚拟机文件夹复制三份,并分别重命名,使用
VM
打开并重命名
![](https://img-blog.csdnimg.cn/c9bc8d5de34f4edbb11794c4eebea239.png)
3.1.4
分别设置三台虚拟机的内存
需要三台虚拟机,并且需要同时运行,总体上占用为:每台虚拟机内存
*3
在分配的时候,需要在总内存的大小的基础上减去
2G-4G
作为系统内存,剩余的除以
3
,作为每台
虚拟机的内存
每台虚拟机内存
=
(总内存
-4
)
/ 3
![](https://img-blog.csdnimg.cn/3be4a34c906e42b6b9f86b79236ff3f6.png)
3.1.5
虚拟机修改
mac
地址和
ip
3.1.5.1
集群规划
IP 主机名 环境配置192.168.10.110 node01192.168.10.120 node02192.168.10.130 node03
3.1.5.2
设置
IP
和
Mac
地址
重新生成
Mac
地址
在虚拟机关机的情况下右键 -- 设置 -- 硬件 - 网络适配器 -NAT 模式 -- 高级 --Mac 地址 -- 生成
![](https://img-blog.csdnimg.cn/1ff1163379db402fb90fa572a2274dd1.png)
启动
3
台虚拟机
设置
IP
地址,修改配置文件。
vi /etc/sysconfig/network-scripts/ifcfg-ens33BOOTPROTO = staticONBOOT = yesIPADDR = 192 .168.10.110NETMASK = 255 .255.255.0GATEWAY = 192 .168.10.2DNS1 = 8 .8.8.8DNS2 = 114 .114.114.114
网络重启
systemctl restart network
验证是否网络通畅
ping baidu.com
3.1.6
使用
SSH
客户端连服务器
安装
secureCRT
或
xshell
连接服务器
设置编码格式
utf-8
![](https://img-blog.csdnimg.cn/0d0be0fd5f41466e93a2691b97b0c693.png)
没有xshell工具的可以到我的百度网盘下载https://pan.baidu.com/s/1JUYhb9gJsne3HJk3wl3-6A?pwd=2m5h
3.2
配置主机名和域名的映射
配置主机名
把原本值删除,添加对应机器的主机名
vi /etc/hostname
配置主机域名映射,三台机器都配置一样配置
vi /etc/hosts192.168.10.110 node01 node01.hadoop.com192.168.10.120 node02 node02.hadoop.com192.168.10.130 node03 node03.hadoop.com
重启
reboot
3.3
关闭防火墙和
SELinux
3.3.1
关闭防火墙
关闭防火墙并设置开机不启动
systemctl stop firewalld 短暂关闭systemctl disable firewalld 永久关闭systrmctl status firewalld 查看状态
![](https://img-blog.csdnimg.cn/d271391644de426282d6ed381314bdf6.png)
3.3.2
防火墙说明
Centos7 中默认将原来的防火墙 iptables 升级为了 firewalld 。常用指令 :1 、安装 firewalldroot 执行 # yum install firewalld firewall-config2 、运行、停止、禁用 firewalld查看状态 :# systemctl status firewalld 或者 firewall-cmd --state临时启动 :# systemctl start firewalld永久开机自启动 :# systemctl enable firewalld临时禁用 :# systemctl stop firewalld停止,开机不启动 :# systemctl disable firewalld3 、 firewalld 规则添加查看所有打开的端口firewall-cmd --zone=public --list-ports添加一个端口firewall-cmd --zone=public --add-port=80/tcp --permanent 删除一个端口Firewall-cmd --zone=public --remove-port=80/tcp --permanent 更新防火墙规则firewall-cmd --reload
3.3.3
关闭
SELinux
关闭 selinuxvi /etc/selinux/configSELINUX = disabled # 把 SELINUX 值改为 disabled
![](https://img-blog.csdnimg.cn/613e6b0c82754ebb9cf00715e842aa5a.png)
3.3.4 SELinux
介绍
什么是
SELinux
SELinux 是 linux 的一种安全子系统Linux 中的权限管理是针对文件的,而不是针对进程的,也就是说,如果 root 启动了某个进程则这 个进程可以操作任何一个文件SELinux 在 linux 的文件权限外,增加了对进程的限制,进程只能在进程的允许范围内操作资源
为什么要关闭
SELinux
使用系统时候需要做复杂的配置。生产环境使用,学习阶段不使用。SELinux 的工作模式:enforcing 强制模式permissive 宽容模式disable 关闭SELinux 的操作临时关闭 SELinux:# setenforce 0临时打开 SELinux:# setenforce 1编辑 /etc/selinux/config 文件,将 SELINUX 的值设置为 disabled,SELINUX=disabled
3.4
免密登陆
3.4.1
说明
Hadoop
节点众多,所以一般情况下主节点启动从节点,这个时候主节点登陆到从节点中。免密能减 少很多麻烦。
3.4.2
对称加密和非对称加密
对称加密:单密码加密
DES 、 3DES 、 AES 等等
非对称加密:现代加密算法,是计算机通讯安全的基石
公开密钥和私有密钥是一对 如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密。
如果用私有密钥对数据进行加密,只有用对应的公开密钥才能解密。
因为加密和解密使用的是两不同的密钥,所以这种算法叫作 非对称加密算法 。
经典算法
“RSA”
![](https://img-blog.csdnimg.cn/7a52a5b8685f4cb4af73c542bc4293f1.png)
3.4.3
免密
SSH
登陆的原理
需要在 B 节点配置 A 节点的公钥A 节点请求 B 节点,要求登陆B 节点使用 A 节点的公钥,加密一段随机文本A 节点使用私钥解密,并发回给 B 节点B 节点验证文本是否正确
3.4.4
操作步骤
三台机器分别生成各自的公钥、私钥
3
台机器都执行以下命令
ssh-keygen -t rsa 输入命令后直接三个回车
生成的密钥在 /root/.ssh/id_rsa 路径下
![](https://img-blog.csdnimg.cn/c3b832a3513541389ef8f7f8ccbb7c4b.png)
检查公钥生成是否正确
less /root/.ssh/id_rsa.pub
![](https://img-blog.csdnimg.cn/91a434b97ee2434abd4fc1c9c8f96012.png)
拷贝三台机器的公钥到第一台机器
三台机器执行命令:
ssh-copy-id node00
检查拷贝情况
less /root/.ssh/authorized_keys
![](https://img-blog.csdnimg.cn/f55e777db99e4f38bcaf56239a05d3e7.png)
复制
node00
的认证到其他机器
在
node00
上执行命令
scp/root/.ssh/authorized_keys node01:/root/.sshscp/root/.ssh/authorized_keys node02:/root/.ssh
此时已经完成免密登录,使用
ssh
命令可以从任意一台机器访问其他机器
node01
上访问
node02
或者
node03
使用命令:
ssh node02
或者
ssh node03
3.5
时钟同步(此章节忽略)
3.5.1 chrony
集群上必须保证时间一致,否则就有可能出现问题,在
centos7
上默认安装了
chrony
。
centOS7
上是否存在
chronyd
:
3.5.2
安装
chrony
如果不存在,可以安装
修改时间服务器
yum list chrony
systemcrl status chronyd
![](https://img-blog.csdnimg.cn/0561fe5d95cb4a5ba9a3ebcd5a7df7d1.png)
yum -y install chrony
vim /etc/chrony.conf # 配置外部时间服务器,将配置文件中默认的全部注释掉
server ntp1.aliyun.com ## 中国授时
# 只允许 192.168.0 网段的客户端进行时间同步allow 192.168.0.0/24# 启用 RTC (实时时钟)的内核同步
rtcsync# 当外部时间服务器不可用时,采用本地时间作为同步标准local stratum 10