大数据集群保姆级安装教程——Centos集群(vagrant+virtualbox篇)

大数据集群保姆级安装教程——Centos集群(vagrant+virtualbox篇)

操作系统与软件版本介绍:

项目版本
操作系统windows 10 x64
Vagrantvagrant_2.2.19_windows_amd64.msi
VirtualBoxVirtualBox-6.1.42-155177-Win.exe

一、Vagrant 安装教程

1.1 Vagrant 下载

进入下载页面下载对应版本:https://www.vagrantup.com/downloads,外网下载可能比较慢,推荐使用IDM下载器,会快很多,下载后会得到一个安装程序 vagrant_2.2.19_windows_amd64.msi

image-20230311085253431

1.2 Vagrant 软件安装

  • 双击运行 vagrant_2.2.19_windows_amd64.msi 进入安装环节。

https://gitee.com/yiluohan1234/pic-go-img/raw/master/img/install/202303082212559.png

https://gitee.com/yiluohan1234/pic-go-img/raw/master/img/install/202303082212216.png

https://gitee.com/yiluohan1234/pic-go-img/raw/master/img/install/202303082212351.png

  • 安装过程比较漫长,安心等待即刻。

https://gitee.com/yiluohan1234/pic-go-img/raw/master/img/install/202303082212411.png

https://gitee.com/yiluohan1234/pic-go-img/raw/master/img/install/202303082212771.png

https://gitee.com/yiluohan1234/pic-go-img/raw/master/img/install/202303082214907.png

  • 选择 No 不重启

https://gitee.com/yiluohan1234/pic-go-img/raw/master/img/install/202303082215305.png

安装结束,下面进行环境变量配置,指定 Vagrant 的数据文件存放路径(box、data、gems等)。

1.3 Vagrant 环境变量配置

Vagrant 在执行命令的时候会尝试访问 %userprofile%\.vagrant.d,这个文件夹中会存放 Vagrant 相关的命令和下载的镜像,默认为 C:\Users\用户名\.vagrant.d

注意:存储路径不要有中文,如果 .vagrant.d 文件夹的存放路径包含中文路径,那么 Vagrant 在使用过程中可能会出错,毕竟是国外的产品,安装路径最好不要包含中文路径。

image-20230311085810816

在环境变量中指定 VAGRANT_HOME 配置项,并关联 .vagrant.d 文件夹的位置,本文配置的路径是:D:\PF\Vagrant\.vagrant.d\

https://gitee.com/yiluohan1234/pic-go-img/raw/master/img/install/202303082219071.png

注意是在用户变量中配置,不要在系统变量中配置,虽然我没试过有什么区别,但是尽量和博主保持一致。至此 Vagrant 安装教程结束,下面介绍 Virtualbox 安装教程。

二、VirtualBox 安装教程

2.1 VirtualBox 下载

官方下载地址:https://www.virtualbox.org/wiki/Downloads,与 Vagrant 一样,建议使用IDM下载,会更快一些。

Untitled

2.2 VirtualBox 安装

  • 双击运行 VirtualBox-6.1.42-155177-Win.exe 进入安装界面:

Untitled

  • 选择 VirtualBox Application 并修改安装位置,安装路径最好不要携带中文路径。

Untitled

Untitled

Untitled

Untitled

这里安装过程中会提醒安装 Oracle Corporation 通用串行总线控制器,安装即可,不然后续不能打开 VirtualBox 软件,我这里可能是安装过的原因,没有出现提示。

Untitled

Untitled

2.3 配置虚拟机默认安装地址

  • 打开全局设置,配置虚拟机安装地址,默认是存放到 C 盘,这里我改到了F:\VirtualBox Vms

Untitled

其他配置按照需求修改即可,VirtualBox 只是一个虚拟机的供应者,后面都是使用 Vagrant 进行操作,很少使用 VirtualBox。

三、安装一个 centos 7 系统

3.1 安装 VirtualBox 体系下的 Vagrant Box

Vagrant 管理工具中的系统都是 Box 的概念,类似直接虚拟机管理软件直接使用 iso 镜像文件。

首先到 Vagrant 官网中下载一个 VirtualBox 体系下的 centos/7.box 文件,官网地址:https://app.vagrantup.com/boxes/search

https://gitee.com/yiluohan1234/pic-go-img/raw/master/img/install/202303082251988.png

下载完后会得到一个 box 文件 CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box,把它修改个短点的名字方便使用,然后保存备用,这里将它改名为 centos7,存放到 D:\PF\VagrantBox\ 文件夹下,此时它的文件路径为:D:\PF\VagrantBox\centos7.box。

  • 打开命令行窗口(cmd),然后将它添加到 Vagrant 管理的 Box 列表中:
vagrant box add centos7 D:\PF\VagrantBox\centos7.box

centos7 是为 box 取的名字,供后续创建虚拟机。

  • 查看是否添加成功
vagrant box list

3.2 创建一个虚拟机

这里我先创建一个存放 Vagrantfile 的文件夹:D:\PF\VagrantBox\centos7\,然后打开 cmd 命令行窗口进入这个目录,执行后续命令:

  • 创建虚拟机
vagrant init centos7

centos7 是前面为 box 取的名字,命令执行完后会在文件夹中生成一个 Vagrantfile 文件,可以在里面配置虚拟机相关信息,里面得注释虽然是英文的,但是十分详细,都是基于 Ruby 语法书写的。这里不作展开,只做基本配置,去掉注释文件后的 Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "centos7"             # box 名称
  config.vm.hostname = "centos7"        # 虚拟机名称
  config.vm.box_check_update = false    # 盒子不检查更新
  config.vm.network "private_network", ip: "192.168.33.10"  # 配置成私有网络,类似主机模式
  # 虚拟机供应者参数配置,相当于在 virtualbox 中配置
  config.vm.provider "virtualbox" do |vb|
    vb.name = "centos7" # 虚拟机名称
    vb.gui = false      # 启动机器时显示 VirtualBox GUI
    vb.memory = "2048"  # 虚拟机存储大小,mb
    vb.cpus = 2         # cpu 大小
  end
end

完成配置后,下面启动虚拟机contos7,启动过程中可以看到虚拟机的一些基本配置信息:

vagrant up
  • 前面配置的私有IP地址,在宿主机上能够 ping 通,说明启动成功。

3.3 进入虚拟机

vagrant ssh

虚拟机的默认用户是 vagrantroot 用户的密码是 vagrant

进入后就可以像 centos7 一样使用命令行操作了,不过使用 cmd 不太方便,推荐使用 Xshell 配合 Xftp 进行操作,都有免费的教育版本。

相比于虚拟机管理软件使用 iso 镜像文件安装虚拟机,使用 Vagrant 管理工具就方便太多了,安装教程到此结束。

3.4 注意事项

  • 每次启动虚拟机需要使用命令行(cmd)进入 Vagrantfile 文件所在的目录,然后再使用 vagrant up 命令启动虚拟机。
  • 关机同理,使用命令行(cmd)进入 Vagrantfile 文件所在的目录,然后再使用 vagrant halt 命令关闭虚拟机。
  • 本文中 centos7 虚拟机的 Vagrantfile 的存放路径是 D:\PF\Vagrantfile\centos7,所以我每次都会用 cmd 进入 D:\PF\Vagrantfile\centos7 这个目录,然后使用 vagrant up 开机,使用 vagrant halt 关机。

3.5 Vagrant常用命令

命令解释
vagrant box list查看目前已有的box
vagrant box add [自定义名称] [box镜像路径]新增加一个box
vagrant box remove删除指定box
vagrant init初始化配置vagrantfile
vagrant up启动虚拟机
vagrant sshssh登陆虚拟机
vagrant suspend挂起虚拟机
vagrant reload重启虚拟机
vagrant halt关闭虚拟机
vagrant status查看虚拟机状态
vagrant destroy删除虚拟机
vagrant package --output xxx.box打包分发
vagrant package —output xxx.box --base “自己的box”

四、安装Centos集群

集群规划如下:

hadoop102hadoop103hadoop104
IP地址192.168.10.101192.168.10.102192.168.10.103
登录用户root、vagrant、atguiguroot、vagrant、atguiguroot、vagrant、atguigu
登录密码vagrantvagrantvagrant
软件安装net-tools、vim-enhanced、sshpassnet-tools、vim-enhanced、sshpassnet-tools、vim-enhanced、sshpass

4.1 创建Centos集群安装的VagrantFile文件

创建vagrantfile所在文件夹,并创建文件Vagrantfile,其中VagrantFile是vagrant的启动配置文件。

mkdir /vagrant_centos_cluster
touch VagrantFile

编辑VagrantFile文件, 内容如下:

# -*- mode: ruby -*-
# vi: set ft=ruby :

# build centos
$init_script = <<-SCRIPT
#!/bin/bash

# ssh 设置允许密码登录
# sed -i 's@^PasswordAuthentication no@PasswordAuthentication yes@g' /etc/ssh/sshd_config
# sed -i 's@^#PubkeyAuthentication yes@PubkeyAuthentication yes@g' /etc/ssh/sshd_config
systemctl restart sshd.service

# yum install -y -q net-tools
# yum install -y -q vim-enhanced.x86_64
# yum install -y -q sshpass

# 增加 atguigu 用户
useradd atguigu -g hadoop -d /home/atguigu
# 为atguigu用户设置密码vagrant
echo vagrant | passwd --stdin atguigu
# 配置vagrant用户具有root权限
sed -i "/## Same thing without a password/ivagrant   ALL=(ALL)     NOPASSWD:ALL" /etc/sudoers

#---hosts---
cat >> /etc/hosts <<EOF
192.168.10.101  hadoop102
192.168.10.102  hadoop103
192.168.10.103  hadoop104
EOF

# 创建安装目录
mkdir /opt/module
chown -R vagrant:vagrant /opt
SCRIPT

Vagrant.configure("2") do |config|
  # 设置主机与虚拟机的共享目录
  #config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
  # https://stackoverflow.com/questions/22922891/vagrant-ssh-authentication-failure
  #config.ssh.private_key_path = "~/.ssh/id_rsa"
  #config.ssh.forward_agent = true
  numNodes = 3
  nodeRange = 1..3
  (nodeRange).each do |i|
    config.vm.define "hadoop10#{i+1}" do |node|
      # 设置虚拟机的Box,https://app.vagrantup.com/boxes/search
      # https://github.com/geerlingguy/ansible-vagrant-examples
      # https://github.com/rootsongjc/kubernetes-vagrant-centos-cluster
      node.vm.box = "centos/7"
      # 设置虚拟机的Box的版本号:1804.02
      node.vm.box_version = "2004.01"
      # 设置虚拟机的主机名:hadoop102
      # node.vm.hostname="hdp10#{i}"
      node.vm.hostname="hadoop10#{i+1}"
      # 虚拟机的默认登录名和密码:"vagrant","vagrant"
      # node.ssh.username = "vagrant"
      # 设置虚拟机的登录密码
      # node.ssh.password = "vagrant"
      # 是否通过公私钥来登录虚拟机, 默认为true,如果为True,可能会出现一直Warning: Authentication failure. Retrying...
      node.ssh.insert_key = false
      # 设置虚拟机的IP
      node.vm.network "private_network", ip: "192.168.10.#{100+i}"

      # VirtaulBox相关配置
      node.vm.provider "virtualbox" do |v|
        # 设置虚拟机的名称
        # v.name = "hdp10#{i}"
        v.name = "hadoop10#{i+1}"
        # 设置虚拟机的内存大小
        v.memory = 2048
        # 设置虚拟机的CPU个数
        v.cpus = 1
      end

      # 使用shell脚本进行软件安装和配置
      node.vm.provision "shell", inline: $init_script
    end
  end
end

4.2 启动虚拟机

vagrant会自动下载box并安装shell脚本内容进行安装配置。

vagrant up

4.3 登录,验证配置是否正确

正常启动后,我们就可以使用以下命令直接登录到虚拟机或者使用SecureCRT、 Tabby 等终端工具登录查看。

vagrant ssh hadoop102

五、参考链接

Vagrant 官网地址

Vagrant Box 地址

VirtualBox 官网地址

使用vagrant搭建hadoop环境 - 简书 (jianshu.com)

Vagrantfile详细说明 - 简书 (jianshu.com)

vagrantfile详解_raoxiaoya的博客-CSDN博客

vagrantfile 详解_戴国进的博客-CSDN博客

Vagrant 与 VirtualBox 的保姆级安装教程_virtualbox vagrant_Jacks丶的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yiluohan0307

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值