1. 程式人生 > >Hive On Spark概述

Hive On Spark概述

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.0-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概述

Hive現有支援的執行引擎有mr和tez,預設的執行引擎是mr,Hive On Spark的目的是新增一個spark的執行引擎,讓hive能跑在spark之上; 在執行hive ql指令碼之前指定執行引擎、spark.home、spark.master set hive.execution.engin

SparkSQL與Hive on Spark的比較

.cn local 順序 沒有 針對 ast custom spark manager 簡要介紹了SparkSQL與Hive on Spark的區別與聯系一、關於Spark簡介在Hadoop的整個生態系統中,Spark和MapReduce在同一個層級,即主要解決分布式計算框

hive on spark VS SparkSQL VS hive on tez

dir csdn cluster 並且 http 緩沖 快速 bsp pos http://blog.csdn.net/wtq1993/article/details/52435563 http://blog.csdn.net/yeruby/article/details

hive on spark

技術分享 engine sele park cut bsp 配置 spark lec hive on spark 的配置及設置CDH都已配置好,直接使用就行,但是我在用的時候報錯,如下:    具體操作如下時報的錯: 在hive 裏執行以下命令: set

sparksql\hive on spark\hive on mr

Hive on Mapreduce Hive的原理大家可以參考這篇大資料時代的技術hive:hive介紹,實際的一些操作可以看這篇筆記:新手的Hive指南,至於還有興趣看Hive優化方法可以看看我總結的這篇Hive效能優化上的一些總結 Hive on Mapreduce執行流程

hive on spark 效能引數調優

select * from stg_bankcard_auth_apply where length(idcardno) >= 1 and length(idcardno) <> 32; --該表儲存檔案格式為txt格式,是原始檔直接load進來的,mapreduce執行不管任何s

Hive on Spark調優

之前在Hive on Spark跑TPCx-BB測試時,100g的資料量要跑十幾個小時,一看CPU和記憶體的監控,發現 POWER_TEST階段(依次執行30個查詢)CPU只用了百分之十幾,也就是沒有把整個叢集的效能利用起來,導致跑得很慢。因此,如何調整引數,使整個叢集發揮最大效能顯得尤為

第四天 -- Accumulator累加器 -- Spark SQL -- DataFrame -- Hive on Spark

第四天 – Accumulator累加器 – Spark SQL – DataFrame – Hive on Spark 文章目錄 第四天 -- Accumulator累加器 -- Spark SQL -- DataFrame -- Hive on Spark

SparkSQL和hive on Spark

SparkSQL簡介 SparkSQL的前身是Shark,給熟悉RDBMS但又不理解MapReduce的技術人員提供快速上手的工具,hive應運而生,它是當時唯一執行在Hadoop上的SQL-on-hadoop工具。但是MapReduce計算過程中大量的中間磁碟落地過程消耗了大量的I/O,降低的執行效率,為

Hive on spark 報錯FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.spark

cp /opt/cloudera/parcels/CDH-5.13.3-1.cdh5.13.3.p0.2/lib/spark/lib/spark-assembly.jar /opt/cloudera/parcels/CDH-5.13.3-1.cdh5.13.3.p0.2/lib/hive/lib

大資料利用hive on spark程式操作hive

hive on spark 作者:小濤 Hive是資料倉庫,他是處理有結構化的資料,當資料沒有結構化時hive就無法匯入資料,而它也是遠行在mr程式之上

Hive on Spark 偽分散式環境搭建過程記錄

進入hive cli是,會有如下提示: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. s

hive on spark開發demo

public class SparkHiveTest { public static void main(String[] args) { String warehous

hive on spark通過YARN-client提交任務不成功

在Hive on spark中  設定spark.master 為 yarn-client , 提交HiveQL任務到yarn上執行,發現任務無法執行 輸出一下錯誤: 可以看到 Hive on S

基於Spark2.0搭建Hive on Spark環境(Mysql本地和遠端兩種情況)

Hive的出現可以讓那些精通SQL技能、但是不熟悉MapReduce 、程式設計能力較弱與不擅長Java語言的使用者能夠在HDFS大規模資料集上很方便地利用SQL 語言查詢、彙總、分析資料,畢竟精通SQL語言的人要比精通Java語言的多得多。Hive適合處理離線非實時資料。h

第74課:Hive on Spark大揭祕 完整版

內容:     1.Hive On Spark內幕     2.Hive on Spark實戰 一、Hive On Spark內幕     1.Hive on spark 是hive 的一個子

hive on spark 利用maven重新編譯spark

緣由:使用hive on spark 進行hivesql操作的時候報以下錯誤: Failed to execute spark task, with exception 'org.apache.hadoop.hive.ql.metadata.HiveException(Failed to cre

Hive-On-Spark

1 HiveOnSpark簡介 Hive On Spark (跟hive沒太大的關係,就是使用了hive的標準(HQL, 元資料庫、UDF、序列化、反序列化機制)) Hive原來的計算模型是MR,有點慢(將中間結果寫入到HDFS中) Hive On Spark 使用RDD(DataF

面試題:Hive on Spark與SparkSql的區別

Hive on Spark與SparkSql的區別 hive on spark大體與SparkSQL結構類似,只是SQL引擎不同,但是計算引擎都是spark! 核心程式碼 #初始化Spark SQL #匯入Spark SQL from pyspark.sql import Hiv

Hive On Spark搭建(cdh)

hive 和 spark版本之前有強對應關係 apache hive 和 spark 對應關係表 master 2.3.0 3.0.x 2.3.0 2.3.x 2.0.0 2.2.x 1.6.0