美文网首页
spark sql的概述与来历

spark sql的概述与来历

作者: 机灵鬼鬼 | 来源:发表于2019-05-29 14:37 被阅读0次

    Hive:类似于sql的hive ql语言,他的底层是直接把sql语句直接转化成MapReduce作业,sql==》MapReduce

    因此他的执行速度就慢:Hive on MapReduce  特点:慢

    改进:Hive on tez,Hive on Spark,就是解决mapReduce的计算速度慢的问题。

    Spark:hive on spark ==>shark(hive on spark),其实shark的作用就是把ql语言翻译成RDD来操作。

    Shark推出

    优点:很受欢迎,基于spark的、基于内存的列式存储,与hive能够兼容。

    缺点:hive ql的解析、逻辑执行计划生成、执行计划的优化是依赖于hive的,仅仅只是把物理执行计划从mr作业替换成spark作业。

    终止:

    Shark终止以后,产生了两个分支:

    1)Hive on Spark

    在Hive社区,源码是在Hive中。Hive发展已经很多年,产品趋于成熟。

    2)Spark Sql

    Spark社区,源码是在Spark中的,近几年发展起来的,就是为了优化掉Shark对hive的依赖,支持多种数据源,多种优化技术,扩展性好很多

    1)Hive:

    facebook开源出来的最原始的sql on hadoop的解决方案。

    底层原理:

    a.将Sql==>MapReduce(将sql指令转化成MapReduce作业)

    b.提出了一个metastore概念:元数据(即里面存储hive有哪些表,表里有哪些列,每一列是什么数据类型等信息的),hive里面创建的表,在spark sql里面是可以访问的,平滑过渡起来很方面。

    c.另外hive的sql跟关系性数据库的sql类似,他也有database、table、view这些概念。

    2)impala:

    a、是cloudera公司开发的,他的产品有:cdh版本的hadoop(此版本很好的解决了hadoop版本的依赖)、cm(提供了web界面方式安装hadoop生态圈的服务)

    b、sql自己的守护进程执行的,非运行在MapReduce的。

    c、metastore也有这个概念

    3)presto

    facebook开源的,京东在用,sql

    4)drill(近几年火)

    sql

    能操作的数据服务框架:hdfs、hive、rdbms、json、hbase、mangoodb、s3或者外部关系型数据库

    5)Spark SQL(近几年火)

    sql

    dataframe/dataset api

    metastore

    能访问的数据服务框架:hdfs、hive、rdbms、json、hbase、mangoodb、s3或者外部关系型数据库

    Spark SQL的详细介绍

    社区活跃,且版本稳定 可以操作sql/hive sql/udf、udafs和serdes 可以通过jdbc和odbc方式访问已经存在三方库里的数据 支持多种语言开发

    Spark SQL is Apache Spark's module for working with structured data.(Spark SQL是Spark的一个模块,他是处理结构化数据的比如txt、json等)

    Spark Sql不仅仅有访问和操作sql的功能,还有其他非常丰富的操作:外部数据源、优化等;

    Spark Sql提供了sql的api也提供了DataFrame和DataSet的API。

    DataFrame执行速度比RDD快 spark sql底层的catlist的优化过程 DataFrame和Spark Sql的优化原理都是一样的

    相关文章

      网友评论

          本文标题:spark sql的概述与来历

          本文链接:https://www.haomeiwen.com/subject/baotoftx.html