2016-08-17 42 views
0

我試圖用火星接口觸發火花上的Hive。從命令行運行時該作業完美,但當我嘗試從色調運行時它會拋出異常。在色調,我想主要有兩點:火花上的Hive在色相中不起作用

1)當我給使用集.hql文件中的所有屬性命令

set spark.home=/usr/lib/spark; 
set hive.execution.engine=spark; 
set spark.eventLog.enabled=true; 
add jar /usr/lib/spark/assembly/lib/spark-assembly-1.5.0-cdh5.5.1-hadoop2.6.0-cdh5.5.1.jar; 
set spark.eventLog.dir=hdfs://10.11.50.81:8020/tmp/; 
set spark.executor.memory=2899102923; 

我得到一個錯誤

ERROR : Failed to execute spark task, with exception 'org.apache.hadoop.hive.ql.metadata.HiveException(Unsupported execution engine: Spark. Please set hive.execution.engine=mr)' 
org.apache.hadoop.hive.ql.metadata.HiveException: Unsupported execution engine: Spark. Please set hive.execution.engine=mr 

2)當我提供色相屬性的屬性,它只適用於mr引擎,但不能引發執行引擎。

任何幫助將通過使用Oozie的殼動作理解

+0

你有什麼好的理由來使用'oozie'標籤?!? –

+0

我正在創建一個oozie工作流程,這就是oozie標記的原因 – Pratik

回答

0

我已經解決了這個問題。 這個shell動作調用一個支持我的sql文件的pyspark動作。

儘管作業在jobtracker中顯示爲MR,但Spark歷史記錄服務器將其識別爲火花動作並實現輸出。

shell文件:

#!/bin/bash 
export PYTHONPATH=`pwd` 
spark-submit --master local testabc.py 

Python文件:

from pyspark.sql import HiveContext 
from pyspark import SparkContext 
sc = SparkContext(); 
sqlContext = HiveContext(sc) 
result = sqlContext.sql("insert into table testing_oozie.table2 select * from testing_oozie.table1 "); 
result.show()