之前数据仓库使用的是hive新版本2.3.0, hive以MapReduce程序跑在yarn集群上。
hive shell常提示:
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. spark, tez) or using Hive 1.X releases.
意思是或者使用Hive1.x/ 或者给hive换个引擎。正好最近需要搭建Spark集群,正好把hive的执行引擎给换掉。
hive 官方文档:https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark:+Getting+Started
网上查说坑很多,但其实文档写的很清楚。主要注意以下两点:
1)默认spark预发布版本里有hive的jar包(大概是SparkSQL访问Hive用的),要想使用hive on spark 就需要去掉这些spark访问hive 的jar包。 所以推荐使用spark源码自行编译spark.
2) 一定要注意hive版本与spark版本的兼容性。 hive源码的pom.xml 里 spark.version 定义了hive支持的spark版本。
hive2.3.0支持 spark 2.0.0, 很坑,用spark2.2.0试过,不好使。
详述安装配置过程:
java 1.8.0
hadoop 2.7.4
hive 2.3.0
spark 2.0.2 注:spark 使用yarn进行调度,官方文档有一句:Hive on Spark supports Spark on YARN mode as default.
一) 安装JDK/maven/scala/
安装maven是为了编译spark。
下载scala版本2.11.12 ,spark从2.X版本使用scala的2.11.X版本
安装scala: