Spark 理解

本质(是什么)(我在试着讲明白)

基于内存的计算框架

作用(干什么)(我在试着讲明白)

Spark是MapReduce的替代方案,而且兼容HDFS、Hive,可融入Hadoop的生态系统,以弥补MapReduce的不足(spark是微批处理)。

架构(有什么)(我在试着讲明白)

  1. SparkCore:将分布式数据抽象为弹性分布式数据集(RDD),实现了应用调度、RPC、序列化和压缩。并为运行在其上的上层组件提供API
  2. SparkSQL:是spark来操作结构化数据的程序包,通过SQL语句的方式来查询数据,并支持多种数据源(Hive表、parquest以及json等内容)
  3. sparkStreaming:是Spark提供的实时数据进行流式计算的组件
  4. MLlib:提供常用的机器学习算法的实现库
  5. GraphX:提供一个分布式图计算框架,能高效进行图计算
  6. BinkDB:用于在海量数据上进行交互SQL的近似查询引擎
  7. Tachyon:以内存为中心高容错的分布式文件系统

优缺点(我在试着讲明白)

优点

  • 高效性(运行速度快,实现批量和流式数据的高性能)
  • 易用性(支持Java、Python、Scala)
  • 通用性(提供了统一的解决方案:可以用于批处理、交互式查询、实时流处理、机器学习、图计算)
  • 兼容性(融合其他开源产品:可以运行在Mesos<类似yarn>、Yarn、自己给自己分配资源、接收Kubernetes的资源调度)

缺点

流程(怎么运作)(我在试着讲明白)

1、spark的运行模式

  1. local:多用于本地测试,一般在eclipse、idea中运行local模式
  2. standalone:Spark自带的资源调度框架,支持分布式搭建
  3. yarn:Hadoop生态圈中资源调度框架,spark可以在上面运行
  4. Mesos:Apache下的开源分布式资源管理框架

常用(必会)(我在试着讲明白)

常见问题(必知)(我在试着讲明白)

1、Spark与MR的区别?

  • spark基于内存迭代计算,MR基于磁盘迭代计算
  • spark中有DAG有向无环图
  • MR中之后map和reduce,相当于spark中两个算子<map、reduceByKey>,spark中有各种算子应对同的场景

2、sparkCore、spark sql、spark streaming的区别

  • sparkCore是spark的基础; 底层最小数据单位是:RDD; 应用在一些离线、非格式化数据上。
  • sparkSql 的底层数据处理单位是:DataDFrame(新版本为DataSet); 应用在一些离线、格式化数据,可以认为是Hive在spark的实现,用来存储历史数据,做OLAP、日志分析、数据挖掘、机器学习。
  • SparkStreaming 底层数据处理单位是DStream; 应用在处理流式数据,并可以根据数据结构不同,与spark Core(非结构化)、spark Sql(结构化)结合来处理数据
  • 联系:spark sql 是构建在 spark core 之上(是spark core封装而来),

异议

有差错或者需要补充的地方,还望大家评论指出,并详细论证,相互学习,共同进步哈!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值