搭建Spark实战环境(3台linux虚拟机集群)(一)样板机的搭建

2023-05-16

系统及软件配置

系统配置

内存:16g 2400
cpu:i5 9400F

软件配置

  • Windows 10 1903版本
  • VMware workstation 15.10
  • CentOS centos-release-7-7.1908.0.el7.centos.x86_64
  • Java jdk-8u241-linux-x64.tar.gz
  • Scala scala-2.11.8.tgz

值得一提的是,win10 1903版本与VMware 15.10之前的版本不兼容,会出现卡死(虚拟机繁忙)的问题,该问题在15.10版本解决。
资源来源于网络:
VMware 15.10 链接:https://pan.baidu.com/s/1bpF3M1V3qPydQgGl-hUC1g 提取码:sb8t
CentOS 7.7 链接:https://pan.baidu.com/s/1xFOlCvNrmXXwciVNOL2Pew 提取码:wxdx
Java jdk-8u241-linux-x64.tar.gz 链接:https://pan.baidu.com/s/1E1TyObvyO6iQUW44lTCqDQ 提取码:6xw9
Scala scala-2.11.8.tgz 链接:https://pan.baidu.com/s/1TQB-wnffHh0i2aqzzfSi6A 提取码:iowh

安装前的准备

查看Windows下的网络配置

以Windows 10 1903为例(windows下控制台输入“winver”可以看自己windows版本),在控制面板->网络和Internet->网络连接中,可以看到本机上的网络配置。本次搭建这个集群,我们需要虚拟机和物理机(也就是windows)共用一个网络,所以需要使用桥接模式。
在这里插入图片描述
本人电脑联网时使用的是这个WLAN 2,它使用的网卡是Realtek 8821AE … 的,记住这个名字。

配置VMware 虚拟网络编辑器

使用管理员权限打开VMware,菜单栏的编辑->虚拟网络适配器:将桥接模式的“桥接到”指向刚才记下的Realtek 8821AE,点击确定保存配置。
在这里插入图片描述
同时还要记住我WLAN 2这张网卡的网络配置信息:(windows cmd输入ipconfig查看)
在这里插入图片描述

集群及网络配置

根据刚才WLAN 2网络配置信息可知,我的虚拟机的网卡只能配置为192.168.3.***。
你得根据自己网卡上的网络配置去修改虚拟机网卡配置。

序号IP地址机器名运行进程核数/内存用户名
1192.168.3.30masterNN/SNN/DN/RM
Master/Worker
1核/3Gspark
2192.168.3.31slave1DN/NM/Worker1核/2Gspark
3192.168.3.32slave2DN/NM/Worker1核/2Gspark

用到的目录:
/app,/app/soft,/app/compile,/app/spark,/home/spark

开始安装

搭建集群样板机

在VMware中安装CentOS

新建虚拟机

菜单栏,文件->新建虚拟机
文件->新建虚拟机
选择刚才下载的CentOS镜像:
在这里插入图片描述
一路下一步到这里,点击“自定义硬件”把内存调成3G,网络适配器调成桥接模式,然后完成并启动。
在这里插入图片描述
按↑键,选中Install CentOS 7,再按Enter键开始安装。
在这里插入图片描述

安装CentOS 7

选择语言简体中文后,进入到这个界面:
点击这个“软件选择”,进入选择界面:
在这里插入图片描述
勾选GNOME桌面,然后自定义勾选需要的附加选项,我这里只选了“兼容性程序库”和“系统管理工具”,之后如果有缺少软件的话,之后再补装就好。点击左上角完成。
在这里插入图片描述
选择网络和主机名,可以配置网络。
在这里插入图片描述

配置网络

打开以太网的连接,然后点击“配置”,切到IPv4设置,输入刚才我定义的第一台虚拟机的ip地址192.168.3.30,子网掩码255.255.255.0,网关和物理机windows一样192.168.3.1(见前文),最后附加DNS服务器填入谷歌提供的8.8.8.8。
在这里插入图片描述
然后点一下安装位置,选择自动分区,再回来就可以点“开始安装”了。
在这里插入图片描述

设置用户

安装过程中,可以设置root和用户,简单设置吧以免忘记密码。
在这里插入图片描述
以下是我设置的root和用户(仅做学习之用,也以防忘记密码):

用户密码
rootroot
sparkspark

由于密码太过简单,我们需要多按一次左上角的“完成”。
值得一提的是,如果不在这里设置root和用户,在安装结束后设置的话,系统会要求你设置比较复杂的密码。
静静等待其安装完。

重启,然后接受许可证,点完成,使用spark用户登录,再简单配置下,就正式进入系统。

测试网络

点击应用程序->Firefox,然后访问百度,如果成功则网络连接正常。
在这里插入图片描述

设置机器名

用root使用vi /etc/sysconfig/network中设置内容如下:

NETWORKING=yes
HOSTNAME=master

至此,CentOS安装完成。

设置Host映射文件

/etc/hosts内保存了网址域名/机器名与其对应的ip地址建立关联的一个“数据库”,我们根据集群规划配置:
以root的身份(先su root然后输入root的密码)在命令行用#vi /etc/hosts打开配置文件,然后按小写字母i,输入以下内容然后按Esc + :wq回车保存:

192.168.3.30 master
192.168.3.31 slave1
192.168.3.32 slave2

设置完毕后,用#ping master看看master是否连通及检测服务器响应速度。
在这里插入图片描述
在这里插入图片描述

关闭防火墙和SELinux

关闭防火墙和SELinux的原因在于Hadoop和Spark运行过程中需要使用端口进行通信,而这些安全设施会阻拦。关闭方法:
关闭iptables时,使用root登录,在命令行终端使用#service iptables status查看iptables状态,如果显示“iptables: Firewall is not running”则iptables已关闭,如果显示iptables的配置信息,则使用如下命令关闭iptables:

chkconfig iptables off

同样,用root用户在终端使用#vi /etc/SELinux/config打开配置文件,设置SELINUX=disable,注意需要重启才生效。
然而在我们虚拟机上并没有iptables:
在这里插入图片描述
SELinux设置为disable。
在这里插入图片描述

配置运行环境

更新OpenSSL

CentOS自带的OpenSSL存在bug,所以我们使用如下命令更新

yum update openssl

当然了我自己跑了一下并没有看到需要更新,也许centos7修复了。
在这里插入图片描述

修改OpenSSH配置

在集群环境中需要SSH进行免密码登录,需要修改OpenSSH配置文件,确认使用RSA算法进行公钥加密并确认私钥存放文件等,需要使用root用户,使用vi /etc/ssh/sshd_config打开配置文件,打开以下三个配置项:
在这里插入图片描述
保存修改后使用systemctl restart sshd.service重启服务。

将用户spark加入sudoers中

后面执行中需要使用sudo命令,故将spark加入sudoers文件中,先修改配置文件的权限:chmod u+x /etc/sudoers,再使用vi /etc/sudoers打开文件,在root ALL=(ALL)ALL后加入:

spark ALL=(ALL) ALL

在这里插入图片描述
他虽然说是只读,但是你可以用root编辑,然后使用wq! 加感叹号保存。

创建运行环境所需要的目录结构

mkdir /app
chown -R spark:spark /app
mkdir /app/soft
mkdir /app/compile
mkdir /app/spark
mkdir -p /home/spark/work
chown -R spark:spark /home/spark/work

安装Java和Spark环境

安装和配置JDK

安装一下vmware tools,然后把jdk的包拖进去,放到/home/spark/work中。(这个找一找centos虚拟机安装vmware tools教程吧)
解压该文件并移动到/app/soft中

cd /home/spark/work
tar -zxf jdk-8u241-linux-x64.tar.gz
mv jdk1.8.0_241 /app/soft
ll /app/soft

然后以root执行vi /etc/profile,设置JDK相关配置如下:

export JAVA_HOME=/app/soft/jdk1.8.0_241
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

保存后回到终端,输入source /etc/profile更新全局变量,然后输入java和javac看看是否安装成功。

安装Scala

把scala安装包放入/home/spark/work中。解压该文件并移动到/app/soft中。

cd /home/spark/work
tar -zxf scala-2.11.8.tgz
mv scala-2.11.8 /app/soft
ll /app/soft

然后以root执行vi /etc/profile,设置JDK相关配置如下:

export SCALA_HOME=/app/soft/scala-2.11.8
export PATH=${SCALA_HOME}/bin:$PATH

保存后回到终端,输入source /etc/profile更新全局变量,然后输入scala -version看看是否安装成功。

参考文献

《图解Spark:核心技术与案例实战》https://item.jd.com/12021791.html
VMware设置centos7共享文件夹 https://blog.csdn.net/nesxiaogu/article/details/85274626
vmware-hgfsclient结果为空解决办法 https://blog.csdn.net/qq_43371004/article/details/103101426

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

搭建Spark实战环境(3台linux虚拟机集群)(一)样板机的搭建 的相关文章

  • libcurl实现HTTP

    关于libcurl的相关函数介绍以及参数详见官方说明 https curl haxx se libcurl c example html HTTP Request 一个http请求包含方法 路径 http版本 请求包头 请求方法 GET H
  • 深夜没事,抓个ARP包吧!

    深夜没事 xff0c 抓个ARP包吧 xff01 ipconfig查看网卡信息 选择en33这个网卡 xff0c 发送两次 xff0c 询问192 168 21 1的mac地址 xff0c 注意 xff1a ARP请求只能在同一子网内部进行
  • linux基础篇(一)——GCC和Makefile编译过程

    linux系列目录 xff1a linux基础篇 xff08 一 xff09 GCC和Makefile编译过程 linux基础篇 xff08 二 xff09 静态和动态链接 ARM裸机篇 xff08 一 xff09 i MX6ULL介绍 A
  • jni/ndk问题 :引用so库报错: java.lang.UnsatisfiedLinkError: No implementation found for

    问题 xff1a 引用so库报错 xff1a java span class token punctuation span lang span class token punctuation span UnsatisfiedLinkErro
  • 《python+opencv实践》一、基于颜色的物体追踪(上)

    点击打开链接 本文主要参考国外一大牛博客 xff0c 然后自己修改得来 相关知识点在这里 实现功能 xff1a 追踪红颜色瓶盖 xff0c 并画出瓶盖轮廓和运动轨迹 from collections import deque import
  • C++的sort函数实现字符串排序

    一 背景 sort函数用于C 43 43 中 xff0c 对给定区间所有元素进行排序 头文件是 include lt algorithm gt 实现原理 xff1a sort并不是简单的快速排序 xff0c 它对普通的快速排序进行了优化 x
  • C# 中的Dispose()用法

    一 对Dispose方法的理解是什么呢 xff1f 使用Dispose方法的对象 xff0c 应释放它拥有的所有资源 它还应该通过调用其父类型的Dispose方法释放其基类型拥有的所有资源 net的对象使用一般分为三种情况 1 创建对象 2
  • C++的 remove函数

    一 介绍 remove函数原型如下 xff1a template lt class ForwardIt class T gt ForwardIt remove ForwardIt first ForwardIt last const T a
  • 主板上的南桥与北桥

    一 历史 曾经 xff0c 北桥芯片和南桥芯片都是主板芯片组中最重要的组成部分 传统来说 xff0c 靠上方的叫北桥 xff0c 靠下方的叫南桥 北桥负责与CPU通信 xff0c 并且连接高速设备 xff08 内存 显卡 xff09 xff
  • CMake的add_library与target_link_libraries

    一 add library介绍 使用该命令可以在Linux下生成 xff08 静态 动态 xff09 库so或者 a文件 xff0c Windows下就是dll与lib文件 xff0c 它有两种命令格式 1 1 第一种格式 xff1a No
  • Linux下终止正在执行的shell脚本

    一 问题 Linux系统Shell中提交了一个脚本 xff0c 但是需要停止这个进程 xff0c 如何处理 xff1f 二 方案1 killall fileName 说明 xff1a killall是一个命令 xff0c 不是kill al
  • Qt对象树的销毁

    一 问题 在C 43 43 中中 xff0c 我们都知道 xff1a delete 和 new 必须配对使用 一 一对应 xff1a delete少了 xff0c 则内存泄露 为什么Qt使用new来创建一个控件 xff0c 但是却没有使用d
  • DNS域名解析之递归与非递归查询

    DNS域名解析之递归与非递归查询 递归查询迭代查询实例 递归查询 主机向本地域名服务器的查询一般是递归查询 xff1a 如果本地域名服务器不知道查询的IP地址 xff0c 那么本地域名服务器就会以DNS客户的身份向根域名服务器继续发生请求
  • spi,iic,uart,pcie区别

    一 spi SPI 是英语Serial Peripheral interface的缩写 xff0c 顾名思义就是串行外围设备接口 xff0c 是同步传输协议 xff0c 特征是 xff1a 设备有主机 xff08 master xff09
  • 决策树的介绍

    一 介绍 决策树 decision tree 是一类常见的机器学习方法 它是一种树形结构 xff0c 其中每个内部节点表示一个属性上的判断 xff0c 每个分支代表一个判断结果的输出 xff0c 最后每个叶节点代表一种分类结果 例如 xff
  • 支持向量机

    一 是否线性可分的问题 考虑图6 1中 xff0c A D共4个方框中的数据点分布 xff0c 一个问题就是 xff0c 能否画出一条直线 xff0c 将圆形点和方形点分开呢 xff1f 比如图6 2中 xff0c 方框A中的两组数据 xf
  • cmake 链接库名称扩展

    多个文件 macro span class token punctuation span configure lib by types OUTLIBS DebugSuffix span class token punctuation spa
  • 如何自定义TCP通信协议

    物联网行业智能硬件之间的通信 异构系统之间的对接 中间件的研发 以及各种即时聊天软件等 xff0c 都会涉及自定义协议 为了满足不同的业务场景的需要 xff0c 应用层之间通信需要实现各种各样的网络协议 以异构系统的对接为例 在早期 xff
  • 使用米联客FPGA开发板 固化程序失败

    问题描述 xff1a 使用米联客FPGA ZYNQ7020开发板 xff0c 在利用工程和FSBL生成BOOT bin和fsbl elf文件 烧录FLASH时 xff0c 总是失败 这个问题折腾我小半天 xff0c xff0c 无语了 后来
  • Qt串口接收数据长度不稳定问题

    最近在做一个实时接收数据的项目 xff0c 需要每2ms接收下位机发来的两帧数据 xff0c 算是串口高速接收 在使用的过程中 xff0c 发现串口接收的数据长度不稳定 xff0c 有时长有时短 代码如下 xff1a connect ser

随机推荐

  • git的使用入门

    1 添加个人信息 git config global user name 名字 git config global user email 邮箱 git config global user phone 手机号 查看是否提交 git conf
  • Python-OpenCV之形态学转换

    目标 学习不同的形态学操作 xff0c 例如腐蚀 xff0c 膨胀 xff0c 开运算 xff0c 闭运算等 我们要学习的函数有 xff1a cv2 erode xff0c cv2 dilate xff0c cv2 morphologyEx
  • 在windows10系统中搭建mmdetection(2020.7.19)

    参考博客 https blog csdn net david lee13 article details 102940221 本人使用的版本 python 61 3 6cuda 61 10 0cudnn 61 7 5 1pytorch 61
  • C语言字节对齐详解

    C语言字节对齐12345 不同系统下的C语言类型长度 Data TypeILP32ILP64LP64LLP64char8888short16161616int32643232long32646432long long64646464poin
  • 深入学习卷积神经网络中卷积层和池化层的意义

    xff08 文章转载自 xff1a https www cnblogs com wj 1314 p 9593364 html xff09 为什么要使用卷积呢 xff1f 在传统的神经网络中 xff0c 比如多层感知机 xff08 MLP x
  • 关于LSTM的units参数

    LSTM units input shape 3 1 这里的units指的是cell的个数么 xff1f 如果是 xff0c 按照LSTM原理这些cell之间应该是无连接的 xff0c 那units的多少其意义是什么呢 xff0c 是不是相
  • C语言的queue函数

    转自 xff1a https blog csdn net zhang2622765758 article details 81709820 queue 模板类的定义在 lt queue gt 头文件中 与stack 模板类很相似 xff0c
  • pip/anaconda修改镜像源,加快python模块安装速度

    文章来源 xff1a https blog csdn net leviopku article details 80113021 修改镜像源的原因是pip和conda默认国外镜像源 xff0c 所以每次安装模块pip install 或者
  • Python-PackagesNotFoundError: The following packages are not available from current channels

    Python PackagesNotFoundError The following packages are not available from current channels 转载自 xff1a https blog csdn ne
  • Linux 下静态链接库.a 和动态链接库.so 的生成

    1 库 所谓的库就是一种可执行代码的二进制形式 xff0c 可以被操作系统载入内存执行 2 静态库和动态库 静态库 a 文件的命名方式 xff1a libxxx a 库名前加 lib xff0c 后缀是 a 库名是 xxx 链接时间 xff
  • CSDN如何转载别人的博客

    在参考 如何快速转载CSDN中的博客 后 xff0c 由于自己不懂html以及markdown相关知识 xff0c 所以花了一些时间来弄明白怎么转载博客 xff0c 以下为转载CSDN博客步骤和一些知识小笔记 参考博客原址 xff1a ht
  • 你有一条linux命令学习之解压缩.tar .gz .xz .bz .zip

    下载的包解压还是压缩本地的包 xff0c 都要用到解压缩命令 1 tar tar命令生成的压缩包 1 命令语法 tar xcfvzjJ pathname tar file 2 参数 c 创建包 x 解压包 v 显示解压缩过程 f 指定包名
  • raspberry pi 3 ModelB 更换内核、文件系统初探

    1 镜像烧录 1 下载官方最新镜像 xff1a https www raspberrypi org downloads 2 Win32DiskImager烧录 xff1a https sourceforge net projects win
  • char类型与int类型的相互转换、

    相关知识 xff1a 1 计算机中的一个unsigned char型数据表示0 255 xff0c 而一个signed char型数据表示 128 43 127 xff0c 都是256的数字 这256个数字 xff0c 在计算机的存储单元都
  • 使用printf输出各种格式的字符串

    xfeff xfeff 分类 xff1a 43 43 主题 使用printf输出各种格式的字符串 日期 2004 06 29 43 43 1 原样输出字符串 printf 34 s 34 str 2 输出指定长度的
  • float型变量和“零值”比较的方法

    前一段时间读了一下林锐博士的 高质量C C 43 43 编程指南 xff0c 其中有一个比较经典的问题 请写出float x与 零值 比较的if语句 xff1f 当时只知道不能直接用float类型的值与0进行 61 61 或 61 比较 x
  • 全局变量和局部变量

    全局变量也称为外部变量 xff0c 它是在函数外部定义的变量 它不属于哪一个函数 xff0c 它属于一个源程序文件 其作用域是整个源程序 在函数中使用全局变量 xff0c 一般应作全局变量说明 只有在函数内经过说明的全局变量才能使用 但是在
  • c 内存管理

    其他相关链接 xff1a https blog csdn net wind19 article details 5964090 一 几个基本概念 在C语言中 xff0c 关于内存管理的知识点比较多 xff0c 如函数 变量 作用域 指针等
  • Springboot操作MongoDB,包括增改查及复杂操作

    单条件查询 使用BasicDBObject配置查询条件 List span class token generics function span class token punctuation lt span AbstractMongoEn
  • 搭建Spark实战环境(3台linux虚拟机集群)(一)样板机的搭建

    系统及软件配置 系统配置 内存 xff1a 16g 2400 cpu xff1a i5 9400F 软件配置 Windows 10 1903版本VMware workstation 15 10CentOS centos release 7