博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为什么要使用Spark?
阅读量:5326 次
发布时间:2019-06-14

本文共 735 字,大约阅读时间需要 2 分钟。

现有的hadoop生态系统中存在的问题

1)使用mapreduce进行批量离线分析;
2)使用hive进行历史数据的分析;
3)使用hbase进行实时数据的查询;
4)使用storm进行实时的流处理;
5)。。。。。。
导致:维护成本高、学习成本高
Spark的出现弥补了Hadoop生态系统中的缺陷,使用spark搞定”一切“
 
选用spark的原因
1、One stack to rule them all
    
  1) 应用于流式计算的Spark Streaming
  2) 应用于即席查询(Ad-hoc)的Spark SQL
  3) 应用于机器学习(数据挖掘)的MLlib
  4)应用于图处理的GraphX
  5)将R扩展成并行计算的SparkR
  6)还有权衡精度和速度的查询引擎BlinkDB
 
2、速度快(运行/开发)
  运行速度快的原因:
  1)基于内存计算(从表象来看)
    2)DAG(从深层次来看):把执行过程做成一张图,再来优化
     开发速度快:scala代码更优雅(但是还得学习scala啦。。。。。。)
 
 
Spark和MapReduce对比
1)调度:启动map和reduce任务需要时间
2)数据共享:从HDFS上读取数据执行,每次迭代均要重写将结果写回到HDFS上,后续的迭代如果需要前面运行的结果数据时需要再去HDFS上读取,以此类推,如果迭代N次。。。
3)输出结果数据多副本:数据需要额外的复制、序列化、磁盘/IO的开销
 Spark和MapReduce的区别:迭代时数据写入内存,而不是HDFS上,进而减少大量的磁盘IO开销。
 

转载于:https://www.cnblogs.com/luogankun/p/3798405.html

你可能感兴趣的文章
vs调试程序缺少 msvcp140d.dll 解决方法
查看>>
【模拟】神奇的树
查看>>
ubuntu创建用户命令
查看>>
web.xml 配置中classpath: 与classpath*:的区别
查看>>
block为什么要用copy,runtime的简单使用
查看>>
[COGS 2065]学数数
查看>>
nginx 负载均衡
查看>>
zabbix3.0.4 部署之四 (LNAP > PHP安装)
查看>>
day22
查看>>
计量经济与时间序列_平稳性
查看>>
SpringBoot初学(4)– JdbcTemplate和Mybatis
查看>>
java数据结构与算法(二)----栈和队列
查看>>
深入理解JavaScript系列
查看>>
【Python】Linux crontab定时任务配置方法(详解)
查看>>
php文件加载路径
查看>>
树剖||树链剖分||线段树||BZOJ4034||Luogu3178||[HAOI2015]树上操作
查看>>
短信验证码
查看>>
挨踢项目求生法则——编码篇
查看>>
Springboot 2.0.4 整合Mybatis出现异常Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required...
查看>>
拖拽复制
查看>>