Spark 基础 与 安装

news2024/11/15 16:28:02

Spark 基础

一、MapReduce编程模型的局限性

1、繁杂:只有Map和Reduce两个操作,复杂的逻辑需要大量的样板代码

2、处理效率低:

Map中间结果写磁盘,Reduce写HDFS,多个Map通过HDFS交换数据

任务调度与启动开销大

3、不适合迭代处理、交互式处理和流式处理

二、Spark是类Hadoop MapReduce的通用【并行】框架

1、Job中间输出结果可以保存在内存,不再需要读写HDFS
2、比MapReduce平均快10倍以上

三、版本

2014 1.0
2016 2.x
2020 3.x

 四、优势

1、速度快

  • 基于内存数据处理,比MR快100个数量级以上(逻辑回归算法测试)
  • 基于硬盘数据处理,比MR快10个数量级以上

 2、易用性

  • 支持Java、【Scala】、【Python:pyspark】、R语言
  • 交互式shell方便开发测试

 3、通用性

一栈式解决方案: 批处理、交互式查询、实时流处理(微批处理)、图计算、机器学习

4、多种运行模式

YARN ✔、Mesos、EC2、Kubernetes、Standalone、Local[*]

五、技术栈

1、Spark Core:核心组件,分布式计算引擎 RDD
2、Spark SQL:高性能的基于Hadoop的SQL解决方案
3、Spark Streaming:可以实现高吞吐量、具备容错机制的准实时流处理系统
4、Spark GraphX:分布式图处理框架
5、Spark MLlib:构建在Spark上的分布式机器学习

六、spark-shell

Spark自带的交互式工具

 local:spark-shell --master local[*]
alone:spark-shell --master spark://MASTERHOST:7077
yarn :spark-shell --master yarn

 七、运行架构

Spark服务
Master : Cluster Manager
Worker : Worker Node

 1、在驱动程序中,通过SparkContext主导应用的执行
2、SparkContext可以连接不同类型的 CM(Standalone、YARN),连接后,获得节点上的 Executor
3、一个节点默认一个Executor,可通过 SPARK_WORKER_INSTANCES 调整
4、每个应用获取自己的Executor
5、每个Task处理一个RDD分区

 八、Spark架构核心组件

名称作用
Application建立在Spark上的用户程序,包括Driver代码和运行在集群各节点Executor中的代码
Driver program驱动程序。Application中的main函数并创建SparkContext
Cluster Manager在集群(Standalone、Mesos、YARN)上获取资源的外部服务
Worker Node集群中任何可以运行Application代码的节点
Executor某个Application运行在worker节点上的一个进程
Task被送到某个Executor上的工作单元
Job多个Task组成的并行计算,由Action触发生成,一个Application中含多个Job
Stage每个Job会被拆分成多组Task,作为一个TaskSet,其名称为Stage

 

 

 

  

 

 

Spark 安装 

一、下载

首先检查是否安装了 jdk 并查看版本是否符合要求。这里是JDK8

 1、 linux 安装spark-3.1.2,输入如下命令 (没有wget可自行下载)

tar -xvf spark-3.1.2-bin-hadoop3.2.tgz -C /opt/software

 2、要安装其他版本:Index of /dist/spark (apache.org)

二、解压

安装好后将其解压到自己的目录

wget https://archive.apache.org/dist/spark/spark-3.1.2/spark-3.1.2-bin-hadoop3.2.tgz

 -x 解压,v 显示解压过程,-f 指定解压文件,-C 指定解压路径

三、环境变量

1、在/etc/profile.d目录新建一个myenv.sh文件

vim /etc/profile.d/myenv.sh

 2、写入如下

# spark 
export SPARK_HOME=/opt/software/spark-3.1.2
export PATH=$PATH:$SPARK_HOME/bin

3、激活环境变量 (执行/etc/profile即可)

source /etc/profile

4、注意:spark on yarn 必配,且需保证 HADOOP 环境变量已经正确配置

可在/opt/software/spark-3.1.2/conf/目录下配置

mv spark-env.sh.template spark-env.sh
vim spark-env.sh
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

 四、启动、关闭、检查Spark

 1、启动 Spark Standalone 集群,执行脚本

/opt/software/spark-3.1.2/sbin/start-all.sh

 2、查看 Spark 服务

        1、jps -ml查看到类似如下信息

jps -ml
31987 org.apache.spark.deploy.master.Master --host single01 --port 7077 --webui-port 8080
32089 org.apache.spark.deploy.worker.Worker --webui-port 8081 spark://single01:7077

         2、访问8080 和 8081 (http://single01:8080) 端口,结果如下

          3、启动 Spark Shell 会话

spark-shell --master spark://single01:7077	# 启动 spark-shell 测试 scala 交互式环境
spark-shell --master local[*]
spark-shell --master yarn		# 测试 Spark on YARN 

 --master 用于指定 Spark 应用程序连接的 Spark Master 地址。

Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 3.1.2
      /_/

Using Scala version 2.12.10 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_171)
Type in expressions to have them evaluated.
Type :help for more information.

scala>

 3、关闭 Spark Standalone 集群

/opt/software/spark-3.1.2/sbin/stop-all.sh

 

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

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

相关文章

十城联动共建生态登陆山东 纷享销客从原厂型向生态型CRM进化

7月30日,纷享销客渠道生态伙伴发展共建会之山东专场盛大举行,百余家优秀伙伴到场共享CRM领域高质量增长新机遇。2024年,纷享销客将坚定不移地从原厂型向生态型CRM厂商进化,把伙伴们扶上马,送一程,共发展&am…

Java--异常

目录 异常的概念异常的体系结构异常抛出异常处理异常throws声明try-catch捕获 异常处理流程自定义异常类 异常的概念 Java中,程序执行过程中发生的不正常的行为称为异常。 我们之前学数组的时候可能会遇到的数组越界异常:ArrayIndexOutOfBoundsException…

Reeder + RSS+ - 订阅RSS信息

文章目录 引言ReederRSS 源微博Bilibilirsshub自己发现 feed RSS 使用 引言 信息越来越多,也层次不齐,难以花时间筛选,但也不能闭目塞听。 使用爬虫 每日定时 去爬取不同网站需要的信息,还是有些繁琐,又让人想到 RSS …

odoo 去掉新手简介

很多模块有这样的提示,这种是可以动态关闭的 菜单 设置-技术-入职 可以动态切换,是否再次展示

不同类型的生物反应器在支架成熟过程中具有哪些特点和应用?

3D Bioprinting of Human Tissues: Biofabrication, Bioinks, and Bioreactors是发表于《International Journal of Molecular Sciences》的一篇综述,详细介绍了3D生物打印人体组织的相关技术进展,包括数据处理、生物打印技术、生物墨水配方、生物反应器…

设计理念中——抽象与接口和用(C#)

前言 在程序设计中,使用抽象类还是用接口应该是一个需要考虑的场景,有时我们感觉这两者并没有太大的区别,有时又有很大区别。这里是一些说明和示例。 一、抽象类和接口 1、相同点: 1)都可以被继承 2)都不能被实例化…

paddleSeg项目实战

问题1:cmake 编译报错 解决办法:添加一条语句 set(DEMO_NAME "test_seg") #这里的test_seg就是src里的文件名问题2: 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2038 检测到“RuntimeLibrary”的不匹配项: 值“MT_Stat…

汽车EDI中的常见术语以及流程详解

汽车EDI常见术语 EDI —— 电子数据交换3PL(第三方物流) —— 外包仓库/运输供应商。 一般用于售后市场,但偶尔也用于原始设备制造商。也可由原始设备制造商和售后市场公司用来分销产品。Aftermarket(后市场) —— 经…

详细阐述大模型微调过程、方法、案例

大模型微调 大模型微调(Fine-tuning)的定义是:在已经预训练好的大型深度学习模型基础上,使用新的、特定任务相关的数据集对模型进行进一步训练的过程。这种微调技术的主要目的是使模型能够适应新的、具体的任务或领域&#xff0c…

透明屏幕方案介绍

透明屏幕方案主要涉及透明显示屏的技术原理、应用场景、优势以及未来发展趋势等方面。以下是对透明屏幕方案的详细介绍: 一、技术原理 透明屏幕,特别是透明LED显示屏和透明OLED显示屏,采用了先进的技术原理来实现其独特的显示效果。 透明LED显…

牛客 KY11.二叉树遍历

牛客 KY11.二叉树遍历 思路: 我们接收字符串以后,创建一个二叉树结构体,然后就可以开始建立树,如果是字符就malloc新的结点去存储,是**#就返回空**,最后用递归以根左右的顺序创建结点。树建立完成后&#x…

Linux中防火墙实战之Web服务器和ssh远程服务配置指南

🏡作者主页:点击! 🐧Linux基础知识(初学):点击! 🐧Linux高级管理防护和群集专栏:点击! 🔐Linux中firewalld防火墙:点击! ⏰️创作…

螺钉柱的设计

如果螺钉柱参数设置不合理,可能导致螺钉柱滑牙、爆裂、断裂、螺丝断裂、螺钉头磨损、螺钉攻入费力等问题 具体参数可以参照下表 螺丝柱设计尺寸: 螺丝柱设计要点: 频繁拆卸的注意事项: 自攻牙螺丝柱不宜频繁拆卸,因…

AI大模型应用(2)ChatGLM3本地部署及其在alpaca_zh数据集上的低精度微调

AI大模型应用(2)ChatGLM3部署及其在alpaca_zh数据集上的低精度微调 我们之前已经了解了HuggingFace中peft库的几种高效微调方法。 参数高效微调PEFT(一)快速入门BitFit、Prompt Tuning、Prefix Tuning 参数高效微调PEFT(二)快速入门P-Tuning、P-Tuning V2 参数高效微调PEFT…

C++第三十弹---C++继承机制深度剖析(中)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、派生类的默认成员函数 1.1、派生类的构造函数 1.2、派生类的拷贝构造函数 1.3、派生类的赋值重载 1.4、派生类的析构函数 2、继承与友元 …

TL3568编译Kernel内核 make tl3568-evm.img -j16报错 ‘arch/arm64/boot/Image.lz4‘ failed

在编译Kernel时,遇到报错内容: /bin/sh: lz4c: command not found arch/arm64/boot/Makefile:31: recipe for target arch/arm64/boot/Image.lz4 failed make[1]: *** [arch/arm64/boot/Image.lz4] Error 1 arch/arm64/Makefile:139: recipe for target …

科普文:【支持信创、宣传国产】Alibaba Dragonwell JVM性能提升50%

4月5日,阿里云开放了新一代ECS实例的邀测[1],Alibaba Dragonwell也在新ECS上进行了极致的优化。相比于之前的dragonwell_11.0.8.3版本,即将发布的dragonwell_11.0.11.6在SPECjbb2015[2] composite模式测试中,系统吞吐量max-jOPS提…

【算法】插值查找(对二分查找的优化)

引言 在二分查找中,对于相对较大的数或较小的数来说,查询效率是很低的,我们希望程序可以自适应待查询的数,使用插值算法 插值查找原理 1.插值查找算法类似于二分查找,不同的是插值查找每次从自适应 mid 处开始查找 2…

Airtest封装的Tidevice接口有多好用(二)

一、前言 上节课我们分享了一批Airtest封装的Tidevice接口,是有关获取设备信息的,还没看到的同学可以戳这里复习一下。那么本周我们继续来看一下Airtest还封装了哪些Tidevice的接口吧~ 二、Airtest封装的Tidevice接口 2.1 list_app(udid ,app_typeuse…

早得农元早享“富”!农元又双叒叕涨了!

农元升值设定的唯一途径,仅随着用户在平台每次的购物而升值,未来农元的价值升值甚至会达到几千、上万元人民币,真正实现了购物乐趣与财富增长的双重盛宴,让每一位平台用户都能享受到数字经济时代带来的红利。 快从消费者变为经营者…