- Spark on Hive:即Hive只作为存储角色,Spark负责sql解析优化,执行
- Hive on Hive:即Hvie不仅存储又作解析,SPark来负责执行
- DataFrame:底层依旧是RDD,通过将数据转换成DataFrame对象,即二维表再进行sql,DataFrame对象内表示一行一行的数据,主要是提高执行效率和执行优化
- DataSet:是分布式的数据集合,提供强类型的支持,作用与DataFrame类似,不过DataFrame属于DataSet的一种特例DataFrame=DataSet[Row]
首先Sql命令会经过Sql解析器,解析层逻辑语句,再由LogicalPlan将逻辑语句编译成逻辑计划,再经过优化规则对逻辑计划进行优化,最后经过SparkPlanner变成一批批物理计划(整体流程与hive相似)
Predicate Pushdown简称谓词下推,简单说就是通过将筛选条件进行提前执行并不影响最后的结果即可,谓词下推后,过滤条件再map执行,大大减少了map端的输出,提高了reduce拉取数据的效率,节约了资源,提高了任务的执行能力。