如何配置Hive使用Spark?

时间:2014-09-24 13:34:46

标签: hadoop mapreduce hive apache-spark

我在Spark上使用Hive时遇到问题。我在CentOS 6.5上通过Ambari安装了单节点HDP 2.1(Hadoop 2.4)。我试图在Spark上运行Hive,所以我使用了这个说明:

https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started

我已经在官方的Apache Spark网站上下载了" Prebuilt for Hadoop 2.4" -version of Spark。所以我开始了大师:

./spark-class org.apache.spark.deploy.master.Master

然后工人:

./spark-class org.apache.spark.deploy.worker.Worker spark://hadoop.hortonworks:7077

然后我用这个提示启动了Hive:

hive –-auxpath /SharedFiles/spark-1.0.1-bin-hadoop2.4/lib/spark-assembly-1.1.0-hadoop2.4.0.jar

然后,根据说明,我不得不用这个提示改变hive的执行引擎:

set hive.execution.engine=spark;,

结果是:

Query returned non-zero code: 1, cause: 'SET hive.execution.engine=spark' FAILED in validation : Invalid value.. expects one of [mr, tez].

因此,如果我尝试启动一个简单的Hive查询,我可以在我的hadoop.hortonwork:8088上看到启动的作业是MapReduce-Job。

现在我的问题:如何更改Hive的执行引擎,以便Hive使用Spark而不是MapReduce?有没有其他方法可以改变它? (我已经尝试通过ambari和hive-site.xml更改它)

4 个答案:

答案 0 :(得分:9)

更改像这样的hive配置属性....

$HIVE_HOME/conf/hive-site.xml

中的

<property>
  <name>hive.execution.engine</name>
  <value>spark</value>
  <description>
    Chooses execution engine.
  </description>
</property>

答案 1 :(得分:4)

set hive.execution.engine=spark;

尝试此命令它将正常运行。

答案 2 :(得分:0)

在hive&gt; conf&gt; hive-site.xml中 将hive.execution.engine的值设置为spark。

  </property> 
    <name>hive.execution.engine</name>
    <value>spark</value>
  </property>

答案 3 :(得分:0)

设置hive.execution.engine = spark;这是在Hive 1.1+之后引入的。我认为你的hive版本比Hive 1.1更旧。

enter image description here 资源:https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started