计算机系统应用教程网站

网站首页 > 技术文章 正文

干货分享-五分钟了解Spark生态圈BDAS

btikc 2024-10-12 11:42:24 技术文章 11 ℃ 0 评论

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的干活,实用场景,慢慢码出来,分享给大家

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表