基于云服务器的数仓搭建-服务器配置

发布于:2025-03-28 ⋅ 阅读:(21) ⋅ 点赞:(0)

购置三台云服务器,总支出353/年,华为云/百度云/ucloud的新用户优惠(阿里云的之前用掉了,现在买2c2g要900多)。

finalshell连接三台服务器,ssh,输入用户名和密码即可连接成功,服务器侧22端口打开

FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本4.5.12,更新日期2024.10.30 - FinalShell官网

epel-release、net-tool、vim安装--服务器都默认已安装

#检查有无安装,未安装会提示未安装
rpm -q epel-release
rpm -q net-tools
rpm -q vim-enhanced
# 安装命令
yum install -y epel-release
yum install -y net-tools
yum install -y vim

关闭防火墙及自启-

systemctl stop firewalld
systemctl disable firewalld.service

在/opt目录下创建module、software

mkdir /opt/module /opt/software

卸载虚拟机自带的JDK,没有安装忽略这个步骤--默认未装

# 检查有无安装。选其中一个即可,无安装时,第一个没有返回结果,第二个命令会报命令未发现
rpm -qa | grep -i java
java -version
# 卸载命令
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
#  rpm -qa:查询所安装的所有rpm软件包
#  grep -i:忽略大小写
#  xargs -n1:表示每次只传递一个参数
#  rpm -e –nodeps:强制卸载软件

修改主机名

# 查看主机名,执行一个即可
hostname
hostnamectl
cat /etc/hostname
# baidu instance-g3ujf8wq 
# 180.76.xx
# 修改主机名称
vim /etc/hostname
hadoop2
#非重启生效,执行下述命令
hostnamectl set - hostname hadoop2
# 重启,now换成+5为5分钟后
shutdown -r now
reboot
# 华为 hcss-ecs-3706
# 113.45.xx
hadoop1
# ucloud 原主机名:10-13-134-222
# 106.75.xx
hadoop3
# 映射ip和主机名,本地通信映射(将当前主机对应host修改为内部ip地址)
vim /etc/hosts
#汇总
113.45.xx hadoop1
180.76.xx hadoop2
106.75.xx hadoop3

添加环境变量路径:home/alpfree/bin

# echo $PATH 命令输出的是当前用户环境下的 PATH 环境变量值,当您尝试运行一个命令时,如果命令存在于上述任何一个目录中,那么这个命令就会被执行
echo $PATH
# 服务器上执行后返回: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin(最后一个目录其实不存在)
# 创建文件夹,并添加为环境变量 home/alpfree/bin
mkdir -p /home/alpfree/bin
# 编辑 .bashrc 或 .bash_profile,以 .bashrc 为例(隐藏文件默认看不到)
# 文件末尾添加以下内容 
export PATH=$PATH:/home/alpfree/bin
# 输入 : 进入命令行模式,输入 wq 然后按回车键,这代表写入(保存)并退出
# 重新加载配置文件,~代表当前用户的主目录
vim ~/.bashrc
source ~/.bashrc
# 查看 .bashrc 命令 
ls -a ~

编写集群分发脚本xsync

# 循环复制文件到所有节点的相同目录下
# rsync命令原始拷贝,将本地 /opt/module 目录同步到名为 hadoop103 的远程服务器的 /opt/ 目录下
rsync  -av     /opt/module           root@hadoop103:/opt/
# -av 
# -a:归档模式,表示递归同步且保持文件属性等信息。
# -v:详细模式,显示同步过程的详细信息。
# 源路径为 /opt/module,意味着将此目录下的所有内容作为同步的源。
# 目标路径 root@hadoop103:/opt/ 表示通过 SSH 连接到 hadoop103 服务器,以 root 用户身份,将文件同步至该服务器的 /opt/ 目录

在home/alpfree/bin创建xsync

vim xsync

#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
# 创建完成后,赋予权限
chmod 777 xsync
# 验证,显示未找到命令,则未安装
xsync xsync
#检查和安装,验证
rpm -q rsync
sudo yum install rsync
rsync --version

无密登录配置

# 现机器hadoop1,配置的是NameNode,hadoop2配置的是ResourceManager,都要求对其他节点无密访问
# 生成公钥和私钥,然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
# 会在用户主目录下的.ssh文件夹中生成
ssh-keygen -t rsa
# 将h1公钥拷贝到要免密登录的目标机器上,其中要输入密码
ssh-copy-id hadoop1
ssh-copy-id hadoop2
ssh-copy-id hadoop3
# hadoop2生成公钥和私钥
ssh-keygen -t rsa
#将h2公钥拷贝到要免密登录的目标机器上
ssh-copy-id hadoop1
ssh-copy-id hadoop2
ssh-copy-id hadoop3

在h1上安装jdk

# 将jdk导入到/opt/software文件夹下面
finalshell
# 查看导入是否成功
ls /opt/software/
# 解压到/opt/module目录下, -C 将文件放置到指定的目录中
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
# 配置JDK环境变量,新建/etc/profile.d/my_env.sh文件,
# /etc/profile.d 目录主要用于存放系统环境变量和 shell 配置脚本
vim /etc/profile.d/my_env.sh
# 添加如下内容
#原文档错误 export JAVA_HOME=/opt/module/jdk-1.8.0
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
# 让环境变量生效
source /etc/profile.d/my_env.sh
# 检查是否安装成功
java -version

分发jdk

# 分发JDK
xsync /opt/module/jdk1.8.0_212
# 分发环境变量配置文件
sudo /home/alpfree/bin/xsync /etc/profile.d/my_env.sh
# 分别在hadoop2、hadoop2上执行sourc
source /etc/profile.d/my_env.sh

参考资料

海波老师-电商数仓