网站首页 > 技术文章 正文
PS说明:今天把spark生态圈讲一遍,明天开始深入spark,希望大家能喜欢我的文章,也请大家多多支持
目前,spark已经发展成为包含众多子项目的大数据计算平台,BDAS是伯克利大学提出的基于spark的数据分析栈(BDAS),其中核心就是spark,同时涵盖支持结构化数据sql查询与分析的查询引擎spark sql ,提供机器学习功能mlbase及底层的分布式机器学习库mllib,并行图计算框架graphx,流计算框架spark streaming,近似查询引擎blinkDB,内存分布式文件系统tachyon,资源管理框架mesos等子项目,这些子项目在spark上层提供了更高层,更丰富的计算范式。
下面详细对BDAS各个子项目进行介绍
(1)spark
spark是整个BDAS的核心组件,是一个大数据分布式编程框架,不仅实现了mapreduce的算子map函数和reduce函数及计算模型,而且速度比mapreduce计算速度快多倍,还提供了更为丰富的算子,例如filter,,union,sortsByKey,join,groupByKey等,还有一些核心组件RDD,DAGScheduler,taskscheduler,stage等。spark将分布式数据抽象成RDD(弹性分布式数据集),并实现了任务调度,rpc,序列化和压缩,并为运行在其上层的组件提供api,其底层采用scala这种函数式语言书写而成,并且所提供的api深度借鉴函数式的编程思想,提供与scala类似的编程接口。
spark将数据在分布式环境下分区,然后将作业转化为有向无环图,减少了多次计算中间结果的磁盘开销,并分阶段进行Dag的调度和任务的分布式并行处理
(2)Spark SQL
spark sql提供在大数据上的sql查询功能,类似与shark在整个生态系统的角色,
它们可以统称为sql on spark ,之前,由于shark的查询编译和优化器依赖hive,使得shark不得不维护一套hive分支,而spark sql使用catalyst作为查询解析和优化器,并在底层使用spark作为执行引擎实现sql的算子,用户可以在spark上直接书写sql,相当于为spark扩充了一套sql算子,这无疑更加丰富了spark的算子和功能。同时spark sql不断兼容不同持久化存储(hive,hdfs,json),为其发展奠定广阔的空间。
(3) spark streaming
spark streaming通过将流数据按照指定的时间片段累积为RDD,然后将每个RDD进行批处理,进而实现大规模的流数据处理。其吞吐量能够超越现有的主流流处理框架storm,并提供丰富的api用于流计算。可以对多种数据源(kafka,flume,twitter,zero和tcp)进行map,reduce,join,window等复杂操作,并将结果保存在外部系统,供数据分析和可视化
(4) Graphx
Graphx基于BSP模型,在spark之上封装类似pregel的接口,进行大规模同步全局的图计算,尤其是当用户进行多轮迭代的时候,基于spark的内存计算的有时尤其明显
(5)MLlib
MLlib是spark之上的分布式机器学习算法库,同时包括相关的测试和数据生成器,MLlib支持常见的机器学习问题,例如分类,聚类,回归以及协同过滤,同时也包括一个底层的梯度下降优化基础算法。
总结:spark目前不管在平时的工作中,还是职场面试,只要涉及大数据话题,spark是绕不过的话题,所以希望要走大数据道路的童鞋,或者想踏入大数据行列的,请跟谁我的脚本,哈哈,请大家多多关注,我会坚持把涉及到spark的干活,实用场景,慢慢码出来,分享给大家
猜你喜欢
- 2024-10-12 大佬用10小时就把Spark讲完了,附6大技术文档
- 2024-10-12 浅析图数据库 Nebula Graph 数据导入工具——Spark Writer
- 2024-10-12 Spark Streaming 和 Flink 谁是数据开发者的最爱?
- 2024-10-12 分享几点 Spark Streaming 调优实践经验
- 2024-10-12 大数据学习之计算天下——SPARK的那些事
- 2024-10-12 第二篇|Spark core编程指南 spark编程软件
- 2024-10-12 Spark计算引擎 spark是基于什么计算引擎
- 2024-10-12 Spark Shuffle机制 sparkshuffle原理
- 2024-10-12 一文带你了解SparkStreaming窗口函数
- 2024-10-12 深度预警:Spark运行原理 简述spark的运行架构和原理
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)