Spark集群的搭建

1.1搭建Spark集群

Spark集群环境可分为单机版环境、单机伪分布式环境和完全分布式环境。本节任务是学习如何搭建不同模式的Spark集群,并查看Spark的服务监控。读者可从官网下载Spark安装包,本文使用的是spark-2.0.0-bin-hadoop2.7.gz。

1.1.1搭建单机版集群

单机版环境可以支持对Spark的应用程序测试工作,对于初学者而言是非常有益。

搭建单机版Spark集群步骤如下:

1.在Spark官网选择对应版本的Spark安装包并下载至Windows本地路径下。

2.将Spark安装包上传至linux虚拟机的/opt目录下。

3.将Spark安装包解压至/usr/local/src/目录下。

1)解压Spark安装包

tar -zxf /opt/software/spark-2.0.0-bin-hadoop2.7.gz -C /usr/local/src/

2)进入Spark安装目录的/bin目录,使用“SparkPi”计算Pi值

#进入目录
cd /usr/local/src/spark/bin/
#执行如下命令,其中2是指两个并行度
./run-example SparkPi 2

 使用“SparkPi”计算Pi值的结果

 

1.1.2搭建单机伪分布式集群

Spark单机伪分布式集群指的是在一台机器上既有Master进程,又有Worker进程。Spark单机伪分布式集群可在Hadoop伪分布式环境基础上进行搭建。读者可自行了解如何搭建Hadoop伪分布式集群,本文不做介绍。搭建Spark单机伪分布式集群的步骤如下:

(1)将Spark安装包解压至Linux的/usr/loca/src/目录下。

(2)进入解压后的Spark安装目录,对安装包进行改名

mv spark-2.0.0-bin-hadoop2.7 spark

(3)进入Spark的/conf目录下,复制spark-env.sh.template文件并重命名为spark-env.sh。

[root@master spark]# cd conf/[root@master conf]# cp spark-env.sh.template spark-env.sh

(4)打开spark-env.sh文件,在文件末尾添加代码

export JAVA_HOME=/usr/local/src/jdk
export HADOOP_HOME=/usr/lcoal/src/hadoop
export HADOOP_CONF_DIP=/usr/local/src/hadoop/etc/hadoop
export SPARK_MASTER_IP=master
export SPARK_LOCAL_USR_IP=master
参数解释
JAVA_HOMEJava的安装路径
HADOOP_HOMEHadoop的安装路径
HADOOP_CONF_DIPHadoop配置文件的路径
SPARK_MASTER_IPSpark主节点的IP地址或主机名
SPARK_LOCAL_USR_IPSpark本地IP地址或主机名

(5)切换到Spark安装目录的/sbin目录下,启动Spark集群

[root@master sbin]# cd /usr/local/src/spark/sbin/[root@master sbin]# ./start-all.sh

 通过命令“jps”查看进程,如果既有Master进程又有Worker进程,那么说明Spark集群启动成功

(6)切换至Spark安装包的/bin目录下,使用“SparkPi”计算Pi值

[root@master bin]# ./run-example SparkPi 2

由于计算Pi的值时采用随机数,因此每次计算结果也会有差异

1.1.3搭建完全分布式集群

Spark完全分布式集群使用主从模式,即其中一台机器作为主节点master,其他的几台机器作为子节点slave。本文使用的Spark完全分布式共有三个节点,分别是一个主节点和2个子节点

Spark完全分布式集群是在Hadoop完全分布式集群的基础上进行搭建的。读者可自行了解如何搭建Hadoop完全分布式集群,本文不做介绍

(1)在前面的基础之上切换至Spark安装目录下的/conf目录下,并打开spark-env.sh文件,并添加如下代码:

#将原来伪分布式集群添加上去的那几行代码删掉从新添加下面代码,防止后面发生影响export JAVA_HOME=/usr/local/src/jdk
export HADOOP_CONF_DIP=/usr/local/src/hadoop/etc/hadoop
export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_MEMORY=512m
export SPARK_WORKER_CORES=1
export SPARK_EXECUTOR_MEMORY=512m
export SPARK_EXECUTOR_CORES=1
export SPARK_WORKER_INSTANCES=1

 spark-env.sh文件的配置参数解释

参数解释
JAVA_HOMEJava的安装路径
HADOOP_CONF_DIRHadoop配置文件的路径
SPARK_MASTER_IPSpark主节点的IP地址或主机名
SPARK_MASTER_PORTSpark主节点的端口号
SPARK_WORKER_MEMORY工作(worker)节点能给予Executor的内存大小
SPARK_WORKER_CORES每个节点可以使用的内核数
SPARK_EXECUTOR_MEMORY每个Executor内存大小
SPARK_EXECUTOR_CORESExecutor的内核数
SPARK_WORKER_INSTANCES每个节点的Worker进程数

(2)配置Workers文件。复制Workers.template文件并重命名为Workers,打开Workers文件删除原有内容,并添加如下代码,每一行代表一个子节点的主机名,这里的workers文件名为,slaves.template

slave1
slave2

(3)配置spark-defaults.conf文件。复制spark-defaults.conf.template文件并重命名为spark-defaults.conf,打开spark-defaults.conf文件,并添加如下代码:

spark.master                     spark://master:7077
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://master:8020/spark-logs
spark.history.fs.logDirectory    hdfs://master:8020/spark-logs

spark-defaults.conf文件的配置参数解释

参数解释
spark.masterSpark主节点所在机器及端口,默认写法是spark://
spark.eventLog.enabled是否打开任务日志功能,默认为false,既不打开
spark.eventLog.dir任务日志默认存放位置,配置一个HDFS路径即可
spark.history.fs.logDirectory存放历史应用日志文件目录

(4)在主节点(master节点)中,将配置好的Spark安装目录远程复制至子节点(slave1,slave2节点)的/usr/local/src/目录下,代码如下:

[root@master src]# scp -r /usr/local/src/spark root@slave1:/usr/local/src/
[root@master src]# scp -r /usr/local/src/spark root@slave2:/usr/local/src/

(5)启动Spark集群前,需要先启动Hadoop集群,并创建/spark-logs目录,如代码:

#启动Hadoop集群
cd /usr/local/src/hadoop
./sbin/start-dfs.sh
./sbin/start-yarn.sh
./sibn/mr-jobhistory-daemon.sh start historyserver
#创建/spark-logs目录
hdfs dfs -mkdir /spark-logs

(6)切换至Spark安装目录的/sbin目录下,启动Spark集群

cd /usr/local/src/spark/sbin/./start-all.sh
./start-history-server.sh

(7)通过命令jps查看进程,开启Spark集群后,master节点增加了Master进程,而子节点则增加了Worker进程。

Spark集群启动成功后,打开浏览器访问“http://master:8080”,可进入主节点的监控界面。其中master指代主节点的IP地址

Hisory Server的监控端口为18080端口,打开浏览器访问“http://master:18080”,即可看到监控界面,界面记录了作业信息,包括已经运行完成的作业的信息和正在运行的作业信息。

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

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

相关文章

Linux——进程基本概念中篇

Linux——进程基本概念中篇 文章目录 Linux——进程基本概念中篇一、通过系统调用创建进程——fork1.1 fork的理解1.2 fork的返回值 二、进程状态2.1 运行状态2.2 睡眠状态和休眠状态2.3 停止状态和死亡状态2.4 僵尸进程2.5 孤儿进程2.6 前台和后台进程 三、进程优先级3.1 查看…

一文读懂Partisia Blockhain:兼顾去中心化、安全性与可扩展性

“Partisia Blockhain 解决了区块链领域长期存在的问题,其兼顾了去中心化、安全性以及可扩展性” Partisia Blockchain 是一个具有独特零知识证明预言机以及分片解决方案的 Layer1,解决了困扰整个区块链行业的问题。 目前,多样化的区块链层出…

个人开发微信小程序?我来劝退!

为什么小程序那么受欢迎? 相比传统app,小程序即点即用,免下载安装,这是小程序最明显的优势 但使得小程序真正能火爆,让众多开发者喜欢的原因,还是其强大的分享能力和多端互通能力。寄生与微信这么一个聊天…

SRIO系列-基本概念及IP核使用

参考:串行RapidIO: 高性能嵌入式互连技术 | 德州仪器 SRIO协议技术分析 - 知乎 PG007 目录 一、SRIO介绍 1.1 概要 1.2 SRIO与传统互联方式的比较 1.3 串行SRIO标准 1.4 SRIO层次结构: 1.4.1 逻辑层 1.4.2 传输层协议 1.4.3 物理层 二、Xilinx…

BADI-AC_DOCUMENT-交货单过账科目替代

BADI-AC_DOCUMENT-交货单过账科目替代 一、业务场景 事务代码VL02N/VL22N及其他交货单过账事务,在交货单过账生成会计凭证的时候对科目进行替代 二、BADI增强:AC_DOCUMENT 这个BADI理论上可以处理很多的会计凭证科目替代,不止是交货单过账…

服务注册与发现Eureka、Zookeeper、Consul 三个注册中心的异同点(CAP理论)

Eureka Eureka是由Netflix开源的一个服务注册和发现组件,它主要用于构建高可用、分布式系统的基础设施中。Eureka的服务器端被称为Eureka Server,客户端则是那些需要注册的服务。Eureka具有以下特点: 高可用性:Eureka支持多节点…

探索通过GPT和云平台搭建网安实战培训环境

项目背景 网络安全是一个不断演变的领域,面临着日益复杂的挑战和不断扩大的威胁。数字化时代,随着勒索攻击、数据窃取、网络钓鱼等频频出现,网络攻击的威胁指数和影响范围进一步增加,如何防范网络攻击,确保数据安全&a…

HTML5+CSS3小实例:菜单按钮的三种切换动画

实例:菜单按钮的三种切换动画 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initia…

漂亮的个人主页源码

源码介绍 漂亮的个人主页源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 效果截图 源码下载 漂亮的个人主页源码

【正则表达式】正则表达式基本语法元素

目录 字符类量词边界匹配逻辑和分组转义和特殊字符验证正则表达式是否能够成功提取数据 字符类 .&#xff1a;匹配除换行符之外的任何单个字符。 [abc]&#xff1a;匹配方括号内的任何字符。 [^abc]&#xff1a;匹配不在方括号内的任何字符。 [a-z]&#xff1a;匹配任何小写字…

DZY Loves Chemistry (并查集)

//新生训练 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <queue> using namespace std; bool a[60][60]; bool vis[60]; int n; long long int cnt; void bfs(int x) {int y;queue<int> q;v…

真实世界的密码学(二)

原文&#xff1a;annas-archive.org/md5/655c944001312f47533514408a1a919a 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第六章&#xff1a;非对称加密和混合加密 本章内容包括 对秘密信息进行加密的非对称加密方法 对数据进行加密到公钥的混合加密方法 非对称和…

互连芯片浪潮席卷AI服务器:突破瓶颈,再创辉煌

改变AI服务器&#xff1a;互连芯片技术创新和突破 AI服务器崛起&#xff0c;引领未来创新根据TrendForce数据&#xff0c;AI服务器出货量达130,000台&#xff0c;占服务器总出货量的1%。主要制造商推出生成式AI产品&#xff0c;推动订单激增。ChatGPT等应用的需求持续增长&…

使用WebSocket实现答题积分排名实时更新的功能

需求分析 接到一个需求&#xff0c;是一个答题积分小程序&#xff0c;其中有一个功能需求是需要实时更新答题积分排名的。之前通常比较常见的需求&#xff0c;都是指定某个时间点才更新答题排行榜的数据的。 经过技术调研&#xff0c;要实现答题积分排名实时更新的功能&#…

加速产能!推荐五款制造业项目管理软件

随着技术的不断发展&#xff0c;许多制造企业开始意识到使用制造业项目管理软件的重要性。在本文中&#xff0c;我们将探讨适用于制造业的项目管理软件&#xff0c;制造业项目管理软件推荐&#xff0c;以帮助项目团队更加高效管理资源。 制造业项目管理难题 怎样正确利用工作资…

Redis底层数据结构之SDS

目录 一、概述二、SDS结构三、为什么使用SDS 下一篇 redis底层数据结构之ziplist 一、概述 Redis 中的 SDS&#xff08;Simple Dynamic String&#xff0c;简单动态字符串&#xff09;是 Redis 用于存储字符串值的底层实现&#xff0c;是对 C 语言传统字符串&#xff08;以 nu…

通过本机电脑远程访问路由器loopback的ip

实验拓扑图 本机电脑增加路由信息 正常设置telnet用户&#xff0c;然后通过本地电脑telnet 软件ensp中的设备&#xff0c;尝试是否可以正常访问即可 测试通过本地电脑可以正常访问ensp里面设备的loopback的ip地址了 最重要的一点是本机需要增加一条路由route add ip mask 下…

前端开发与html学习笔记

一、前端开发概述 前端开发&#xff1a;也叫做web前端开发&#xff0c;它指的是基于web的互联网产品的页面(也可叫界面)开发及功能开发互联网产品&#xff1a;指网站为满足用户需求而创建的用于运营的功能及服务&#xff0c;百度搜索、淘宝、QQ、微博、网易邮箱等都是互联网产…

【Java】实现一个简单的线程池

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 一、线程池的模式 线程池顾名思义就是管理线程的一个池子&#xff0c;我们把创建线程的过程交给线程池来处理&#xff0c;而这个线程池当中的线程都会从阻塞队列当中取获取任务执行。 我们不在直接把任务的创建过程写到…

NLP预训练模型-GPT-3

ChatGPT GPT-3是OpenAI开发的一个自然语言处理&#xff08;NLP&#xff09;预训练模型。GPT代表“生成式预训练变换器”&#xff08;Generative Pretrained Transformer&#xff09;。GPT-3是GPT系列的第三代模型&#xff0c;是一种采用了深度学习技术的强大语言模型&#xff…