我正在尝试使用hue界面触发spark上的hive。从命令行运行时,该工作完美无缺,但当我尝试从hue运行时,它会抛出异常。在色调中,我主要尝试了两件事:
1)当我使用set命令提供.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)当我在hue属性中给出属性时,它只适用于mr引擎但不适用于spark执行引擎。
任何帮助将不胜感激
答案 0 :(得分:0)
我通过在oozie中使用shell操作解决了这个问题。 这个shell动作调用带有我的sql文件的pyspark动作。
即使作业在jobtracker中显示为MR,火花历史服务器也会识别为火花动作,并且输出已实现。
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()