Spark基础

一、spark基础

1、为什么使用Spark

Ⅰ、MapReduce编程模型的局限性

(1) 繁杂

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

(2) 处理效率低

Map中间结果写磁盘,Reduce写HDFS,多个Map通过HDFS交换数据 任务调度与启动开销大

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

Ⅱ、Spark是类Hadoop MapReduce的通用并行框架

(1) Job中间输出结果可以保存在内存,不再需要读写HDFS

(2) 比MapReduce平均快10倍以上

Ⅲ、Spark  VS Hadoop

Hadoop

Spark

类型

分布式基础平台,包含计算、存储、调度

分布式计算工具

场景

大规模数据集上的批处理

迭代计算、交互式计算、流计算

价格

对机器要求低,便宜

对内存有要求,相对较贵

编程范式

Map+Reduce,API较为底层,算法适应性差

RDD组成DAG有向无环图,API较为顶层,方便使用

数据存储结构

MpaReduce中间计算结果存在HDFS磁盘上,延迟大

RDD中间运算结果存在内存中,延迟小

运行方式

Task以进程方式维护,任务启动慢

Task以线程方式维护,任务启动快

2、Spark简介

诞生于加州大学伯克利分校AMP实验室,是一个基于内存的分布式计算框架

        发展历程:

        2009年诞生于加州大学伯克利分校AMP实验室

        2010年正式开源 2013年6月正式成为Apache孵化项目

        2014年2月成为Apache顶级项目

        2014年5月正式发布Spark 1.0版本

        2014年10月Spark打破MapReduce保持的排序记录

        2015年发布了1.3、1.4、1.5版本

        2016年发布了1.6、2.x版本

        ......

Hadoop 之父 Doug Cutting 指出:

Use of MapReduce engine for Big Data projects will decline, replaced by Apache Spark

(大数据项目的 MapReduce 引擎的使用将下降,由 Apache Spark 取代)。

3、Spark优势

(1)速度快

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

        基于硬盘数据处理,比MR快10个数量级以上

(2)易用性

        支持Java、Scala、Python、R语言 交互式shell方便开发测试

(3)通用性

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

(4)多种运行模式

        YARN、Mesos、EC2、Kubernetes、Standalone、Local

4、Spark技术栈

(1)Spark Core

        核心组件,分布式计算引擎。

        实现了 Spark 的基本功能,包含 RDD、任务调度、内存管理、错误恢复、与存储系统交互等模块。

(2)Spark SQL

        高性能的基于Hadoop的SQL解决方案。

        Spark 用来操作结构化数据的程序包。通过 Spark SQL,我们可以使用 SQL 操作数据。

(3)Spark Streaming

        可以实现高吞吐量、具备容错机制的准实时流处理系统。

        Spark 提供的对实时数据进行流式计算的组件。提供了用来操作数据流的 API。

(4)Spark GraphX(图计算)

        分布式图处理框架。

        Spark 中用于图计算的 API,性能良好,拥有丰富的功能和运算符,能在海量数据上自如地运行复杂的图算法。

(5)Spark MLlib

        构建在Spark上的分布式机器学习库。

        提供常见的机器学习(ML)功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能。

(6)其他

        集群管理器:Spark 设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算。

        Structured Streaming:处理结构化流,统一了离线和实时的 API。

二、安装spark

spark下载地址https://archive.apache.org/dist/spark/spark-2.2.0/spark-2.2.0-bin-hadoop2.7.tgz

1、通过Xftp上传文件

2、解压文件至指定的安装目录

tar -zxvf /opt/install/scala-2.12.10.tgz -C /opt/soft/
tar -zxvf /opt/install/spark-3.1.2-bin-hadoop3.2.tgz -C /opt/soft/

3、进入安装目录更改名字

mv ./scala-2.12.10.tgz ./scala212
mv ./spark-3.1.2-bin-hadoop3.2.tgz ./spark312

4、配置环境变量

#SCALA
export SCALA_HOME=/opt/soft/scala212
export PATH=$SCALA_HOME/bin:$PATH
#SPARK
export SPARK_HOME=/opt/soft/spark312
export PATH=$SPARK_HOME/bin:$PATH

   !!! source /etc/profile

5、启动Scala

6、Spark环境部署

(1)进入/opt/soft/spark312/conf拷贝文件
cp ./workers.template ./workers
cp ./spark-env.sh.template ./spark-env.sh
(2)配置workers
# 编辑文件
vim workers
# 配置文件
localhost

(3)配置spark-env.sh
# 编辑文件
vim ./spark-env.sh
# 配置文件
export SCALA_HOME=/opt/soft/scala212
export JAVA_HOME=/opt/soft/jdk180
export SPARK_HOME=/opt/soft/spark312
export HADOOP_INSTALL=/opt/soft/hadoop313
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_MASTER_IP=192.168.91.11
export SPARK_DRIVER_MEMORY=2G
export SPARK_EXECUTOR_MEMORY=2G
export SPARK_LOCAL_DIRS=/opt/soft/spark312
# 保存退出
:wq
# 刷新
source

7、启动交互式平台

spark-shell

8、Spark运行模式

(1)local 本地模式(单机)

        学习测试使用,分为local单线程和local-cluster多线程。

(2)standalone 独立集群模式

        学习测试使用,典型的Master/slave。

(3)standalone-HA 高可用模式

        生产环境使用,基于standalone模式,使用zk搭建高可用,避免Master是有单点故障的。

(4)on yarn 集群模式

        生产环境使用,运行在yarn负责资源管理,Spark负责任务调度和计算。

        好处:计算资源按需伸缩,集群利用率高,共享底层存储,避免数据跨集群迁移。

(5)on mesos 集群模式

        国内使用较少,运行在mesos资源管理器框架之上,由mesos负责资源管理,Spark负责任务调度和计算。

(6)on cloud 集群模式

        中小型公司未来会更多的使用云服务,比如AWS的EC2,使用这个模式能很方便的访问Amazon的S3。

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

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

相关文章

UG\NX二次开发 重命名特征对象 UF_OBJ_set_name

文章作者:里海 来源网站:《里海NX二次开发3000例专栏》 感谢粉丝订阅 感谢 林闹 订阅本专栏,非常感谢。 简介 UG\NX二次开发 重命名特征 UF_OBJ_set_name 效果 代码 #include "me.hpp" #include <vector> #include

管易云与网易互客对接集成发货单查询2.0连通编辑订单(管易包裹物流=>互客销售订单物流(修改)V1)

管易云与网易互客对接集成发货单查询2.0连通编辑订单(管易包裹物流>互客销售订单物流&#xff08;修改&#xff09;V1) 来源系统:管易云 管易云是金蝶旗下专注提供电商企业管理软件服务的子品牌&#xff0c;先后开发了C-ERP、EC-OMS、EC-WMS、E店管家、BBC、B2B、B2C商城网站…

【Python】基于OpenCV人脸追踪、手势识别控制的求生之路FPS游戏操作

【Python】基于OpenCV人脸追踪、手势识别控制的求生之路FPS游戏操作 文章目录 手势识别人脸追踪键盘控制整体代码附录&#xff1a;列表的赋值类型和py打包列表赋值BUG复现代码改进优化总结 py打包 视频&#xff1a; 基于OpenCV人脸追踪、手势识别控制的求实之路FPS游戏操作 手…

Tomcat自启动另一种方法

Tomcat自启动另一种方法 问题&#xff1a; 不知道怎么回事&#xff0c;好几台电脑都可以开机自启动tomcat&#xff0c;正常运行项目。一样的配置一样的操作流程&#xff0c;偏偏要运行的机器开机自启动后&#xff0c;项目不能运行&#xff0c;手动重启tomcat又可以用了。网上…

蓝桥杯每日一题2023.10.6

题目描述 门牌制作 - 蓝桥云课 (lanqiao.cn) 题目分析 #include<bits/stdc.h> using namespace std; int ans; int main() {for(int i 1; i < 2020; i ){int x i;while(x){int a x % 10;if(a 2)ans ;x / 10;}}cout << ans;return 0; } 题目描述 既约分数…

基于可解释性特征矩阵与稀疏采样全局特征组合的人体行为识别

论文还未发表&#xff0c;不细说&#xff0c;欢迎讨论。 Title: A New Solution to Skeleton-Based Human Action Recognition via the combination usage of explainable feature extraction and sparse sampling global features. Abstract: With the development of deep …

VMware16.1.2安装及密钥

文章目录 一、VMware 16 虚拟机下载二、安装步骤三、VMware 各版本注册密钥1 、VMware 16密钥2 、VMware 14密钥3 、VMware 15密钥4 、VMware 17密钥 一、VMware 16 虚拟机下载 VMware 16 下载地址&#xff1a; https://www.vmware.com/cn/products/workstation-pro/workstati…

235. 二叉搜索树的最近公共祖先

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表示为一个结点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节点也可以是它自…

git 同时配置 gitee github

git 同时配置 gitee github 1、 删除C:\Users\dell\.ssh目录。 在任意目录右击——》Git Bash Here&#xff0c;打开Git Bash窗口&#xff0c;下方命令在Git Bash窗口输入。 2、添加git全局范围的用户名和邮箱 git config --global user.email "609612189qq.com" …

秋日氛围 VoxEdit 大赛

将您的创造力提升到一个新的水平。在这个美妙的季节性 VoxEdit 比赛中释放您惊人的体素设计技能。 下载 VoxEdit 开始创作吧&#xff01; 主题&#xff1a;秋天的颜色无处不在。红色、黄色和橙色。南瓜、树叶和温暖舒适的毛衣。创造一个秋天相关的资产。无论是一个穿着秋季衣…

Windows下载AOSP

关于repo repo只是谷歌做的&#xff0c;方便下载安卓源码的工具&#xff0c;本质上是对下载清单进行批量处理&#xff0c;然后使用git克隆。 在windows上下载源码只需要自己处理即可。 具体做法 首先使用git克隆安卓源码清单 git clone https://mirrors.tuna.tsinghua.edu.…

产品经理需要掌握哪些产品专业知识?

作为产品经理&#xff0c;最重要的是洞察客户的需求、理解客户的需求、掌握客户的需求&#xff0c;所以&#xff0c;第一件事情就是要有清晰的战略方向&#xff0c;我们到底梦想是什么&#xff1f;要做什么&#xff1f;能做什么&#xff1f;在哪儿做&#xff1f;谁负责去做&…

为什么mac上有的软件删除不掉?

对于Mac用户来说&#xff0c;软件卸载通常是一个相对简单的过程。然而&#xff0c;有时你可能会发现某些软件似乎“顽固不化”&#xff0c;即使按照常规方式尝试卸载&#xff0c;也依然存在于你的电脑上。这到底是为什么呢&#xff1f;本文将探讨这一问题的可能原因。 1.卸载失…

buuctf-[WUSTCTF2020]CV Maker 文件上传漏洞

打开环境 随便登录注册一下 进入到了profile.php 其他没有什么页面&#xff0c;只能更换头像上传文件&#xff0c;所以猜测是文件上传漏洞 上传一句话木马看看 <?php eval($_POST[a]);?>回显 搜索一下 添加文件头GIF89a。上传php文件 查看页面源代码&#xff0c;看…

求推荐好用的可视化大屏软件?强推奥威BI

在博览中心、会议中心、监控中心等场合下&#xff0c;经常看到很多炫酷的企业可视化大屏&#xff0c;将复杂的企业数据可视化展现&#xff0c;高大上、实用性一个不缺。那&#xff0c;可视化大屏做得好的软件有哪些&#xff1f;首推奥威BI软件。 奥威BI软件&#xff1a;零编程…

数据结构与算法(持续更新)

线性表 单链表 单链表的定义 由于顺序表的插入删除操作需要移动大量的元素&#xff0c;影响了运行效率&#xff0c;因此引入了线性表的链式存储——单链表。单链表通过一组任意的存储单元来存储线性表中的数据元素&#xff0c;不需要使用地址连续的存储单元&#xff0c;因此它…

Flink---12、状态后端(HashMapStateBackend/RocksDB)、如何选择正确的状态后端

星光下的赶路人star的个人主页 大鹏一日同风起&#xff0c;扶摇直上九万里 文章目录 1、状态后端&#xff08;State Backends&#xff09;1.1 状态后端的分类&#xff08;HashMapStateBackend/RocksDB&#xff09;1.2 如何选择正确的状态后端1.3 状态后端的配置 1、状态后端&am…

APP自动化之Poco框架

今天给大家介绍一款自动化测试框架Poco&#xff0c;其脚本写法非常简洁、高效&#xff0c;其元素定位器效率更快&#xff0c;其本质基于python的第三方库&#xff0c;调试起来也会非常方便&#xff0c;能够很好的提升自动化测试效率&#xff0c;节省时间。 (一&#xff09;背景…

Zabbix 监控系统安装和部署

Zabbix 监控系统安装和部署 一、zabbix 是什么&#xff1f;1.1、zabbix 监控原理&#xff08;重点&#xff09;1.2、Zabbix 6.0 新特性1.3、Zabbix 6.0 功能组件1.4、数据库1.5、Web 界面1.6、Zabbix Agent1.7、Zabbix Proxy1.8、Java Gateway 二、部署Zabbix 6.02.1、 解决 za…

SQL监控工具

什么是 SQL 监控 SQL 监视是跟踪和分析整个 MSSQL 生态系统的过程&#xff0c;以识别性能问题并防止依赖数据库的应用程序变慢和/或遇到中断&#xff0c;它有助于获取有关 SQL 服务器的数据库会话、查询、作业、CPU 和内存资源、群集、配置和可用性组的信息。 为什么 MSSQL 监…