zoukankan      html  css  js  c++  java
  • spark技术热点问题互动问答

    决胜云计算大数据时代”

     Spark亚太研究院100期公益大讲堂 【第4期互动问答分享】

     Q1:Spark SQL和Shark有啥区别?

             Shark需要依赖于Hadoop上Hive去做SQL语句的解析和分析Spark,而SQL是主要依赖了Catalyst这个新的查询优化框架,在把SQL解析成逻辑执行计划之后,利用Catalyst包里的一些类和接口,执行了一些简单的执行计划优化,最后变成RDD的计算;

             Databricks表示,Shark更多是对Hive的改造,替换了Hive的物理执行引擎,因此会有一个很快的速度。然而,不容忽视的是,Shark继承了大,量的Hive代码,因此给优化和维护带来了大量的麻烦。随着性能优化和先进分析整合的进一步加深,基于MapReduce设计的部分无疑成为了整个项目的瓶颈;

             Spark新发布的Spark SQL组件让Spark对SQL有了别样于Shark基于Hive的支持:

    l   其一,能在Scala代码里写SQL,支持简单的SQL语法检查,能把RDD指定为Table存储起来。此外支持部分SQL语法的DSL。

    l   其二,支持Parquet文件的读写,且保留Schema。

    l   其三,能在Scala代码里访问Hive元数据,能执行Hive语句,并且把结果取回作为RDD使用。

     Q2:Spark SQL会提供JDBC吗?

        Spark官方指出:“Spark SQL includes a server mode with industry standard JDBC and ODBC connectivity.”;

        Jdbc support branchis under going。    

     Q3:执行Task不是还要跟Driver交互吗?

        执行Task时要和Driver交互,动态的向Driver报告执行情况。

     Q4:对于RDD上的数据如何取出来供外部程序使用?

        使用save等方法保存在HDFS之上;

        然后通过Sqoop等工具到处到MySQL等数据库供外部使用;

        也可以保存在HBase之上。

     Q5:Spark官网上说Spark SQL不是很强大,还说建议大家复查查询的时候还是使用Hive。

             Spark 1.0和1.0.1版本复杂的查询需要使用Hive;

             随着Spark版本的更新,可以做任何复杂度的查询。

  • 相关阅读:
    java实现简单web服务器(分析+源代码)
    Java中常见的5种WEB服务器介绍
    Android ViewDragHelper完全解析 自定义ViewGroup神器
    设置SVN,Git忽略MAC的.DS_Store文件的方法
    Android中图片大小和屏幕密度的关系讲解
    Android组件化方案及组件消息总线modular-event实战
    机器学习在美团配送系统的实践:用技术还原真实世界
    智能支付稳定性测试实战
    数据库智能运维探索与实践
    【人物志】技术十年:美团第一位前端工程师潘魏增
  • 原文地址:https://www.cnblogs.com/spark-china/p/3865387.html
Copyright © 2011-2022 走看看