Spark SQL:处理结构化数据的框架
在版本的更替中SparkSQL的功能越来越强大,名字也有所改变,目前最新版本中叫SQL, DataFrames and Datasets。
所以,用下列英文诠释SparkSQL非常合适
Spark SQL is not about SQL
Spark SQL is about more then SQL
SQL on Hadoop
Hive 简单,易学,作业速度慢
Impala 速度不错,吃内存,CM安装简单,手工安装难
Presto 分布式SQL查询引擎
Shark 把SQL翻译成Spark作业,速度还行,依赖Hive
Drill 支持多种存储引擎
Phoenix 基于HBase的SQL引擎
Hive on Spark(可基于以下三种计算引擎)
MapReduce
Tez
Spark
Spark SQL的使用不需要安装Hive,有个site能找到meta store就能用了
Spark SQL(便于与Spark里的其他框架交互)和Hive on Spark(不推荐使用)是两个不同的框架
详情请见:SparkSQL与Hive on Spark的比较
SparkShell使用SparkSql需要指定jar包
/home/hadoop/software/mysql-connector-java.jar
spark-shell启动命令
./spark-shell --master local[2] --jars ~/software/mysql-connector-java.jar
spark-sql启动命令
./spark-sql --master local[2] --jars ~/software/mysql-connector-java.jar --driver-class-path ~/software/mysql-connector-java.jar
SparkSQL构架图:
该图主要分为三个部分:Frontend-->Catalyst Spark SQL的核心-->Backend
我们可以通过explain extended语句查看其详细过程,这里不多加描述。