黑马程序员技术交流社区

标题: 【上海校区】spark项目学习--days2-Spark SQL [打印本页]

作者: 不二晨    时间: 2018-10-8 10:58
标题: 【上海校区】spark项目学习--days2-Spark SQL
本帖最后由 不二晨 于 2018-10-9 10:59 编辑

1.Spark SQL 概述
(1)为什么需要SQL
1)事实上的标准
2)简单易学
Hive:类似于sql的Hive QL语言 sql==>mapreduce
   特点:基于mapreduce
   改进:基于tez spark
Spark:分布式的基于内存的计算框架
hive on spark ==> shark(hive on spark)
    优点:基于spark、基于内存的列式存储、与hive能够兼容
    缺点:hive ql的解析、逻辑执行计划生成、执行计划的优化是依赖于hive的,仅仅只是把物理执行计划从mapreduce作业变成了spark作业

2.SQL on Hadoop常用框架
(1)Hive
    1)sql==>mapreduce
    2)metastore:元数据
    3)sql:database、table、view
    4)由facebook开源
(2)impala
    1)cloudera公司:cdh(建议在生产上使用的hadoop系列版本)、cm(具有图形界面)
    2)sql:自己的守护进程执行的,非mr,基于内存的
    3)metastore:元数据
(3)presto
    1)facebook开源,京东用的很多
(4)drill
    1)sql
    2)访问hdfs rdbms json hbase mangodb s3 hive
(5)Spark SQL
    1)sql
    2)dataframe dataset api
    3)hdfs rdbms json hbase mangodb s3 hive 外部数据源

3.Spark SQL概述(处理结构化数据)
    1)不仅仅有访问或者操作SQL的功能,还提供了其他的非常丰富的操作:外部数据源,优化
    2)能够访问hive jison parquet等文件的数据
    3)SQL只是Spark SQL的一个功能
    4)Spark SQL提供了SQL的API DataFrame和Dataset的API

4. hive to spark SQL
1.SQLContext/HiveContext/SparkSession的使用
(1)SQLContext 在Spark1.0中使用
(2)HiveContext 在Spark1.0中使用
    1)to use a HiveContext,you do not need to have an hive setup
(3)SparkSession 在Spark2.0中使用

2. Spark-shell/spark-sql的使用
(1)Spark速度比Hive快很多
(2)Spark-shell和Spark-sql用法差不多
执行过程:
    1)解析成逻辑计划
    2)Spark自身会进行一次计划优化
    3)生成物理执行计划,交给Spark执行
(3)过程:
    1)hive-site.xml配置文件(添加,放到spark下的conf中)
    2)--jars传递mysql驱动包

3. thriftserver/beeline的使用
(1)首先启动服务(要使用--jars传mysql驱动)
(2)启动beeline beeline -u jdbc:hive2://localhost:10000 -n hadoop  连接到thriftserver

4.thriftserver和普通的spark-shell/spark-sql有什么区别?
(1)spark-shell/spark-sql都是对应的一个spark application
(2)thriftserver,不管启动多少个客户端(beeline/code),永远都是一个spark application
    解决了一个数据共享问题,多个客户端可以共享数据;(客户端是指通过JDBC方式连接)

5.jdbc方式编程访问
在使用JDBC开发时,一定要记得先启动thriftserver
【转载】https://blog.csdn.net/canglan211 ... 512?utm_source=copy

作者: 不二晨    时间: 2018-10-10 11:41
奈斯
作者: 魔都黑马少年梦    时间: 2018-11-1 16:33





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2