大数据-linux环境搭建

it2025-12-21  8

一、虚拟机安装

VMware虚拟机下载地址:https://pan.baidu.com/s/1gXspKov4RC_kHnhdYqcZlQ

提取码:8nqy

二、Linux操作系统安装

CentOS7系统下载地址:https://pan.baidu.com/s/1az4V7fWMxFa1cPNMjHBonw

提取码:afob

安装过程详见:https://blog.csdn.net/zcg_good/article/details/109236635

三、网络配置(VM上NAT模式和桥接模式讲解)

让服务器之间互通必须要让服务器处于同一网段

IP:服务器的唯一标识

NETMASK:子网掩码

GATWAY:网关

DNS:域名解析服务器

网段:子网掩码用来判断计算机之间是否在同一网段

公式:子网掩码二进制 & IP的二进制 = 网段

NAT模式:虚拟机虚拟出路由器 有自己的网关ip,所以在虚拟机上的服务器都连接这个路由器

桥接模式:虚拟机虚拟出一个虚拟网卡,服务器通过虚拟网卡连接到真实网卡,所以网关ip是真实路由器上的网关ip

四、linux网络配置

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

五、Linux关闭防火墙

查看防火墙状态:fairwall-cmd --state 或者 7版本 systemctl status firewalld.service(常用)

临时关闭防火墙:systemctl stop firewalld.service

永久关闭防火墙:systemctl disable firewalld.service(先关闭防火墙,再永久关闭)

六、关闭SELinux

查看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                         重启机器即可

七、Linux安装jdk

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

八、Linux安装hadoop

配置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"

十分钟后查看机器是否与时间服务器同步

最新回复(0)