大数据集群保姆级安装教程——Centos集群(vagrant+virtualbox篇)
操作系统与软件版本介绍:
项目 | 版本 |
---|---|
操作系统 | windows 10 x64 |
Vagrant | vagrant_2.2.19_windows_amd64.msi |
VirtualBox | VirtualBox-6.1.42-155177-Win.exe |
一、Vagrant 安装教程
1.1 Vagrant 下载
进入下载页面下载对应版本:https://www.vagrantup.com/downloads,外网下载可能比较慢,推荐使用IDM下载器,会快很多,下载后会得到一个安装程序 vagrant_2.2.19_windows_amd64.msi
。
1.2 Vagrant 软件安装
- 双击运行
vagrant_2.2.19_windows_amd64.msi
进入安装环节。
- 安装过程比较漫长,安心等待即刻。
- 选择 No 不重启
安装结束,下面进行环境变量配置,指定 Vagrant 的数据文件存放路径(box、data、gems等)。
1.3 Vagrant 环境变量配置
Vagrant 在执行命令的时候会尝试访问 %userprofile%\.vagrant.d
,这个文件夹中会存放 Vagrant 相关的命令和下载的镜像,默认为 C:\Users\用户名\.vagrant.d
。
注意:存储路径不要有中文,如果
.vagrant.d
文件夹的存放路径包含中文路径,那么 Vagrant 在使用过程中可能会出错,毕竟是国外的产品,安装路径最好不要包含中文路径。
在环境变量中指定 VAGRANT_HOME
配置项,并关联 .vagrant.d
文件夹的位置,本文配置的路径是:D:\PF\Vagrant\.vagrant.d\
。
注意是在用户变量中配置,不要在系统变量中配置,虽然我没试过有什么区别,但是尽量和博主保持一致。至此 Vagrant 安装教程结束,下面介绍 Virtualbox 安装教程。
二、VirtualBox 安装教程
2.1 VirtualBox 下载
官方下载地址:https://www.virtualbox.org/wiki/Downloads,与 Vagrant 一样,建议使用IDM下载,会更快一些。
2.2 VirtualBox 安装
- 双击运行
VirtualBox-6.1.42-155177-Win.exe
进入安装界面:
- 选择 VirtualBox Application 并修改安装位置,安装路径最好不要携带中文路径。
这里安装过程中会提醒安装 Oracle Corporation 通用串行总线控制器
,安装即可,不然后续不能打开 VirtualBox 软件,我这里可能是安装过的原因,没有出现提示。
2.3 配置虚拟机默认安装地址
- 打开全局设置,配置虚拟机安装地址,默认是存放到 C 盘,这里我改到了
F:\VirtualBox Vms
其他配置按照需求修改即可,VirtualBox 只是一个虚拟机的供应者,后面都是使用 Vagrant 进行操作,很少使用 VirtualBox。
三、安装一个 centos 7 系统
3.1 安装 VirtualBox 体系下的 Vagrant Box
Vagrant 管理工具中的系统都是 Box 的概念,类似直接虚拟机管理软件直接使用 iso 镜像文件。
首先到 Vagrant 官网中下载一个 VirtualBox 体系下的 centos/7.box
文件,官网地址:https://app.vagrantup.com/boxes/search
下载完后会得到一个 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
虚拟机的默认用户是 vagrant
, root
用户的密码是 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 ssh | ssh登陆虚拟机 |
vagrant suspend | 挂起虚拟机 |
vagrant reload | 重启虚拟机 |
vagrant halt | 关闭虚拟机 |
vagrant status | 查看虚拟机状态 |
vagrant destroy | 删除虚拟机 |
vagrant package --output xxx.box | 打包分发 |
vagrant package —output xxx.box --base “自己的box” |
四、安装Centos集群
集群规划如下:
hadoop102 | hadoop103 | hadoop104 | |
---|---|---|---|
IP地址 | 192.168.10.101 | 192.168.10.102 | 192.168.10.103 |
登录用户 | root、vagrant、atguigu | root、vagrant、atguigu | root、vagrant、atguigu |
登录密码 | vagrant | vagrant | vagrant |
软件安装 | net-tools、vim-enhanced、sshpass | net-tools、vim-enhanced、sshpass | net-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搭建hadoop环境 - 简书 (jianshu.com)
Vagrantfile详细说明 - 简书 (jianshu.com)
vagrantfile详解_raoxiaoya的博客-CSDN博客
Vagrant 与 VirtualBox 的保姆级安装教程_virtualbox vagrant_Jacks丶的博客-CSDN博客