spark sql的应用场景
最近一直在银行做历史数据平台的项目,目前整个项目处于收尾的阶段,也好有时间整理下在项目中的一些收获。
该历史数据平台使用spark+Nosql架构了,Nosql提供了海量数据的实时查询,而spark提供了sql支持,最开始给客户设计方案的时候,对spark sql也不是很熟悉,只知道它的thriftserver可以支持JDBC,在做方案的设计的使用,Spark SQL提供了对外查询的接口。在测试中发现,spark sql的sql是一个执行完成后才能执行另一个,就是换了fair这种作业调度方式,整个集群的并发还是很慢。
spark是一个分布式计算框架, 从他的作业调度可以看到http://spark.apache.org/docs/latest/job-scheduling.html,它的资源分配粒度很粗,CPU的核数进行分配的,集群的CPU资源是有限的,同时spark sql资源计算时需要把大量数据加载到内存中,需要消耗集群大量的内存资源,再做shuffle的时候,又需要消耗大量的网络IO和磁盘IO, 如果同时多个job执行,那么每个job获得资源要么少,要么需要排队。而不能像关系型数据库那么提供高并发的服务。
我咨询了一下做NoSQL开发的哥们,NoSQL中没有做任务调度,但是每次查询的速度很快,对请求处理很块,这样并发就好了。如果遇到执行慢的请求,也会拖累查询速度,毕竟硬件资源有限,当然目前他们也在做资源调度这一块。
通过上面的分析,Spark SQL只是一个批处理的工具,所以如果用户比较少,并发要求不高,可以用spark sql,如果你想像关系型数据库那样提供对外服务,就选错工具了。
spark sql的应用场景的更多相关文章
- Hive、Spark SQL、Impala比较
Hive.Spark SQL.Impala比较 Hive.Spark SQL和Impala三种分布式SQL查询引擎都是SQL-on-Hadoop解决方案,但又各有特点.前面已经讨论了Hi ...
- 整理对Spark SQL的理解
Catalyst Catalyst是与Spark解耦的一个独立库,是一个impl-free的运行计划的生成和优化框架. 眼下与Spark Core还是耦合的.对此user邮件组里有人对此提出疑问,见m ...
- 平易近人、兼容并蓄——Spark SQL 1.3.0概览
自2013年3月面世以来,Spark SQL已经成为除Spark Core以外最大的Spark组件.除了接过Shark的接力棒,继续为Spark用户提供高性能的SQL on Hadoop解决方案之外, ...
- 【转载】Spark SQL 1.3.0 DataFrame介绍、使用
http://www.aboutyun.com/forum.php?mod=viewthread&tid=12358&page=1 1.DataFrame是什么?2.如何创建DataF ...
- Spark SQL利器:cacheTable/uncacheTable
Spark相对于Hadoop MapReduce有一个很显著的特性就是“迭代计算”(作为一个MapReduce的忠实粉丝,能这样说,大家都懂了吧),这在我们的业务场景里真的是非常有用. 假设我们有 ...
- Spark SQL 用户自定义函数UDF、用户自定义聚合函数UDAF 教程(Java踩坑教学版)
在Spark中,也支持Hive中的自定义函数.自定义函数大致可以分为三种: UDF(User-Defined-Function),即最基本的自定义函数,类似to_char,to_date等 UDAF( ...
- Spark SQL笔记——技术点汇总
目录 概述 原理 组成 执行流程 性能 API 应用程序模板 通用读写方法 RDD转为DataFrame Parquet文件数据源 JSON文件数据源 Hive数据源 数据库JDBC数据源 DataF ...
- Spark SQL 1.3测试
Spark SQL 1.3 参考官方文档:Spark SQL and DataFrame Guide 概览介绍参考:平易近人.兼容并蓄——Spark SQL 1.3.0概览 DataFrame提供了一 ...
- 大数据技术之_19_Spark学习_03_Spark SQL 应用解析 + Spark SQL 概述、解析 、数据源、实战 + 执行 Spark SQL 查询 + JDBC/ODBC 服务器
第1章 Spark SQL 概述1.1 什么是 Spark SQL1.2 RDD vs DataFrames vs DataSet1.2.1 RDD1.2.2 DataFrame1.2.3 DataS ...
随机推荐
- GWT嵌入纯HTML页面
众所周知,gwt页面是java代码所写,不存在html页面直接作用于gwt面板中.不过gwt也倒是提供了一些可用的功能,比如frame,这个是UI中的一个,内部可以设置URL,但是经过我测试后发现,这 ...
- Java-API:javax.servlet.http.HttpServletResponse
ylbtech-Java-API:javax.servlet.http.HttpServletResponse 1.返回顶部 1. javax.servlet.http Interface HttpS ...
- MySQL 更新失效
create table t(id int not null PRIMARY key,c int default null) engine=innodb;insert into t(id,c)valu ...
- Oracle 备份与恢复基础
Oracle 备份与恢复基础 :三思笔记 备份与恢复 A whole database backup is either a consistent backup or an inconsistent ...
- mybatis 学习六 MyBatis主配置文件
在定义sqlSessionFactory时需要指定MyBatis主配置文件: <bean id="sqlSessionFactory" class="org.myb ...
- Ubuntu14.04LTS上安装Pip
pip是一个安装和管理Python包的工具.在Pip的帮助下,你可以安装独特版本的包. 最重要的是,Pip可以通过一个“requirements”的工具来管理一个由包组成的列表和版本号. Pip很像e ...
- [Apache]如何查看apache服务器的error log(错误日志)
在进行网页和服务器的测试时, 有时会提醒 500 Internal Server Error: The server encountered an internal error or misconfi ...
- 如何Catalog磁带库中的备份集
在NBU备份的环境中,可以使用以下步骤来Catalog磁带库中的备份集. 1. 查找需要Catalog的备份集名称 可以使用两种方法查找Oracle备份集. 方法一是使用RMAN的list命令查找,例 ...
- 11-24网页基础--Js框架及学习思路
第一部分 基本语法: 1.数据类型(字符串.小数.整数.布尔.时间日期)var s="3.14" var n=parsefloat(s) s+=5;var s="abc3 ...
- orancle数据库 插入数量 值大于 1000 解决方案
存储过程:当基站ID大于1000的时候,把ID通过存储过程插入表,然后处理 不推荐这么弄,没办法,项目逼到这了,以后尽量避免这样的需求发生! CREATE OR REPLACE PROCEDURE i ...