pyspark-spark基本的概念-spark本地模式-集群模式-HA模式

spark的基本概念


spark基本概念

  • spark就是一款大规模数据的统一分析引擎,基于内存计算,整个spark核心的数据架构是RDD(弹性分布式数据集,认为是列表list),由加州大学柏克莱发表,后贡献给了Apache

  • spark框架中各个节点的通信采用的模块为:netty框架

为什么说spark的运行效率比mr快一点?

  • spark核心: 弹性分布式数据集(RDD), 借鉴了MR的分布式并行计算的思想, 但是解决了MR存在的一些问题, 会将中间的结果存储在内存中(如果存储不下, 也可以存储在磁盘中), 从而提升运行的效率, 同时spark对数据集提供了丰富的处理API(算子)
    在这里插入图片描述

  • 数据结构不同

数据结构不同: 对于spark 核心数据结构RDD(基于内存的弹性的数据集)
理论为一个大的数据容器, 容器中数据是可以都存储在内存中, 直接对容器中数据执行相关API,
完成对数据在内存中处理统计操作, 这样一种基于内存的计算 要比MR这种基于磁盘的计算效率高的多(官方:100)
  • 运行方式

spark基于多线程的运行方案. 一个进程中运行多个线程的, 由每一个线程完成具体的操作MR基于进程的运行方案, 一个计算程序, 会启动多个Task进程来计算的

说明: 进程启动效率要远远低于在一个进程中启动线程的效率

spark的编写语言

  • 当使用spark进行操作的时候, 采用的语言主要是两种: scala(母语) 和 Python
  • 目前使用python操作spark的人群是越来越多的, Python提供一个操作spark的库: pyspark

spark VS Hadoop

在这里插入图片描述

spark四大特点

  • 运行效率快
原因一:中间的结果是保存在内存中的,采用DAG(有向无环图)的方式运行,比mr块100倍,如果是基于磁盘,比mr快10倍

原因二:spark是基于线程运行的,而mr是基于进程运行的,线程的启动和销毁比进程快
  • 易用性好
原因一: spark 支持多种操作语言进行处理,包括python,sql, scala, java, go语言

原因二:spark提供了更加高阶的API,这些API都是见名知意
  • 通用性强

spark的组成部分很多:

spark core:spark核心库,包含RDDAPI, 任务调度, 内存的管理API等等...
spark sql: 用于结构化数据的工具库
spark streaming: spark用于流式处理(实时处理)的一个库,目前使用率在不断的下降, 新的项目都是采用flink进行流式 实时统计计算
spark mllib : 支持机器学习库,包括: 分类 回归, 聚类....
spark graphx: 支持图计算,比如 路程规划计算
  • 随处运行
spark程序可以运行在更多的资源调度平台(spark集群, yarn)

spark可以和其他软件进行集成,降低程序员的代码难度,比如和hive集成

spark local本地模式

  • 上传安装包
    (只需要上传至node1即可, 以下操作都是在node1执行的)

#切换到software目录下
cd /export/software

#上传文件
rz

#解压到server目录下
tar -zxf spark-3.1.2-bin-hadoop3.2.tgz  -C /export/server/

#创建软连接或重命名
ln -s spark-3.1.2-bin-hadoop3.2 spark  或
mv spark-3.1.2-bin-hadoop3.2 spark

#启动spark
cd /export/server/spark/bin
./spark-shell

#表示在本地模拟N个线程来运行当前任务
spark-shell --master local[N] 
#表示使用当前机器上所有可用的资源
spark-shell --master local[*] 

#不携带参数默认就是
spark-shell --master local[*]

#后续还可以使用--master指定集群地址,表示把任务提交到集群上运行,如
./spark-shell --master spark://node01:7077,node02:7077

#退出spark-shell
使用 :quit

  • 说明
1) 客户端一旦启动后, spark提供一个客户端的任务监控界面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值