当前位置:   article > 正文

SPARK必备概念_one stack to rule them all

one stack to rule them all

RDD (resilient distributed dataset)弹性分布式数据集

One stack to rule them all(一个技术堆栈容纳各种数据处理技术)
包括的大数据计算模型:MapReduce、Streaming、SQL、Machine Learning、graph Processing

对应的Spark四大子框架:Spark Streaming,Spark SQL,Mllib, GraphX

Spark streaming : 流计算框架
Spark SQL:结构化数据SQL查询与分析的查询引擎
MLlib,MLbase:具有机器学习功能的系统MLbase和底层的分布式机器学习库Mllib
GraphX: 并行图计算框架
BlinkDB:近似计算查询引擎
Tachyon:内存分布式文件系统
Mesos:资源管理框架
统一构成了Spark的整个生态系统 称为 伯克利数据分析栈(BDAS)
支持的语言:Scala、Python交互式语言;Java编译式语言

RDD编程模型

Spark的有向无环图(directed acydic graph, DAG)调度及RDD间的Lineage(血统)关系
RDD抽象类的5大部分:
1. getPartitions方法:分区列表(数据块列表)
2. compute方法:计算每个分片的函数
3. getDependencies方法:对父RDD的依赖列表
4. partitioner:Key-Value(键-值)RDD的分区器
5. getPreferedLocations方法:每个数据分片的预定义地址列表(如HDFS上的数据块的地址)
前三个用于描述RDD间Lineage(血统)信息,后两个用于优化执行。
RDD操作:
Transformation和Action,为每个Action会起一个job,只有在action触发后才会transformation(lazy execution 惰性执行)
RDD的依赖关系:
窄依赖:子RDD的每个分区依赖于常数个父分区(与数据规模无关)
宽依赖:子RDD的每个分区依赖于所有父RDD的分区
DAG:
DAG调度时会根据Shuffle将job划分成stage

Spark RDD 实践案例与部署方式:

交互式或者提交应用式两种。
Spark-shell, Spark-submit

实践领域
数据抽取-转换-装载(ETL: Extract-Transform-Load)
数据统计
数据挖掘
数据可视化
数据持久化的定制报告

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号