本文用于记录我的第一次内网大数据集群配置过程。
本篇主要实现基础配置。
配置使用的软件版本和脚本参考自尚硅谷,链接如下:
链接: https://www.bilibili.com/video/BV1rL411E7uz?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click

hadoop集群搭建 【大数据数仓项目集群配置 二】


服务器及软件版本

服务器名称IP
hadoop01192.168.10.100
hadoop1192.168.10.101
hadoop2192.168.10.102
hadoop3192.168.10.103

每台服务器配置64G内存,1T硬盘。(学习用模板机器最好配置4G内存,50G硬盘。)

软件名称软件版本
jdk1.8.0_212
hadoop3.1.3
zookeeper3.5.7
mysql5.7.26
hive3.1.2
spark3.0.0
hbase2.0.5
sqoop1.4.6
kylin3.0.1

一、搭建本地yum源

由于服务器处于内网环境,无法连接外网的镜像源,需要在本地搭建yum源,以便后续配置使用。
可以连接互联网的服务器,可以跳过这一步。

1.yum是什么

yum是一个软件包管理器,能够从指定的服务器自动下载RPM包并安装,并自动处理依赖关系。

2.本地yum源规划

服务端:hadoop01
客户端:hadoop1、hadoop2、hadoop3

3.配置环节

3.1 镜像准备

准备如CentOS-7-x86_64-Everything-2009.iso 的镜像文件。
everything的包更全面,所以这里使用everything而不是dvd。
文件的版本一定不能低于服务器上centos的版本

3.2 服务器端配置

#1.创建目录
[root@localhost ~]$ mkdir -p /media/centos7
#2.挂载镜像文件
[root@localhost ~]$ mount -o loop /mnt/CentOS-7-x86_64-Everything-2009.iso /mnt/
#3.查看挂载情况
[root@localhost ~]$ df -h 
#4.复制文件
[root@localhost ~]$ cp -r /mnt/* /media/centos7
#5.配置yum源
[root@localhost ~]$ cd /etc/yum.repos.d/
[root@localhost ~]$ mkdir /tmp/backup
[root@localhost ~]$ mv * /tmp/backup   //备份yum源
[root@localhost ~]$ vim yum.repo      //文件名称一定以.repo为后缀
#6.yum.repo内容如下,配置时将注释删除。
[centos7]               //仓库描述(可自定义) 
name=centos7 server   //对软件源的描述(与上面上面保持一致) 
baseurl=file:///mnt  //镜像的挂载入地址 file:// --格式 /mnt--指定目录  
gpgcheck=0            //不检查
gpgkey enabled=1             //此yum源语句块立即生效
#7.缓存建立
#在设置时提前关闭防火墙。
[root@localhost ~]$ yum clean all
[root@localhost ~]$ yum makecache
[root@localhost ~]$ yum repolist
#8.安装ftp,修改配置文件
#ftp是用于在网络上进行文件传输的一套标准协议。
[root@localhost ~]$ yum -y install vsftpd ftp
#9.修改文件
[root@localhost ~]$ vim /etc/vsftpd/vsftpd.conf
anon_root=/media/centos7
#10.重启ftp服务并设置开机自启动。
[root@localhost ~]$ systemctl restart vsftpd 
[root@localhost ~]$ systemctl enable vsftpd 

3.3 客户端配置

在每台客户端服务器都进行如下配置。

#1.配置yum源文件
[root@localhost ~]$ cd /etc/yum.repos.d/ 
[root@localhost ~]$ mkdir /tmp/backup 
[root@localhost ~]$ mv * /tmp/backup //备份yum源 
[root@localhost ~]$ vim local.repo //文件名称一定以.repo为后缀
#内容如下:
[local-yum] 
name=CentOS7 
baseurl=ftp://10.8.8.246 
gpgcheck=0 
enabled=1
#2.缓存建立
[root@localhost ~]$ clean all
[root@localhost ~]$ yum makecache
[root@localhost ~]$ yum repolist

3.4 注意事项

如果需要重启挂载了镜像文件的服务器,先提前结束挂载,否则服务器会进入紧急状态。

[root@localhost ~]$ umount /mnt/

二、基础环境搭建

1.搭建hadoop模板环境

需要在上hadoop01、hadoop1、hadoop2、hadoop3上都搭建。

#1、安装所需工具
[root@localhost ~]$ yum install -y net-tools
[root@localhost ~]$ yum install -y vim
#2、关闭防火墙
[root@localhost ~]$ systemctl stop firewalld
[root@localhost ~]$ systemctl disable firewalld.service
#3、修改host信息
#3.1 修改hostname
#以192.168.10.101为例。
[root@localhost ~]$ vim /etc/hostname
hadoop1
#3.2 修改hosts
[root@localhost ~]$ vim /etc/hosts 
#内容如下
192.168.10.100 hadoop01
192.168.10.101 hadoop1
192.168.10.102 hadoop2
192.168.10.103 hadoop3
#4、创建hadoop用户,修改密码
[root@hadoop1 ~]$ useradd hadoop	
[root@hadoop1 ~]$ passwd 123456      //密码可以自行设置
#5、配置hadoop的权限
[root@hadoop1 ~]$ vim /etc/sudoers
修改/etc/sudoers文件,在%wheel这行下面添加一行,如下所示:
修改前:
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
修改后:
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
hadoop   ALL=(ALL)     NOPASSWD:ALL
#6、创建所需文件夹
[hadoopt@hadoop1 ~]$ mkdir /opt/module
[hadoopt@hadoop1 ~]$ mkdir /opt/software
[hadoopt@hadoop1 ~]$ chown hadoop:hadoop /opt/module
[hadoopt@hadoop1 ~]$ chown hadoop:hadoop /opt/software
3.1.7 卸载自带的jdk
[hadoopt@hadoop1 ~]$ rpm -qa | grep -I java | xargs -nl rpm -e --nodeps 

2.ssh免密登录

2.1 ssh简介

Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。目前已经成为Linux系统的标准配置

2.2 配置细节

#1、生成公钥和私钥
在每一台服务器上都运行下列代码。
[hadoopt@hadoop1 .ssh]$ ssh-keygen -t rsa
#2、将公钥拷贝到其他服务器
在每一台服务器上都运行下列代码。
[hadoopt@hadoop1 .ssh]$ ssh-copy-id 192.168.10.100
[hadoopt@hadoop1 .ssh]$ ssh-copy-id 192.168.10.101
[hadoopt@hadoop1 .ssh]$ ssh-copy-id 192.168.10.102
[hadoopt@hadoop1 .ssh]$ ssh-copy-id 192.168.10.103

2.3 注意事项

如果没有.ssh文件,则使用ssh连接其他服务器,连接后会自动创建.ssh文件。

[hadoopt@hadoop1 ~]$ ssh hadoop2
[hadoopt@hadoop2 ~]$ exit

3.集群分发脚本

编写xsync脚本,实现对差异文件的更新。
在/home/hadoop/bin目录下创建xsync文件

[hadoop@hadoop1 opt]$ cd /home/hadoop
[hadoop@hadoop1 ~]$ mkdir bin
[hadoop@hadoop1 ~]$ cd bin
[hadoop@hadoop1 bin]$ vim xsync

在该文件中编写如下代码

#!/bin/bash

#1. 判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
for host in hadoop1 hadoop2 hadoop3
do
    echo ====================  $host  ====================
    #3. 遍历所有目录,挨个发送

    for file in $@
    do
        #4. 判断文件是否存在
        if [ -e $file ]
            then
                #5. 获取父目录
                pdir=$(cd -P $(dirname $file); pwd)

                #6. 获取当前文件的名称
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done
#修改脚本xsync的执行权限
[hadoop@hadoop1 bin]$ chmod +x xsync
#测试脚本
[hadoop@hadoop1 ~]$ xsync /home/hadoop/bin
#将脚本复制到/bin中,以便全局调用
[hadoop@hadoop1 bin]$ sudo cp xsync /bin/
#同步环境变量配置(root所有者)
[hadoop@hadoop1 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh
#让环境变量生效
[hadoop@hadoop2 bin]$ source /etc/profile
[hadoop@hadoop3 opt]$ source /etc/profile

参考文章

搭建内网yum源
尚硅谷数仓4.0

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐