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

news2025/7/19 10:15:52

大数据集群保姆级安装教程——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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/404943.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一天搞定《AI工程师的PySide2 PyQt5实战开发手册》

PySide2/PySide6、PyQt5/PyQt6&#xff1a;都是基于Qt 的Python库&#xff0c;可以形象地这样说&#xff0c;PySide2 是Qt的 亲儿子(Qt官方开发的) &#xff0c; PyQt5 是Qt还没有亲儿子之前的收的 义子 &#xff08;Riverbank Computing这个公司开发的&#xff0c;有商业版权限…

vscode通过ssh连接ubuntu系统

折腾了好久&#xff0c;终于能够远程连上了&#xff0c;开心的记录一下哈哈( •̀ ω •́ )✧ 1.Ubuntu端 先把虚拟机网络适配器改为桥接模式。 通过ifconfig命令查看虚拟机的IP地址&#xff0c;如果没有该命令则先安装net-tools&#xff0c;记录当前的IP地址。 rootRobotM…

ROS项目的GDB调试

首先安装gdb和xterm sudo apt install xterm Ubuntu系统一般默认自带gdb&#xff0c;通过 gdb -v 看看有没有输出&#xff0c;有版本输出则已安装&#xff0c;就不用再安装了 sudo apt install gdb 开启编译选项 使用Debug调试&#xff0c;首先需要在程序编译时 加上debu…

自主HttpServer实现(C++实战项目)

文章目录项目介绍CGI技术概念原理设计框架日志文件TCPServer任务类初始化与启动HttpServerHTTP请求结构HTTP响应结构线程回调EndPoint类EndPoint主体框架读取HTTP请求处理HTTP请求CGI处理非CGI处理构建HTTP响应发送HTTP响应接入线程池简单测试项目扩展项目介绍 该项目是一个基…

Python 算法交易实验53 Step2.1 Signals 信号生成

说明 上次提到了基于传统的趋势法构建一组基础信号的方法&#xff0c;并做了简单的交易测算。本次计划对方法和测算做一下Review&#xff0c;同时明确接下来基于ADBS(Step2)进行承接时需要计算的数据。 内容 1 方法回顾 传统的趋势方法(SMA-LMA)采用“短线上升且突破长线买…

Spring Security Oauth2以及整合sso

Oauth2认证 第三方认证技术方案最主要是解决认证协议的通用标准问题&#xff0c;因为要实现跨系统认证&#xff0c;各系统之间遵循一定的接口协议。 Oauth协议为用户资源授权提供了一个安全的&#xff0c;开放的而又简单的标准&#xff0c;同时&#xff0c;任何第三方都可以使用…

【Linux系统编程】08:信号量

信号量 OVERVIEW信号量1.mmap内存映射2.semget信号量获取3.semctl信号量控制4.semop信号量操作5.使用案例1.mmap内存映射 mmap映射的是磁盘中的文件&#xff0c;而共享内存是将内存映射到用户的进程空间中 原型&#xff1a;void *mmap(void *addr, size_t length, int prot, …

DHCP中继配置

1. 实验目的 熟悉DHCP中继的应用场景掌握DHCP中继的配置方法2. 实验拓扑 DHCP中继配置实验拓扑如图15-10所示: 图15-10:DHCP中继配置 3. 实验步骤 IP地址的配置AR1的配置 <Huawei>system-view

VCO pulling

这次调试项目 目前复现的问题 2.4g干扰到5g 问题就是2.4g 5g 同时发包&#xff0c;5g evm直接从37-38变成33-34 于是我对vco-pulling做了一个小结 VCO pulling是指当一个外部信号对振荡器的频率产生影响时&#xff0c;振荡器的频率将被拉动或偏移。这种现象通常会在无线电通…

SpringBoot嵌入式Servlet容器 相关学习笔记

大家都知道SrpingBoot是内嵌Servlet容器的&#xff0c;并且默认是Tomcat&#xff0c;本文主要讲一下其中原理。   首先&#xff0c;SpringBoot是支持其它容器的&#xff0c;除了Tomcat外&#xff0c;还有Undertow&#xff0c;Netty以及Jetty。并且这些容器经过封装&#xff0c…

KAT: A Knowledge Augmented Transformer for Vision-and-Language

Paper name KAT: A Knowledge Augmented Transformer for Vision-and-Language Paper Reading Note URL: https://arxiv.org/pdf/2112.08614.pdf TL;DR 2022 NAACL 论文&#xff0c;提出了 Knowledge AugmentedTransformer (KAT)&#xff0c;提出了一种同时利用显式和隐式…

记录第一次安装部署datadonphon遇到的坑和解决办法

故事开始之前&#xff0c;我在3台服务器里新建了一个abin用户&#xff0c;3台服务器都用abin和root账号做了免密登录。故事开始了......按照官网文档一顿操作猛如虎到了配置集群了。那就配置呗&#xff0c;点它。仔细阅读了提示&#xff0c;嗯&#xff0c;明白它的意思了。来吧…

Python进阶-----高阶函数->filter() 函数

目录 前言&#xff1a; filter() 函数介绍 filter() 函数使用示例 1.与循环对比 2.与lambda函数综合使用 3.使用None过滤False 4.过滤字典相关数据 前言&#xff1a; 家人们&#xff0c;当你们获取了一个序列的时候&#xff0c;想要把一些内容去掉&#xff0c;保留一部分…

《JavaEE》进程和线程的区别和联系

&#x1f451;作者主页&#xff1a;Java冰激凌 &#x1f4d6;专栏链接&#xff1a;JavaEE 目录 进程是什么&#xff1f; 线程是什么&#xff1f; 进程和线程之间的联系~ ps1&#xff1a;假设我们当前的大兴国际机场有一条登机口可以登入飞机 ps2&#xff1a;我们为…

运动员最佳匹配问题(详解)

一、问题描述 羽毛球队有男女运动员各n人。给定2个nn矩阵P和Q。 P[i][j]是男运动员i的女运动员j配对组成混合双打的男运动员竞赛优势&#xff1b;Q[i][j]是女运动员i和男运动员j配对的女运动员竞赛优势。由于技术配合和心理状态等各种因素影响&#xff0c;P[i][j]不一定等于Q[…

LearnOpenGL-光照-6.多光源

本人刚学OpenGL不久且自学&#xff0c;文中定有代码、术语等错误&#xff0c;欢迎指正 我写的项目地址&#xff1a;https://github.com/liujianjie/LearnOpenGLProject 文章目录前言例子代码没有聚光灯效果有聚光灯效果前言 此节目的 综合2.5投光物&#xff0c;在此节实现一个场…

超越语言界限,ChatGPT进化之路——Visual ChatGPT

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️&#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

操作系统复习

熟练掌握操作系统的定义&#xff0c;操作系统的特征&#xff0c;操作系统的功能熟练掌握多道程序设计的概念&#xff0c;单道程序设计和多道程序设计的区别&#xff0c;多道程序设计的优点熟悉操作系统接口的主要功能&#xff0c;系统调用的基本概念、类型、实现。操作系统接口…

【Mysql】库的操作

一、sql分类 1.DDL&#xff08;Data Defination Language&#xff09;数据定义语言 定义数据时候使用的sql语言 creat:建表、drop:删表、alter:改变 2.DML&#xff08;Data Manipulation Language&#xff09;数据操纵语言 对数据进行操作的sql语言 insert:插入、delet…

【打造家庭服务器系列03】Frp 实现内网穿透

一、概述 为什么要搞frp&#xff0c;因为我们的服务器处于家里面的网络&#xff0c;是没有公网IP的&#xff0c;所以直接通过ssh连接服务器&#xff0c;此时就需要一个中转来实现转发。 二、服务端配置 - Frp Server 以腾讯云为例&#xff0c;阿里云也一样。Frp 官方文档 -…