VMware虚拟机下载地址:https://pan.baidu.com/s/1gXspKov4RC_kHnhdYqcZlQ
提取码:8nqy
CentOS7系统下载地址:https://pan.baidu.com/s/1az4V7fWMxFa1cPNMjHBonw
提取码:afob
安装过程详见:https://blog.csdn.net/zcg_good/article/details/109236635
让服务器之间互通必须要让服务器处于同一网段
IP:服务器的唯一标识
NETMASK:子网掩码
GATWAY:网关
DNS:域名解析服务器
网段:子网掩码用来判断计算机之间是否在同一网段
公式:子网掩码二进制 & IP的二进制 = 网段
NAT模式:虚拟机虚拟出路由器 有自己的网关ip,所以在虚拟机上的服务器都连接这个路由器
桥接模式:虚拟机虚拟出一个虚拟网卡,服务器通过虚拟网卡连接到真实网卡,所以网关ip是真实路由器上的网关ip
ifconfig查看网卡信息
修改ip配置文件
vi /etc/sysconfig/network-scripts/ifcfg-(自己的名字) HWADDR=00:0C:29:E3:61:81 TYPE=Ethernet BOOTPROTO=static // ip改为静态,保持不变 DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eno16777736 UUID=b8360b13-b30d-4dd2-ad29-a5f806a368b9 ONBOOT=yes // 开机自动启动网卡 IPADDR=192.168.80.66 // 设置ipv4地址 NETMASK=255.255.255.0 // 设置子网掩码 GATEWAY=192.168.80.2 // 设置网关 DNS1=192.168.80.2 // 设置DNS注:网关与虚拟机上的网关ip保持一致
dns最好设置与网关ip一致,会通过路由连接到最近的dns域名解析服务器。也可以设置8.8.8.8
修改完之后要重启网络服务
命令:
service network restart
systemctl restart network
这两个命令有什么区别?
redhat/centos 7后 用第二个命令 版本不同 也对第一种命令兼容
了解DNS?
域名解析服务器,我们通常配置hosts文件用来映射ip和域名,这样通过查找本地的hosts文件,就能将ip和域名匹配,但现实中域名和ip太多,就需要通过连接域名解析服务器,去进行匹配。
常见的域名解析服务器: 谷歌:8.8.8.8 百度:180.76.76.76 阿里:223.5.5.5 114:114.114.114.114
hostname 查看主机名
临时修改 hostname + 主机名称
永久修改 vi /etc/hostname ---
重启reboot 永久生效
vi /etc/hosts--添加
192.168.80.66 bigdata66
查看防火墙状态:fairwall-cmd --state 或者 7版本 systemctl status firewalld.service(常用)
临时关闭防火墙:systemctl stop firewalld.service
永久关闭防火墙:systemctl disable firewalld.service(先关闭防火墙,再永久关闭)
查看SELinux状态: /usr/sbin/sestatus -v 如果SELinux status参数为enabled即为开启状态 SELinux status: enabled getenforce 也可以用这个命令检查
关闭SELinux: 1、临时关闭(不用重启机器): setenforce 0 设置SELinux 成为permissive模式 setenforce 1 设置SELinux 成为enforcing模式 2、永久关闭 修改配置文件需要重启机器: vi /etc/selinux/config 将SELINUX=enforcing改为SELINUX=disabled 重启机器即可
1、将jdk的包传到服务器上
解压:tar -zxvf 包名 -C 解压路径
例如:tar -zxvf jdk-8u181-linux-x64.tar.gz -C /opt/module/
-C change directory 改变目录
2、配置环境变量
vi ~/.bash_profile
添加以下内容
JAVA_HOME=/opt/module/jdk1.8.0_181
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
3、使环境变量生效
source ~/.bash_profile
检查:java -version
注意:以上配置的是用户环境变量 当前系统环境变量是 /etc/profile
配置hadoop环境变量
vi ~/.bash_profile
HADOOP_HOME=/opt/module/hadoop-2.7.2
export HADOOP_HOME
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH
生效:source ~/.bash_profile
这个是当前用户的环境变量,建议修改系统环境变量
为什么集群的服务器之间要进行时间同步?
对于分布式系统来说,一些大数据组件依赖于服务器时间的误差要非常小,如果时间不同步导致很多问题。例如kerberos认证
方法一(集群服务器可以联网)
原理:同步到网络上的NTP时间服务器,例如阿里的
ntp1.aliyun.com ntp2.aliyun.com ntp3.aliyun.com ntp4.aliyun.com ntp5.aliyun.com ntp6.aliyun.com ntp7.aliyun.com
[root@hadoop89 ~]# ntpdate ntp4.aliyun.com 3 Dec 14:45:22 ntpdate[2150]: step time server 203.107.6.88 offset -28799.551330 sec
步骤:集群机器设置定时任务同步时间
1、添加定时任务
crontab -e
*/10 * * * * ntpdate ntp4.aliyun.com
上面的配置表示,此机器每隔十分钟从阿里的时间服务器同步一次时间。
2、集群里的机器都需要配置此定时任务
方法二(集群在内网,无法连接到外网)
原理:在集群中找一台A机器作为时间同步服务器,其它机器定时与这台机器时间同步,所以可以达到集群间时间同步。
那么A机器的时间如何确定?
A机器可以连接外网,从外网服务器获取时间A机器不能连接外网,采用本地时间或者连接卫星时间步骤:
1、检查机器是否安装了ntp服务
[root@hadoop88 ~]# rpm -qa | grep ntp ntpdate-4.2.6p5-29.el7.centos.2.x86_64 ntp-4.2.6p5-29.el7.centos.2.x86_64
2、安装ntp服务(集群每台机器都要安装)
yum -y install ntp
3、选一台机器作为时间服务器
hadoop88
4、修改配置文件 /etc/ntp.conf
[root@hadoop88 ~]# vim /etc/ntp.conf
#授权192.168.25.网段上的所有机器可以从这台机器上查询和同步时间
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.25.0 mask 255.255.255.0 nomodify notrap
#注释掉连接外网的时间同步服务器
server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst
#server 0.centos.pool.ntp.org iburst#server 1.centos.pool.ntp.org iburst#server 2.centos.pool.ntp.org iburst#server 3.centos.pool.ntp.org iburst
#添加(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)
server 127.127.1.0
fudge 127.127.1.0 stratum 10
5、修改/etc/sysconfig/ntpd 文件
[root@hadoop88 etc]# vim /etc/sysconfig/ntpd
增加内容如下(让硬件时间与系统时间一起同步)
SYNC_HWCLOCK=yes
6、重新启动ntpd服务
查看ntpd服务状态
systemctl status ntpd.service
停止ntpd服务
systemctl stop ntpd.service
启动ntpd服务
systemctl start ntpd.service
7、设置ntpd服务开机启动
systemctl enable ntpd.service
8、在其他机器配置10分钟与时间服务器同步一次
[root@hadoop89 ~]# crontab -e
*/10 * * * * /usr/sbin/ntpdate hadoop88
[root@hadoop90 ~]# crontab -e
*/10 * * * * /usr/sbin/ntpdate hadoop88
验证:修改89机器的时间
date -s "2020-12-02 11:11:11"
十分钟后查看机器是否与时间服务器同步
