【大数据数仓项目集群配置 一】
大数据数仓项目服务器基础配置
本文用于记录我的第一次内网大数据集群配置过程。
本篇主要实现基础配置。
配置使用的软件版本和脚本参考自尚硅谷,链接如下:
链接: https://www.bilibili.com/video/BV1rL411E7uz?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click
hadoop集群搭建 【大数据数仓项目集群配置 二】
大数据数仓项目集群配置
服务器及软件版本
服务器名称 | IP |
---|---|
hadoop01 | 192.168.10.100 |
hadoop1 | 192.168.10.101 |
hadoop2 | 192.168.10.102 |
hadoop3 | 192.168.10.103 |
每台服务器配置64G内存,1T硬盘。(学习用模板机器最好配置4G内存,50G硬盘。)
软件名称 | 软件版本 |
---|---|
jdk | 1.8.0_212 |
hadoop | 3.1.3 |
zookeeper | 3.5.7 |
mysql | 5.7.26 |
hive | 3.1.2 |
spark | 3.0.0 |
hbase | 2.0.5 |
sqoop | 1.4.6 |
kylin | 3.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
参考文章
更多推荐
所有评论(0)