版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012292754/article/details/83616262
1 Spark SQL 背景介绍
1.1 Hive 介绍
- 类似 sql 的 Hive QL 语言, sql -> mapreduce
- 改进: hive on tez,hive on spark, hive on mapreduce
1.2 Spark SQL 前世
- hive on spark -> shark
- shark,基于 spark,基于内存的列式存储,与 hive 能够兼容
- shark 缺点: hive ql 的解析、逻辑执行计划生成、执行计划的优化是依赖 hive 的;仅仅只是把物理执行计划从 mr 作业替换成 spark 作业
1.3 Shark 终止
Shark 终止后,产生了 2 个分支:
- hive on spark: Hive 社区,源码在 Hive 中
- Spark SQL: Spark SQL 社区;支持多种数据源
1.4 SQL on Hadoop 常用框架
- Hive ,sql -> mapreduce;facebook 开源; metastore:元数据;
- impala ,cloudera公司:cdh(建议生产中使用);cm;sql:自己的守护进程执行的,非mr;metastore:元数据;
- presto: facebook 开源;京东;sql
- drill: sql; 访问 : hdfs 、rdbms,json,hbase,mangodb,s3,hive
- Spark SQL: sql; dataframe/dataset api; metastore; 访问 : hdfs 、rdbms,json,hbase,mangodb,s3,hive
1.5 Spark SQL 总结
- 应用不局限于 SQL
- 访问 hive,json,parquet 等文件的数据;