SparkSql概述

需要Sql的原因:

   1.事实上的标准

   2.易学易用

   3.受众面大

Shark:

HIve on tez

Hive on mapreduce

Hive on Spark

shark推出:欢迎,基于spark,基于内存的列式存储,与hive能够兼容

缺点:hive ql解析,逻辑执行计划生成,执行计划的优化是依赖于hive的

         仅仅是把物理执行计划从mr作业替换为spark作业

         hive没有注意线程安全

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

     hive on spark :

        Hive社区,源码在HIve中

    Spark  SQL

        Spark Sql社区,源码是在Spark中

        支持多种数据源,多种优化技术,扩展性好很多

Sql on hadoop常用框架:

    1.HIve

        sql语句转化为mapreduce作业

        metastore:元数据

        Facebook开发

    2.impala

        cloudera:cdh,cm

       sql:自己的守护进程执行,非mr

      metastore:元数据

       基于内存

    3.presto

        facebook开发

        京东使用

   4.drill

        可以访问hdfs,rdbms,json,hbase,mangodb,s3,hive

   5.Spark Sql

      sql

      dataframe/dataset api

      metastore:

      可以访问hdfs,rdbms,json,hbase,mangodb,s3,hive

SparkSql的概述:

    1.可以运行,Sql,HiveSql,UDFs,UDAFs 和序列化以及反序列化

    2.Connect BI tools to Spark through JDBC

    3.支持Python,Java,R,Scala

    Spark Sql它不仅有访问或者操作Sql的功能,还提供了其他的非常丰富的操作:外部数据源,优化

    Spark SQL is Apache Spark's module for working with structured data

    Spark Sql的应用并不局限于Sql

    访问Hive,json,parquet等文件的数据

    Sql只是Spark SQL的一个功能而已

    SparkSql提供了SQl的api,DataFrame和Dataset的API

SparkSql愿景:

   Write  less Code

   Read less data

   Let the optimizer do the hard work

Spark Sql架构:

SparkSql概述_第1张图片

Spark1.x中Spark Sql的入口点:Sql Context:

SparkSQL的愿景:

   1.写更少的代码

你可能感兴趣的:(大数据)