【头歌实训】Spark 完全分布式的安装和部署(新)

文章目录

      • 第1关: Standalone 分布式集群搭建
        • 任务描述
        • 相关知识
          • 课程视频
          • Spark分布式安装模式
          • 主机映射
          • 免密登录
          • 准备Spark安装包
          • 配置环境变量
          • 修改 spark-env.sh 配置文件
          • 修改 slaves 文件
          • 分发安装包
          • 启动spark
          • 验证安装
        • 编程要求
        • 测试说明
        • 答案代码

第1关: Standalone 分布式集群搭建

任务描述

掌握 Standalone 分布式集群搭建。

相关知识

我们已经掌握了 Spark 单机版安装,那么分布式集群怎么搭建呢? 接下来我们学习 Standalone 分布式集群搭建。

课程视频

如果你需要在本地配置 Spark 完全分布式环境,可以通过查看课程视频来学习。

课程视频《克隆虚拟机与配置网络》

课程视频《配置集群免密登录》

课程视频《Spark配置文件设置》

课程视频《Spark完全分布式总结》

Spark分布式安装模式

Spark 分布式环境安装目前有四种模式:

1.Standalone:Spark 自带的简单群资源管理器,安装较为简单,不需要依赖 Hadoop;

2.Hadoop YARN:使用 YARN 作为集群资源管理,安装需要依赖 Hadoop;

3.Apache Mesos:不常用;

4.Kubernetes:不常用。

本地学习测试我们常用 Standalone 模式,生产环境常使用 YARN 模式。

主机映射

先查看各节点查看 ip 地址

master:

图 1
查看 master 节点 IP

slave1:

图 1
查看 slave1 节点 IP

slave2:

图 1
查看 slave2 节点 IP

接下来去设置主机映射,因为我们是搭建完全分布式,所以在设置映射的时候需要设置 3 台虚拟机的映射关系。

输入命令 vi /etc/hosts进行主机 ip 的映射设置,添加如下配置(根据读者环境下的虚拟机IP设置):

#master、slave1、slave2 每个人应该不相同
172.16.248.174    master
172.16.251.34    slave1
172.16.240.174    slave2

注:需要根据自身节点 ip 地址去配置,每次重置环境会刷新 ip 地址。

图 1
配置主机映射

操作示意图如下:

图 1
主机映射操作示意图

免密登录

在各个节点服务器生成秘钥:

#master、slave1、slave2
ssh-keygen -t rsa

,

在 master 复制 master、slave1、slave2 的公钥。

cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
ssh slave1 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
ssh slave2 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys

,

接下来来查看下 slave1 节点连接密码,首先点击 slave1 命令行窗口,再点击右上角,图标,最后点击 SSH 直连即可查看相关信息,如下示意图:

,

img

点开后,查看密码:

,

注:密码可双击选中后复制,但环境重置后密码会随机生成。

在 slave1 复制 master 的 authorized_keys 文件。

ssh master cat ~/.ssh/authorized_keys>> ~/.ssh/authorized_keys

在 slave2 复制 master 的 authorized_keys 文件。

ssh master cat ~/.ssh/authorized_keys>> ~/.ssh/authorized_keys

操作示意图如下:

图 1
免密登录操作示意图

准备Spark安装包

解压压缩包并给文件夹赋权,步骤如下:

#复制安装包
cp /data/bigfiles/userfiles.zip /usr/local/
#进入文件夹
cd /usr/local/
#解压压缩包
unzip userfiles.zip
#进入文件夹
cd /usr/local/spark-2.3.4-bin-hadoop2.7/
#赋权
chmod -R 777 bin/
chmod -R 777 sbin/
配置环境变量

我们将 Spark 的安装目录配置到 /etc/profile 中(在文件末尾添加)。

export SPARK_HOME=/usr/local/spark-2.3.4-bin-hadoop2.7

不要忘了 source /etc/profile

该步骤在 master 主机上执行。

修改 spark-env.sh 配置文件

首先生成一份 spark-env.sh 文件(master节点):

切换目录到:/usr/local/spark-2.3.4-bin-hadoop2.7/conf 执行命令:mv spark-env.sh.template spark-env.sh

修改 spark-env.sh 文件:

执行命令:vi spark-env.sh,添加以下内容:

#指定JAVA安装路径/opt/jdk1.8.0_201
export JAVA_HOME=/opt/jdk1.8.0_201
#指定SCALA安装位置,非必须配置,可不指定
# export SCALA_HOME=scala安装路径
#指定spark master webui 端口,默认是 8080,跟 tomcat 冲突
SPARK_MASTER_WEBUI_PORT=8888
#指定Master节点IP或映射地址
export SPARK_MASTER_IP=master
修改 slaves 文件

首先生成一份 slaves 文件(master节点)。

切换到 Spark 的 conf 目录下, 执行命令: mv slaves.template slaves

修改 slaves 文件, 执行命令: vi slaves 在该文件中加入作为 worker 节点 ip 或映射主机名。

master
slave1
slave2
分发安装包

把 master 节点的 spark 安装包分发到 slave1 节点和 slave2 节点(通过 scp 命令)。

scp -r /usr/local/spark-2.3.4-bin-hadoop2.7/ root@slave1:/usr/local
scp -r /usr/local/spark-2.3.4-bin-hadoop2.7/ root@slave2:/usr/local
启动spark

切换到 master 节点 Spark 安装目录 /usr/local/spark-2.3.4-bin-hadoop2.7 的 sbin 目录下 执行命令启动 Spark 集群:./start-all.sh

验证安装

输入 jps 命令查看。 master 节点有以下进程:

master
worker

slave1 节点有以下进程:

worker

slave2 节点有以下进程:

worker
编程要求

请按照步骤小心安装,安装完成后点击测评即可。

测试说明

点击测评后,后台会通过curl http://172.18.0.2:8888/ 命令获取页面,并取其中部分内容来判定你是否安装成功。

预期输出:

   <li><strong>Alive Workers:</strong> 3</li>

课程视频《 Spark 完全分布式搭建总结》

答案代码

注意使用 ssh 更换 educoder、master、slave1、slave2 几个服务器节点

# master、slave1、slave2
vi /etc/hosts# IP 每个人应该不相同
172.16.162.10    master
172.16.81.47    slave1
172.16.246.159    slave2# master、slave1、slave2
ssh-keygen -t rsa # 按三次回车# master
cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
# 密码在工具箱的SSH直连中 UcauZKAUOiwWaPVp
ssh slave1 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
# 密码在工具箱的SSH直连中 uoTD2AnMfpMMtj0g
ssh slave2 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys# slave1
ssh master cat ~/.ssh/authorized_keys>> ~/.ssh/authorized_keys# slave2
ssh master cat ~/.ssh/authorized_keys>> ~/.ssh/authorized_keys# master
cp /data/bigfiles/userfiles.zip /usr/local/
cd /usr/local/
unzip userfiles.zip
cd /usr/local/spark-2.3.4-bin-hadoop2.7/
chmod -R 777 bin/
chmod -R 777 sbin/vim /etc/profile# add
export SPARK_HOME=/usr/local/spark-2.3.4-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/binsource /etc/profilecd /usr/local/spark-2.3.4-bin-hadoop2.7/conf
cp spark-env.sh.template spark-env.sh
vi spark-env.sh# add
export JAVA_HOME=/opt/jdk1.8.0_201
SPARK_MASTER_WEBUI_PORT=8888
export SPARK_MASTER_IP=mastercp slaves.template slaves
vi slaves# add
master
slave1
slave2# scp spark to slave1 and slave2
scp -r /usr/local/spark-2.3.4-bin-hadoop2.7/ root@slave1:/usr/local
scp -r /usr/local/spark-2.3.4-bin-hadoop2.7/ root@slave2:/usr/local$SPARK_HOME/sbin/start-all.sh

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

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

相关文章

C++ Qt开发:QSqlDatabase数据库组件

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍QSqlDatabase数据库模块的常用方法及灵活运用…

Cloudstack多个管理服务器节点

https://docs.cloudstack.apache.org/en/4.18.0.0/adminguide/reliability.html 参考翻译&#xff1a; 代理上支持多个管理服务器 在具有多个管理服务器的Cloudstack环境中&#xff0c;可以根据算法配置代理&#xff0c;将其连接到哪个管理服务器。这对于内部负载均衡器或高可…

【机器学习】人工智能概述

人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;是一门研究如何使机器能够像人一样思考、学习和执行任务的学科。它是计算机科学的一个重要分支&#xff0c;涉及机器学习、自然语言处理、计算机视觉等多个领域。 人工智能的概念最早可以追溯到20世…

3.docker 安装失败

1、错误描述 2、报错前操作 ① 安装yum工具 yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken ② 更新本地镜像源 # 设置docker镜像源 yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo…

扫描全能王启动鸿蒙原生应用开发,系HarmonyOS NEXT智能扫描领域首批

近期&#xff0c;“鸿蒙合作签约暨扫描全能王鸿蒙原生应用开发启动仪式”&#xff08;简称“签约仪式”&#xff09;正式举行。合合信息与华为达成鸿蒙合作&#xff0c;旗下扫描全能王将基于HarmonyOS NEXT正式启动鸿蒙原生应用开发。据悉&#xff0c;扫描全能王是鸿蒙在智能扫…

DM、HIVE和Kingbase8(人大金仓数据库)给列增加备注

DM数据库给列增加备注 1、创建表 CREATE TABLE test222 ( id int NOT NULL PRIMARY KEY, name varchar(1000) DEFAULT NULL, email varchar(1000) DEFAULT NULL, phone varchar(1000) DEFAULT NULL ) 2、给列添加注释 comment on column TEST222.NAME is 这是一个列注释; 例如…

说说 Spring Boot 实现接口幂等性有哪几种方案?

一、什么是幂等性 幂等是一个数学与计算机学概念&#xff0c;在数学中某一元运算为幂等时&#xff0c;其作用在任一元素两次后会和其作用一次的结果相同。 在计算机中编程中&#xff0c;一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数或幂等…

关联规则+聚类分析+分类算法(数据挖掘)

3.关联规则 经典案例 : 尿布与啤酒的故事&#xff1b; 基本概念 : 设I {i1,i2,....im}是项(Item)的集合。 D 是 事务(transaction)的集合(事务数据库)。 事务T是项的集合&#xff0c;且对每个事务具有唯一的标识: 事务号&#xff0c;记作TID; 设A是I中的一个项集&#xf…

Redis分布式缓存之主从哨兵分片集群

Redis主从 数据同步原理 Redis哨兵 Redis分片集群 集群伸缩&#xff1a;在集群中插入或删除某个节点 集群故障转移

Android 13 - Media框架(28)- ACodec(五)

前面几节我们了解了OMXNodeInstance是如何处理setPortMode、allocateBuffer、useBuffer的&#xff0c;这一节我们再回到ACodec&#xff0c;来看看 ACodec start 的其他部分。 我们首先来回顾一下&#xff0c;ACodec start 的状态切换以及处理的事务&#xff0c;我们用一张不太准…

「GPT」G、P、T分别是啥意思?

G意为Generative &#xff1a;生成式 比如&#xff0c;生成式的分类器&#xff08;模型&#xff09;包括---- generative classifiers: naive Bayes classifier and linear discriminant analysis 与之对应的为判别式----- discriminative model: logistic regression P意为…

基于 Linux 的批量上传本地 Git 仓库到 Github 的实践

基于 Linux 的批量上传本地 Git 仓库到 Github 的实践 一、需求二、上传本地 Git 仓库2.1 初始版本2.2 优化版本 三、 GitHub 创建空仓库3.1 初始版本3.2 优化版本 一、需求 app目录下的每个文件夹都是一个git仓库&#xff0c;如何使用shell脚本将所有git仓库都上传到github上…

记一次Mac端mysql重置密码

在执行mysql命令的时候&#xff0c;报如下的错误&#xff0c;表示不支持mysql命令&#xff1a; zsh: command not found: mysql 1. 先查看mysql服务是否存在 在系统偏好设置中查看&#xff1a; 2. 发现mysql服务已经在运行&#xff0c;可能因为/usr/local/bin目录下缺失mysq…

如何使用设计模式来解决类与类之间调用过深的问题。

我们将使用责任链模式和装饰者模式的组合。 考虑一个简化的餐厅订单处理系统&#xff0c;其中包括服务员&#xff08;Waiter&#xff09;、厨师&#xff08;Chef&#xff09;和收银员&#xff08;Cashier&#xff09;。订单从服务员开始&#xff0c;然后传递给厨师&#xff0c…

ubuntu22.04搭建RTSP服务器

大致命令如下&#xff1a; git clone --depth 1 gitgithub.com:ZLMediaKit/ZLMediaKit.git sudo apt-get install build-essential sudo apt-get install cmake #除了openssl,其他其实都可以不安装 sudo apt-get install libssl-dev sudo apt-get install libsdl-dev sudo apt…

linux基于用户身份对资源访问进行控制的解析及过程

linux中用户分为三类 1.超级用户&#xff08;root&#xff09; 拥有至高无上的权限 2.普通用户 人为创建、权限小&#xff0c;权限受到控制 3.程序用户 运行程序的用户&#xff0c;不是给人使用的&#xff0c;给程序使用的&#xff0c;一般不给登录&#xff01; 组账…

【LeetCode刷题笔记(13-1)】【Python】【回文数】【反转整数】【简单】

文章目录 引言回文数题目描述提示 题意分析解决方案1&#xff1a;【反转字符串】解决方案2&#xff1a;【反转整数】题外话结束语 9. 回文数 引言 编写通过所有测试案例的代码并不简单&#xff0c;通常需要深思熟虑和理性分析。虽然这些代码能够通过所有的测试案例&#xff0…

【AI】人工智能爆发推进器之卷积神经网络

目录 一、什么是卷积神经网络 1. 卷积层&#xff08;Convolutional Layer&#xff09; 2. 激活函数&#xff08;Activation Function&#xff09; 3. 池化层&#xff08;Pooling Layer&#xff09; 4. 全连接层&#xff08;Fully Connected Layer&#xff09; 5. 训练过程…

html table+css实现可编辑表格

要实现可编辑的 HTML 表格&#xff0c;你可以使用 JavaScript 和 HTML5 的 contenteditable 属性。 <!DOCTYPE html> <html> <head><style>table {border-collapse: collapse;width: 100%;}th, td {border: 1px solid black;padding: 8px;text-align:…

区块链白皮书:基础建设见成效,国产自主生态正发展壮大

“区块链是全球信任机器的重要组成部分”——比尔盖茨 随着科技的飞速发展&#xff0c;区块链技术已成为引领全球创新的重要力量。近日&#xff0c;中国信通院发布了《区块链白皮书&#xff08;2023年&#xff09;》&#xff0c;为我们揭示了这一领域的前沿动态和未来发展趋势…