hive里面目前支持的计算引擎有mr、tez,目前想尝试下spark引擎,由于我们的hadoop是HDP的,默认不支持spark引擎,因此需要自己配置下。
1、我目前使用的版本如下:(以下均已通过Ambari安装好)
hadoop版本:Hadoop 2.7.3.2.5.0.0-1245(HDP)
Hive版本:Hive 1.2.1000.2.5.0.0-1245
Spark版本:version 1.6.2
2、配置步骤
由于hive1.2.1的源码pom里面指定spark.version为1.3.1,因此下载1.3.1的spark源码。
1)spark1.3源码打包,执行命令mvn -Pyarn,hadoop-provided,hadoop-2.7,parquet-provided -DskipTests clean package ,编译出来的Jar不包含hadoop的任何组件,大概93M,编译过程没有报错;
2)spark1.3版本的Jar包放入hive/lib下;
3)设置spark引擎,执行hiveSql,结果如下:
set spark.master=local;set hive.execution.engine=spark;以后,执行select count(*) from test;结果正常;
当set spark.master=yarn,或者不设置spark.master的时候(默认也是走yarn模式),set hive.execution.engine=spark;以后,执行select count(*) from test报错:FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.spark.SparkTask,具体查看hive.log:
2017-10-19 02:44:25,849 ERROR [main]: status.SparkJobMonitor (SessionState.java:printError(948)) - Status: Failed
只有这一行报错,实在不知道为啥?
local模式可以跑,yarn模式就不行?求高手指点?
注意:我没有重新安装spark1.3,只是打包扔在hive/lib下了。原来有安装的spark1.6,不知道是不是这个原因造成的?
hive on spark用的spark,跟我原来安装的spark1.6有啥关系?
求高手解答,在线等。。。
|