Hive作为Hadoop家族成员中一份子,在现在的离线数据分析中的重要性已经不用多说。但是众所周知,hive是以MR程序跑在YARN集群上的,这其中的酸爽,想必用过的都说好了。随着技术的进步,Hive的开发者也已经意识到了MR的效率已经不能满足很多的日常需求,所以从hive二代开始,尝试着用spark引擎来替换掉MR,到现在为止,已经hive已经能支持几个版本的spark了。好了,下面就来搞一下hive-on-spark。
由于现在hive-on-spark只是出于测试期间,所以两者之间有着严重的依赖关系,下图是hive官网对hive-on-spark对应版本的说明(https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started):
Hive on Spark is only tested with a specific version of Spark, so a given version of Hive is only guaranteed to work with a specific version of Spark. Other versions of Spark may work with a given version of Hive, but that is not guaranteed. Below is a list of Hive versions and their corresponding compatible Spark versions.(Hive on Spark只使用特定版本的Spark进行测试,所以给定版本的Hive只能保证使用特定版本的Spark。其他版本的Spark可能适用于给定版本的Hive,但这并不能保证。下面是蜂巢版本及其相应的兼容Spark版本的列表。)
本次搭建的版本为:
hive 2.3.3,spark 2.0.0
一、下载 和安装
(1)hive的选择
hive选择2.3.X的任意一个版本就好,想要编译安装的可以选择hive的源码进行编译安装,编译的过程也很简单,将下载好的源码进行解压后,进到解压目录中,执行
mvn clean install -Phadoop-x,dist -DskinpTests -Dhadoop-23.version=xxx -Dspark.version=xxx
注意:hadoop和spark,需要查看hive解压目录中的pom文件是否支持现在集群版本,尤其是saprk的版本需要特别注意下
hive的下载地址:
http://mirror.bit.edu.cn/apache/hive/hive-2.3.3/apache-hive-2.3.3-bin.tar.gz(镜像版)
http://mirror.bit.edu.cn/apache/hive/hive-2.3.3/apache-hive-2.3.3-src.tar.gz(源码)
我们选择已经编译过得镜像版就好,具体的安装细节,百度一下一大堆,就不赘述了。
(2)spark的选择
spark必须选择spark源码进行编译,而且还要严格的遵守hive提供的支持版本进行下载,(如果大神你有信心能搞定其他版本的兼容性的话,一定要告诉小弟,虽然网上也有大神写过能兼容非列表版本的spark教程,但是我反正是搞了很久都没搞定,希望到时候能指点下)
spark 2.0.0下载地址:
https://archive.apache.org/dist/spark/spark-2.0.0/spark-2.0.0.tgz (源码)
(如果不想等,可以下载我已经编译好的:https://pan.baidu.com/s/1XgXWjQZPN3cl2baDDh-KeA 密码:q0uc)
(3)编译spark
下面是hive官网给出的教程:
Prior to Spark 2.0.0:(他说的是优先在spark2.0.0上,其实就是spark1.6版本的编译)
.
/make-distribution
.sh --name
"hadoop2-without-hive"
--tgz