【Spark】 No.1 Spark 一些需要知道的概念

一 Spark是什么

Apache Spark 是一个快速的,多用途的集群计算系统,,相对于 Hadoop MapReduce 将中间结果保存在磁盘中, Spark 使用了内存保存中间结果,能在数据尚未写入硬盘时在内存中进行运算

Spark 只是一个计算框架, 不像 Hadoop 一样包含了分布式文件系统和完备的调度系统, 如果要使用 Spark,需要搭载其它的文件系统和更成熟的调度系统

二 Spark的特点

1 速度快

Spark 的在内存时的运行速度是 Hadoop MapReduce 的100倍

基于硬盘的运算速度大概是 Hadoop MapReduce 的10倍

Spark 实现了一种叫做 RDDs 的 DAG 执行引擎, 其数据缓存在内存中可以进行迭代处理

2 易用

Spark 支持 Java, Scala, Python, R, SQL 等多种语言的API

Spark 支持超过80个高级运算符使得用户非常轻易的构建并行计算程序

Spark 可以使用基于 Scala, Python, R, SQL的 Shell 交互式查询

3 通用

Spark 提供一个完整的技术栈 包括 SQL执行  Dataset命令式API ,机器学习库MLlib,图计算框架GraphX,流计算SparkStreaming

用户可以在同一个应用中同时使用这些工具,这一点是划时代的

4 兼容

Spark 可以运行在 Hadoop Yarn,Apache Mesos, Kubernets, Spark Standalone等集群中

Spark 可以访问 HBase,HDFS,Hive,Cassandra 在内的多种数据库

三 Spark组件

Spark 最核心的功能是 RDDs, RDDs 存在于 spark-core 这个包内, 这个包也是 Spark 最核心的包 同时 Spark 在 spark-core 的上层提供了很多工具,以便于适应不用类型的计算

1 Spark-Core 和 弹性分布式数据集(RDDs)

Spark-Core 是整个 Spark 的基础,提供了分布式任务调度和基本的 I/O 功能

Spark 的基础的程序抽象是弹性分布式数据集(RDDs),是一个可以并行操作,有容错的数据集合

RDDs 可以通过引用外部存储系统的数据集创建(如HDFS,HBase) 或者通过现有的 RDDs 转换得到

RDDs 抽象提供了 Java,Scala, Python 等语言的API

RDDs 简化了编程复杂性,操作 RDDs 类似通过 Scala 或者 Java8 的 Streaming 操作本地数据集合

2 Spark SQL

Spark SQL 在 spark-core 基础之上带出了一个名为 DataSet 和 DataFrame 的数据抽象化的概念

Spark SQL 提供了在 Dataset 和 DataFrame 之上执行 SQL 的能力

Spark SQL 提供了 DSL,可以通过 Scala, Java, Python 等语言操作 DataSet 和 DataFrame

它还支持使用 JDBC/ODBC 服务器操作 SQL 语言

3 Spark Streaming

Spark Streaming 充分利用 spark-core 的快速调度能力来运行流分析

它截取小批量的数据并可以对之运行 RDD Transformation

它提供了在同一个程序中同时使用流分析和批量分析的能力

4 MLlib

MLlib 是 Spark 上分布式机器学习的框架 Spark分布式内存的架构 比 Hadoop 磁盘式 的 Apache Mahout 快上 10 倍,扩展性也非常优良

MLlib 可以使用许多常见的机器学习和统计算法,简化大规模机器学习

汇总统计,相关性, 分层抽样,,假设检定,随即数据生成

支持向量机,回归, 线性回归,,逻辑回归,决策树,朴素贝叶斯

协同过滤,ALS

K-means

SVD奇异值分解,PCA主成分分析

TF-IDF, Word2Vec,StandardScaler

SGD随机梯度下降,L-BFGS

5 GraphX

GraphX 是分布式图计算框架,提供了一组可以表达图计算的 API,GraphX 还对这种抽象化提供了优化运行

四 Spark与Hadoop异同

类型上

Hadoop 基础平台, 包含计算, 存储, 调度

Spark 分布式计算工具

场景

Hadoop  大规模数据集上的批处理

Spark 迭代计算,交互式计算,流计算

延迟

Hadoop 大

Spark  小

易用性

Hadoop API 较为底层,算法适应性差

Spark API 较为顶层,方便使用

价格

Hadoop 对机器要求低, 便宜

Spark 对内存有要求,相对较贵

以上 感谢!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值