Spark学习之概念了解
Spark简介:
Spark是一个快速且通用的集群计算模型:
1、Spark是快速的:
快速是指处理几T到几批数据量的时候,他的处理时间是几秒钟或几分钟,相对于hadoop的几分钟到几小时是非常快速的,
通用是指Spark的应用场景比较多
Spark扩展了MapReduce的计算模型
Spark是基于内存计算的
当我们在处理一个大批量数据的时候,难免呢会产生一些中间的数据结果,怎么处理呢
第一种:放在硬盘中,硬盘会带来额外的写入写出的消耗
第二种:直接存放到内存中,放到内存中肯定比放到硬盘中要快一些。所以Spark的速度是很快的
举例(瑞士军刀,大刀,小刀等等)
Spark特点
2、Spark是通用的:
Spark容纳了其他的分布式系统拥有的功能,批处理(hadoop),迭代式处理(机器学习系统),交互式查询(hive查询)和流处理(storm)
当我们搭建一个Spark集群时,就相当于搭建了这么多的功能
优点:大大的降低了集群的维护成本,因为在生产环境中,集群的维护是相当耗时
Spark是高度开放的 :
提供了python java Scala sql的API,
与其他的大数据工具整合的很好,包括Hadoop,kafka等
Spark组件
spark core:
包括spark基本功能,包括任务调度,内存管理,容错机制
内部定义了RDDs(弹性分布式数据集),
提供多个APIs来创建和操作这些RDDs
应用场景,为其他组件提供底层服务
spark sql:
spark处理结构化数据的库,类似Hive SQL,MySql,
应用场景,主要为企业提供报表统计
spark streaming:
实时数据流处理组件,类似Storm,提供API操作实时流数据,
应用场景,企业中用来从Kafka中接收数据做实时统计
Mlib:
包含通用机器学习功能的包,包括聚类,回归,模型评估和数据导入。同时支持集群平台上的横向扩展
之前做机器学习都是Python比较多一点,Python的最大缺点是在单机上的,处理的数据量是有限的
而Mlib呢,是集群的,他的应用场景就是机器学习
Graphx:
处理图的库(例如社交网络的图),并进行图的并行计算
像spark steaming,spark sql一样,他也继承了RDD API
他提供了各种图的操作,和常用的图的算法,例如PangeRank算法
应用场景:就是图计算
Cluster Manager:
spark自带的集群管理
Spark紧密集成的优点:
spark底层优化,基于spark底层的组件也得到相应的优化,
紧密集成节省了组件的部署,测试时间
向spark增加新的组件时,其他组件,可立刻享用新组件的功能
Hadoop&Spark比较
Hadoop应用场景:
离线处理,时效性要求不高的场景:Hadoop中间数据落到硬盘上,导致Hadoop处理大数据时,时效性不高,时间在几分钟到几小时不等,但数据可以存储。
Spark应用场景:
时效性要求高的场景和机器学习:Spark基于内存,中间数据多在内存中,数据处理块,但Spark不具备hdfs存储功能,需借助hdfs
Doug Cutting 的观点:
spark这是个生态系统,每个组件都有其作用,各姗其职即可,
Spark不具有HDFS的存储能力,要借助HDFS等持久数据
大数据将会孕育出更多的新技术
最新文章
- [译文]选择使用正确的 Markdown Parser
- ping脚本
- <;代码整洁之道>;、<;java与模式>;、<;head first设计模式>;读书笔记集合
- ActiveMQ的几种消息持久化机制
- 在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程
- ubifs核心功能 -- 垃圾回收
- linux c学习笔记----进程创建(fork,wait,waitpid)
- angularJS常见问题汇总
- eclipse设置关联文件打开方式
- CentOS配置smaba与Windows共享文件
- 安装Genymotion与集成eclipse,最后有集成android studio
- sharepoint:各种阀值
- 详解go语言的array和slice 【一】
- python笔记二(mysql数据库操作)
- cisco交换机实现端口聚合
- 03 持续集成和部署/基础设施 - DevOps之路
- 重新拾取:TFS2017钉钉机器人源代码签入通知
- Python爬虫 selenium
- JQuery Checkbox 获取多选值 Checkbox选中个数
- OpenGIS