大数据 Spark 架构
一.Spark的产生背景起源
1.spark特点
1.1轻量级快速处理
Saprk允许传统的hadoop集群中的应用程序在内存中已100倍的速度运行即使在磁盘上也比传统的hadoop快10倍,Spark通过减少对磁盘的io达到性能上的提升,他将中间处理的数据放到内存中,spark使用了rdd(resilient distributed datasets)数据抽象
这允许他在内存中存储数据,所以减少了运行时间
1.2 易于使用
spark支持多种语言。Spark允许java,scala python 及R语言,允许shell进行交互式查询
1.3 支持复杂的查询
除了简单的map和reduce操作之外,Spark还支持filter、foreach、reduceByKey、aggregate以及SQL查询、流式查询等复杂查询。Spark更为强大之处是用户可以在同一个工作流中无缝的搭配这些功能,例如Spark可以通过Spark Streaming(1.2.2小节对Spark Streaming有详细介绍)获取流数据,然后对数据进行实时SQL查询或使用MLlib库进行系统推荐,而且这些复杂业务的集成并不复杂,因为它们都基于RDD这一抽象数据集在不同业务过程中进行转换,转换代价小,体现了统一引擎解决不同类型工作场景的特点。
1.4 实时的流处理
对比maprduce只能处理离线数据。Spark还能支持实时的流计算,spark streaming 主要用来对数据进行实时的处理,yarn的nodemanger统一调度管理很厉害,在yarn产生后hadoop也可以整合资源进行实时的处理
2.时事产物
2.1 mapreduce产生时磁盘廉价,因此许多设计收回考虑到内存的使用,而spark产生时内存相对廉价,对计算速度有所要求,因此spark的产生是基于内存计算的框架结构mapreduce需要写复杂的程序进行计算,
二.Spark架构
1.spark的体系结构
Spark的体系结构不同于Hadoop的mapreduce 和HDFS ,Spark主要包括spark core和在spark core的基础上建立的应用框架sparkSql spark Streaming MLlib GraphX;
Core库主要包括上下文(spark Context)抽象的数据集(RDD),调度器(Scheduler),洗牌(shuffle) 和序列化器(Seralizer)等。Spark系统中的计算,IO,调度和shuffle等系统的基本功能都在其中
在Core库之上就根据业务需求分为用于交互式查询的SQL、实时流处理Streaming、机器学习Mllib和图计算GraphX四大框架hdfs迄今是不可替代的
Spark架构组成图
一.Hive和spark对sql支持的对比
Hive创建数据库 创建表 true
验证策略 |
脚本 |
Hive |
Spark-sql |
创建库 删除库 |
Create database lvhou_hive Create database lvhou_spark Dorp database lvhou_hive Dorp database lvhou_spark |
True |
True |
创建表 删除表 |
Use lvhou_hive Create table hive_test(a string,b string) Use lvhou_spark Create table spark_test(a string,b string) Drop table hive_test Drop table spark_test |
True |
True |
CTAS |
Create table lvhou_test as selec * from lvhou_test1; |
true |
false |
Insert |
Insert into lvhou_hive values(‘hhah’,’heheh’) |
true |
false |
insert |
Insert into lvhou_spark value(‘12’.’32’),(‘asd’,’asdf’) |
True |
false |
Select |
Select * from lvhou_hive Select * from lvhou_spark |
True |
True |
Select in |
|||
Select子查询 in 两条数据 not in 两条数据 |
select * from test1 where a,b in (select a,b from test2 where a = 'aa'); select * from test1 where a,b not in (select a,b from test2 where a = 'aa'); |
falese |
false |
Select union查询 union all |
select * from test union all select * from test0;(合一) select * from test union select * from test0;(去重) |
true |
false |
Select union 3查询 union all |
select * from (select * from test union select * from test0) a; select a from (select * from test union all select * from test0) a; |
false |
False |
Select exit not exit |
select * from test t where exists(select * from test0 t0 where t0.a = t.a); select * from lv_test where exists(select * tfrom test t where lv_test.a = t.a); |
True |
False |
update |
update test1 set b = 'abc' where a = 'aa'; update test1 set a = 'abc'; Update test1 set b = 'abc'; |
True |
False |
delete |
delete from test1 where a = 'aa'; delete from test1; |
True |
False |
TRUNCATE TABLE |
Truncate table test; |
True |
False |
Alter |
alter table test1 add columns (d string); alter table test drop a; alter table test rename a to a1; |
True |
False |
索引 |
create index index_a on table test(a) as 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' with deferred rebuild; |
True |
False |
INTERSECT 交集 |
select a from test INTERSECT select a from test0; |
False |
False |
EXCEPT |
select a from test EXCPEPT select a from test0; |
False |
False |
Minus 返回第一个结果中不同的 |
select a from test minus select a from test0; |
False |
False |
order by 排序 |
select a from test order by a desc; |
True |
False |
sort by 排序 |
select a,b from test sort by b desc; |
True |
False |
distribute by |
select a,b from test distribute by a; |
True |
False |
distribute by + sort by |
select a,b from test distribute by a sort by b asc; |
True |
False |
cluster by |
select a,b from test cluster by a; |
True |
False |
trim(string a) 去空格 |
select trim(' aaa ') from test00; |
True |
True |
substr(string A,int start,int len) 截取字符串 |
select substr('abcdefg',3,2) from test; select substr('abcdefg',-3,2) from test; |
True |
True |
like |
select * from test where a like '%a%'; |
True |
False |
Count |
select count(*) from test00; select count(distinct *) from test00; |
True |
False |
Sum |
select sum(c) from test00; select sum(distinct c) from test00; |
True |
False |
Avg |
select avg(c) from test00 select avg(distinct c) from test00 |
True |
False |
Min |
select min(distinct c) from test00; |
True |
False |
Max |
select max(distinct c) from test00; |
True |
False |
group by |
select a from test00 group by a ; select a,sum(c) from test00 group by a; select a,avg(c) from test00 group by a; |
True |
False |
Hiving |
select a,avg(c) as ac from test00 group by a having ac=1; |
True |
False |
load |
load data local inpath '/tmp/qichangjian/test01.txt' overwrite into table test_load; |
True |
False |
转载于:https://www.cnblogs.com/tsxylhs/p/7427874.html
大数据 Spark 架构相关推荐
- 量化派基于Hadoop、Spark、Storm的大数据风控架构--转
原文地址:http://www.csdn.net/article/2015-10-06/2825849 量化派是一家金融大数据公司,为金融机构提供数据服务和技术支持,也通过旗下产品"信用钱包 ...
- 资深数据大牛《教你如何从零开始做大数据底层架构》!(转)
http://www.toutiao.com/a6475623583879004685/?tt_from=weixin&utm_campaign=client_share&app=ne ...
- Google大数据技术架构探秘
Google是大数据时代的奠基者,其大数据技术架构一直是互联网公司争相学习和 研究的重点,也是行业大数据技术架构的标杆和示范. 1.谷歌的数据中心 谷歌已经建立了世界上最快.最强大.最高质量的数据中心 ...
- 大数据实验报告总结体会_建设大数据中台架构思考与总结
简介 本文介绍完善的大数据中台架构了解这些架构里每个部分的位置,功能和含义及背后原理及应用场景. 帮助技术与产品经理对大数据技术体系有个全面的了解. 数据中台定义:集成离线数仓与实时数仓,并以多数据源 ...
- 硅谷企业的大数据平台架构什么样?看看Twitter、Airbnb、Uber的实践
导读:本文分析一下典型硅谷互联网企业的大数据平台架构. 作者:彭锋 宋文欣 孙浩峰 来源:大数据DT(ID:hzdashuju) 01 Twitter的大数据平台架构 Twitter是最早一批推进数字 ...
- 大数据|Spark技术在京东智能供应链预测的应用案例深度剖析(一)
大数据|Spark技术在京东智能供应链预测的应用案例深度剖析(一) 2017-03-27 11:58 浏览次数:148 1. 背景 前段时间京东公开了面向第二个十二年的战略规划,表示京东将全面走向技 ...
- 大数据平台架构包含哪些功能
为了满足企业对于数据的各种需求,需要基于大数据技术构建大数据平台.结合大数据在企业的实际应用场景,如下图所示的大数据平台架构所示: 最上层为应用提供数据服务与可视化,解决企业实际问题.第2层是大数据处 ...
- 浅谈大数据平台架构设计
全文共3735个字,建议8分钟阅读 近年来,随着IT技术与大数据.机器学习.算法方向的不断发展,越来越多的企业都意识到了数据存在的价值,将数据作为自身宝贵的资产进行管理,利用大数据和机器学习能力去挖掘 ...
- 大数据平台架构技术选型与场景运用
内容来源:2017年5月6日,大眼科技CTO张逸在"魅族技术开放日第八期--数据洞察"进行<大数据平台架构技术选型与场景运用>演讲分享.视频地址:https://mp. ...
- 大数据平台架构的层次划分
1. 数据源层:包括传统的数据库,数据仓库,分布式数据库,NOSQL数据库,半结构化数据,无结构化数据,爬虫,日志系统等,是大数据平台的数据产生机构. 2. 数据整理层:包括数据清洗.数据转换.数据加 ...
最新文章
- 乐嘉性格色彩分析测试题
- 京东电商搜索中的语义检索与商品排序
- python爬虫代码实例-Python爬虫爬取百度搜索内容代码实例
- 韩信点兵python源代码_少儿编程|Python小课堂 – 韩信点兵
- CSS美化网页元素大全
- matlab parfor不能用,matlab中parfor函数
- JS Event事件
- Wijmo 2016年蓝图
- win10c语言安装未响应,重新安装win10以后,系统总会死机,不响应任何操作,严重影响正常使用。...
- 【转】Cowboy 开源 WebSocket 网络库
- IDEA Debug 无法进入断点的解决方法
- 在 VB.NET 编程中使用数组
- 远程桌面控制VC源码剖析
- 极速办公(ppt)如何修改字体颜色
- 【APP授权登录】创建新浪微博(sina)移动应用
- 做了5年研发效能度量,我的6点思考
- 利用CSS制作一个梦幻西游小动画
- 利用百度地图开放平台的Web API实现检索定位
- 太平洋电信首批通过SD-WAN Ready 2.0服务认证
- PHP-简单理解递归
热门文章
- 如何将电视机用作 Mac 的显示器?
- 在 Mac 上的 Keynote 中如何先排版再选照片?
- zookeeper-架构设计与角色分工-《每日五分钟搞定大数据》
- 从“制造”到“智造”,南高齿携手锐捷打造“智能工厂”
- Linux集群和自动化维1.1.1 什么是HTTP 1.1
- unicode字符和多字节字符的相互转换接口
- 如何监控 Tomcat?Zabbix 与 Cloud Insight 对比
- Android学习笔记(18):编辑框EditText
- android适配各种分辨率的问题
- Android TextView 45°倾斜效果