Hive现有支持的执行引擎有mr和tez,默认的执行引擎是mr,Hive On Spark的目的是添加一个spark的执行引擎,让hive能跑在spark之上;

在执行hive ql脚本之前指定执行引擎、spark.home、spark.master

set hive.execution.engine=spark;
set spark.home=/home/spark/app/spark-1.3.-bin-spark-without-hive;
set spark.master=yarn;

Hive On Spark与Spark SQL/Shark的区别

Spark SQL/Shark:

1、将sql语义翻译成Spark RDD在Spark上执行;

2、Spark SQL是基于hive snapshot版本,虽然能够兼容hive,但是使用的版本早于当前hive的release版本,最新的一些特性则无法使用;

3、Spark SQL使用Spark的transformation和action替换Hive sql的构建; 将会丢失一些hive自身构建实现的特性;

Hive on Spark:

1、将hql语义翻译成MapReduce在Spark上执行;

2、Hive On Spark则是与hive共同演化;

3、Hive On Spark使用的是Hive的构建,将包含Hive所有的特性,Spark仅仅是一个通用的执行引擎而已;

为Hive添加一个spark执行引擎涉及到如下方面

1、查询计划

将Hive的逻辑执行计划进一步翻译成Spark能够执行的Spark计划;

2、查询执行

得到的Spark计划真正在Spark集群中运行;

3、监控、计数器、统计等

查询计划

当hive接收到一个sql语句时,使用Hive的语法解析器解析成一个操作计划;

对于On Spark引擎,引入了SparkComplier,类似于MapReduceCompiler和TezCompiler;

SparkComplier:

  将从Hive中得到的逻辑执行计划转成在Spark上能运行的计划;

  在产生Spark计划的时候做一些物理执行计划的优化;

SparkTask:在Spark集群中执行的一个job

SparkWork:SparkTask的计划,可以通过explain查看

SparkComplier: 将Hive的执行计划转化成一个SparkWork

查询执行

SparkTask.execute()在SparkWork之外产出rdd以及相应的方法,通过Spark Client提交给Spark集群执行;一旦SparkTask提交给了Spark集群,Spark Client将监控job的执行情况;

通过SparkJobMonitor来处理打印任务的执行状态和最终的执行结果;Spark Job的提交是通过SparkContext对象完成的;当SparkTask被hive执行时,就会为当前用户session创建一个SparkContext

Hive表相关的RDD将会被创建;MapFunction、ReduceFunction将会被SparkWork创建并且作用在RDD上;当在RDD上执行foreach方法时该RDD上的job就会被触发执行。

监控、计数器、统计等

监控

Spark在每个SparkContext运行时提供了WebUI,当时该UI中只能展现出运行时的Application信息;

为了在Application运行完后也能重新渲染UI信息,需要在启动Application之前设置spark.eventLog.enabled为true;

Standalone模式运行时可以通过WebUI展示,YARN/Mesos模式运行时,可以通过Spark History Server来展现;

计数器/统计

在Spark中提供了accumulator实现计数器,使用Metrics实现统计;

Hive On Spark概述的更多相关文章

  1. 大数据技术之_19_Spark学习_01_Spark 基础解析 + Spark 概述 + Spark 集群安装 + 执行 Spark 程序

    第1章 Spark 概述1.1 什么是 Spark1.2 Spark 特点1.3 Spark 的用户和用途第2章 Spark 集群安装2.1 集群角色2.2 机器准备2.3 下载 Spark 安装包2 ...

  2. Spark概述及集群部署

    Spark概述 什么是Spark (官网:http://spark.apache.org) Spark是一种快速.通用.可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010 ...

  3. Spark入门:第1节 Spark概述:1 - 4

    2.spark概述 2.1 什么是spark Apache Spark™ is a unified analytics engine for large-scale data processing. ...

  4. 1 Spark概述

     第1章 Spark概述 1.1 什么是Spark Spark是一种快速.通用.可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵 ...

  5. Hive和Spark分区策略

    1.概述 离线数据处理生态系统包含许多关键任务,最大限度的提高数据管道基础设施的稳定性和效率是至关重要的.这边博客将分享Hive和Spark分区的各种策略,以最大限度的提高数据工程生态系统的稳定性和效 ...

  6. Hive on Spark安装配置详解(都是坑啊)

    个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/p/a7f75b868568 简介 本文主要记录如何安装配置Hive on Sp ...

  7. Hive On Spark环境搭建

    Spark源码编译与环境搭建 Note that you must have a version of Spark which does not include the Hive jars; Spar ...

  8. Apache Spark源码走读之12 -- Hive on Spark运行环境搭建

    欢迎转载,转载请注明出处,徽沪一郎. 楔子 Hive是基于Hadoop的开源数据仓库工具,提供了类似于SQL的HiveQL语言,使得上层的数据分析人员不用知道太多MapReduce的知识就能对存储于H ...

  9. Hive on Spark运行环境搭建

    Hive是基于Hadoop的开源数据仓库工具,提供了类似于SQL的HiveQL语言,使得上层的数据分析人员不用知道太多MapReduce的知识就能对存储于Hdfs中的海量数据进行分析.由于这一特性而收 ...

随机推荐

  1. LintCode Find Minimum In Rotated Sorted Array

    1. 画图, 直观. 2. 讨论数组为空或者个数为零. 3. 讨论首尾, 若为翻转过的则进行查找直到最后两个数进行比较, 取小者. public class Solution { /** * @par ...

  2. jquery里面的循环的用法

    下面提一下jQuery的each方法的几种常用的用法 Js代码 var arr = [ "one", "two", "three", &qu ...

  3. 浅谈JavaScript eval() 函数

    用js的人都应该知道eval()函数吧,虽然该函数用的极少,但它却功能强大,那么问题来了,为什么不常用呢?原因很简单,因为eval()函数是动态的执行其中的字符串,里面有可能是脚本,那么这样的话就有可 ...

  4. 初步认知java的方法

    1.正确区分函数和方法: 面向对象的语言叫做方法,面向过程的语言叫做函数,两者的意义是一样的,只是叫法不同.java是面向对象的语言,所以用方法. 2.方法的定义: 就是有名字的代码段 3.方法的目的 ...

  5. Ionic2学习笔记

    Component nav: <ion-nav [root] = 'rootComponent'></ion-nav> ....import {Nav} from 'ionic ...

  6. android 获取包信息

    private static int testPackageInfo(Context context){ int localVersionCode = 9999; try { PackageInfo ...

  7. Java JDK配置环境变量

    JDK的配置环境变量. 1.下载JDK,然后安装(点下一步). 2.右键单击  "计算机" ,选择  "属性".   3.单击 "高级系统设置&quo ...

  8. Python初学的易犯错误

    当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂.这里列出了常见的的一些让你程序 crash 的运行时错误. 1)忘记在 if , elif , else , for , ...

  9. [原创]cocos2d-x研习录-第三阶 特性之动作

    在前面的Cocos2D-x的概念类中,我们了解到节点类CCNode.导演类CCDirector.场景类CCScene.布景层类CCLayer和精灵类CCSprite等,这些类都是构成游戏画面的基本元素 ...

  10. CMAKE 配置选项

    CMake Configuration Options 注: 本文翻译自 dcmtk_wiki: Howto_CMakeConfiguration. DCMTK版本(原文):dcmtk-3.6.0 C ...